git使用总结

    项目通常会有develop、master另个分支develop分支部署在测试环境测试,多个开发工程师把本身的commit都提交到develop分支,交给测试工程师来测试;master分支是上线分支,测试没问题的develop分支,在须要上线的时候合并到master分支。git

    保持master和develop提交历史一致,每次develop合并到master的时候不会出现冲突,保证线上的代码和测试环境环测试完成的代码一致,避免由于合并代码引发线上出问题。测试

   有时候须要临时上线,能够基于master分支创建hotfix分支,测试后合并到master分支。ip

   hotfix分支和develop分支是并行的,hotfix分支合并到master分支后,须要同时合并到develop分支,保证develop分支和master分支提交历史一致。开发

hotfix分为两种状况:部署

A:hofix和develop分支没有修改相同文件,不会出现冲突it

       1)master分支:ast

            a -> b 并行

        2)develop分支项目

            ​a ->b -> c        commit c修改了文件x文件

        3)hotfix分支

            a->b-> c1       commit c1 修改了文件y

        合并操做以下:

        1)master merge hotfix

                master: a->b->c1

        2)   develop rebase master

                develop: a->b->c1->c    该过程当中不会出现冲突(由于没有修改相同文件)

B:hotFix和develop分支修改相同文件,出现冲突

       1)master分支:

            a -> b 

      2)develop分支

            ​a ->b -> c         commit c修改了文件x

      3)hotfix分支

            a->b-> c1          commit c1 修改了文件x

        合并操做以下:

        1)master merge hotfix

            master: a->b->c

        2) develop rebase master

             develop: a->b->c1->c2    

        该过程当中出现冲突(由于修改了相同文件),须要手动修改冲突,肯定最终x文件的版本。commit c2是在c版本上解决冲突后的版本

按照上述流程修改后,develop合并master不须要解决冲突

tip: merge的时候请包含提交的commit信息,使用下面命令操做,这样方便查看历史记录

        git merge master --log --no-ff

相关文章
相关标签/搜索