美文网首页
Git 分支的创建、切换、合并以及解决冲突、删除

Git 分支的创建、切换、合并以及解决冲突、删除

作者: 优雅的步伐 | 来源:发表于2019-05-05 16:26 被阅读0次

    一、分支的创建与切换

    1.创建新的分支并切换到该分支上进行提交

    步骤如下:

    1. git branch <分支名>: 首先使用git branch bugfix01 ,在当前分支也就是master分支上创建了一个名为bugfix01的新分支。
    2. git checkout <分支名>:然后使用git checkout bugfix01命令切换到我们新创建的bugfix01的新分支上。
    3. git commit: 最后使用git commit命令在新的分支上进行代码提交。

    HEAD指向当前分支bugfix01


    image.png
    2.创建并切换分支
    1. git checkout -b <分支名>: 首先使用git checkout -b bugfix02命令在当前所在分支bugfix01上创建一个新的分支并且切换到新创建的bugfix02上。
    2. git commit: 然后使用git commit在新的分支bugfix02上进行提交。
    image.png
    3. 切换到之前的分支并提交
    1. git checkout<分支名>: 目前所在分支是bugfix02, 然后使用git checkout bugfix01命令将分支切换到bugfix01上。
    2. git commit: 切换后就可以在bugfix01上进行提交操作了。
    image.png

    使用git log --pretty=oneline,git log --graph, git log --all来查看所有分支情况,如图:

    image.png

    二、分支的合并与删除及冲突解决

    1. 分支的合并 - merge
    image.png

    bugfix01上的修改已经合并到了master上了


    image.png
    2. 冲突的解决

    当bugfix01分支和bugfix02分支都对README.md文件进行修改,先把bugfix01上的修改合并到master上,在把bugfix02上的修改合并到master上时发现有冲突

    image.png image.png

    使用git status查看当前的状态,然后提示你可以修复该冲突,再使用git commit进行提交,或者使用git merge --abort命令放弃本次合并。

    image.png

    打开冲突的文件,从<<<<<<< 开始到 >>>>>>>结尾是冲突的部分,两个分支的内容由=======进行分割。根据具体情况看需要保留哪部分还是都保留。


    image.png
    3. 使用工具进行冲突解决

    输入git mergetool,然后根据提示输入opendiff,mac 下会打开Xcode自带的FileMerge工具。

    image.png

    下面是启动的FileMerge工具,在使用该工具进行文件merge时,可以选择几种文件合并策略(有:1.左边为准,2.右边为准,3.都保留但把左边放在前面,4.都保留但把右边放在前面,5.都不保留)。


    屏幕快照 2019-05-05 下午3.37.45.png

    上述工具位于Xcode的开发工具中,如下所示:

    image.png

    这边选择了Choose both (left first) ,修改后如图,然后进行提交


    image.png
    4. 分支的删除

    如果不需要bugfix01和bugfix02了,可以进行删除操作:

    1. 首先使用 git branch -d bugfix01 对分支 bugfix01 进行删除。
    2. 然后使用 git branch -d bugfix02 对分支 bugfix02 进行删除。

    删除成功后,会提示“Deleted branch bugfix01(was 54eb6aa)”,括号里就是删除分支所对应的commit号的前7位。

    image.png

    如果你想删除远端的分支的话,那么得使用 git push origin --delete <分支名> 了。

    三、分支的查看

    • git branch: 查看所有分支,其中前面有星号的是当前所在分支,下方即为master分支。
    • git branch -v: 查看所有分支和该分支上的最后一次提交。
    • git branch --merged: 查看已经合入当前分支的所有分支。
    • git branch --no-merged: 查看未被合入分支。
    image.png

    参考文章:https://www.cnblogs.com/ludashi/p/8093145.html

    相关文章

      网友评论

          本文标题:Git 分支的创建、切换、合并以及解决冲突、删除

          本文链接:https://www.haomeiwen.com/subject/yokvnqtx.html