文章目录
一、git merge 命令应用的三种情景
1.1 “快进”(无冲突)
1.2 非“快进”,修改不同文件。(无冲突)
1.3 非“快进”,修改相同文件。(有冲突)
一、git merge 命令应用的三种情景
1.1 “快进”(无冲突)
master分支
假设现在只有一个默认的 master 分支,并提交了3次,B0、B1和B2都是提交对象。
另外Git中还有一个名为 HEAD 的特殊指针,它是一个指针,指向当前所在的本地分支(可以将 HEAD想象为当前分支的别名)。
$ git checkout -b dev
Switched to a new branch 'dev'
1
2
它是下面两条命令的简写:
$ git branch dev
$ git checkout dev
1
2
因为是在B2创建 dev,所以新分支 dev 指向B2。另外从分支 master 切换到分支 dev,所以HEAD指向当前分支 dev。
合并dev和master
在分支 dev 的工作结束,切换到分支 master ,然后把 dev 合并到 master 上:
最后,你可以删除 dev 分支,因为你已经不再需要它了 —— master 分支已经指向了同一个位置。 你可以使用带 -d 选项的 git branch 命令来删除分支:
1.2 非“快进”,修改不同文件。(无冲突)
当在新分支 dev 进行了一次提交B3,再回到分支 master 又进行一次提交 B4。
这里用 git merge 合并分为两种情况,现在讲第一种情况:
最后,合并完成,你已经不再需要dev分支了。 现在你可以删除这个分支。
1.3 非“快进”,修改相同文件。(有冲突)
当在新分支 dev 进行了一次提交B3,再回到分支 master 又进行一次提交 B4。
Unmerged paths:
(use "git add <file>..." to mark resolution)
This is test-1.
update test-1.
add test-1.
test master.
test dev.
1
2
3
4
5
然后手动提交:
$ git add .
$ git commit -m "connection"
[master f7daa6b] connection
1
2
3
然后冲突就解决了。合并结果如下:
最后,合并完成,你已经不再需要dev分支了。 现在你可以删除这个分支。
GIT常用用法:合并其他分支代码至master分支
https://blog.csdn.net/bufegar0/article/details/109597640
使用背景
项目中经常要用到dev或者其他分支开发代码,开发完成后,需要将该分支合并到master的需求,如果是开源项目,会有Pull Request协助你做此事,其实简单几个命令也可以快速完成代码merge合并。
操作步骤
下面以dev分支为例来讲解。
1.当前分支所有代码提交
先将dev分支上所有有代码提交至git上,提交的命令一般就是这几个,先复习下:
# 将所有代码提交
git add .
# 编写提交备注
git commit -m "修改bug"
# 提交代码至远程分支
git push origin dev
1
2
3
4
5
6
2.切换当前分支至主干(master)
# 切换分支
git checkout master
# 如果多人开发建议执行如下命令,拉取最新的代码
git pull origin master
1
2
3
4
5
6
3.合并(merge)分支代码
git merge dev
# merge完成后可执行如下命令,查看是否有冲突
git status
1
2
3
4
4.提交代码至主干(master)
git push origin master
1
5.最后切换回原开发分支
git checkout dev
————————————————
版权声明:本文为CSDN博主「微服务布道者」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bufegar0/article/details/109597640