Git笔记(四)git比较与合并代码
1、代码比较
1.1、显示出branch1和branch2中差异的部分
git diff branch1 branch2 --stat
如果改动比较多,可能逐条看有些头晕,可以直接看最后一条,有多少增删,做少修改,以及自己关心的那部分修改就可以了。
1.2、显示指定文件的详细差异
git diff branch1 branch2 具体文件路径
可以在终端显示差异,但是感觉不是很方便,而且输入具体文件路径有点繁琐。
1.3、显示出所有有差异的文件的详细差异
git diff branch1 branch2
也是在终端显示,不方便在win下操作。
1.4、查看branch1分支有,而branch2中没有的log
git log branch1 ^branch2
显示某个分支独有的更新日志
1.5、 查看branch2中比branch1中多提交了哪些内容
git log branch1 ..branch2
注意,列出来的是两个点后边(此处即dev)多提交的内容。
1.6、不知道谁提交的多谁提交的少,单纯想知道有什么不一样
git log branch1 ...branch2
会一个branch1的提交,一个branch2的提交,依次列出二者的提交差异。
参考:git 对比两个分支差异
2、代码合并
2.1、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支
# 检出,常用于切换分支或恢复工作树文件
git checkout dev
# 命令用于从远程获取代码并合并本地的版本。
git pull
# 检出,常用于切换分支或恢复工作树文件
git checkout master
# 将dev合并到master
git merge dev
# 推送到远端服务器
git push -u origin master
2.2、当master代码改动了,需要更新开发分支(dev)上的代码
git checkout master
git pull
git checkout dev
git merge master
git push -u origin dev
2.3、代码合并,冲突的解决
git merge dev
默认是将dev合并到当前分支。
合并的重点是解决冲突。
执行合并命令后一般有如下信息输出,提示遇到冲突。
冲突后状态,停留在MERGING状态,要改变状态就要 git commit
(master|MERGING)
修改完冲突后执行提交
git commit -m "message"
然后就回到了分支状态
(master)