1、代码比较

1.1、显示出branch1和branch2中差异的部分

  1. git diff branch1 branch2 --stat

如果改动比较多,可能逐条看有些头晕,可以直接看最后一条,有多少增删,做少修改,以及自己关心的那部分修改就可以了。

1.2、显示指定文件的详细差异

  1. git diff branch1 branch2 具体文件路径

可以在终端显示差异,但是感觉不是很方便,而且输入具体文件路径有点繁琐。

1.3、显示出所有有差异的文件的详细差异

  1. git diff branch1 branch2

也是在终端显示,不方便在win下操作。

1.4、查看branch1分支有,而branch2中没有的log

  1. git log branch1 ^branch2

显示某个分支独有的更新日志

1.5、 查看branch2中比branch1中多提交了哪些内容

  1. git log branch1 ..branch2

注意,列出来的是两个点后边(此处即dev)多提交的内容。

1.6、不知道谁提交的多谁提交的少,单纯想知道有什么不一样

  1. git log branch1 ...branch2

会一个branch1的提交,一个branch2的提交,依次列出二者的提交差异。

参考:git 对比两个分支差异

2、代码合并

2.1、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支

  1. # 检出,常用于切换分支或恢复工作树文件
  2. git checkout dev
  3. # 命令用于从远程获取代码并合并本地的版本。
  4. git pull
  5. # 检出,常用于切换分支或恢复工作树文件
  6. git checkout master
  7. # 将dev合并到master
  8. git merge dev
  9. # 推送到远端服务器
  10. git push -u origin master

2.2、当master代码改动了,需要更新开发分支(dev)上的代码

  1. git checkout master
  2. git pull
  3. git checkout dev
  4. git merge master
  5. git push -u origin dev

2.3、代码合并,冲突的解决

  1. git merge dev

默认是将dev合并到当前分支。

合并的重点是解决冲突。

执行合并命令后一般有如下信息输出,提示遇到冲突。

Git使用方法总结(四)git比较与合并代码 - 图1

冲突后状态,停留在MERGING状态,要改变状态就要 git commit

  1. (master|MERGING)

修改完冲突后执行提交

  1. git commit -m "message"

然后就回到了分支状态

  1. (master)