空白键|git 如何比较不同分支的差异

前两天 , 良许在做集成的时候碰到了一件闹心事 。 事情是这样的 , 良许的一位同事不小心把一个错误的 dev 分支 merge 到了 master 分支上 , 导致了良许编译不通过 。 于是 , 我们需要将版本回退到 merge 之前的状态 。
如果是下面这个状态 , 那很好处理:
空白键|git 如何比较不同分支的差异这种情况下 , 我们只需一个 git reset 命令即可:
git reset --hard HEAD~但是 , 如果下面这种状态 , 情况就没那么简单了:
空白键|git 如何比较不同分支的差异这种情况下 , 就不能简单使用 git reset 命令了 。 这就是良许这次碰到的问题 。 为了解决这个问题 , 我们就需要找出合并后的分支与合并前的分支的差异 , 再进行版本回退 。 这种情况下的版本回退 , 就不能单用 git reset 了 , 而是要配合 git revert 了 , 在后面我们将详细介绍如何优雅的进行版本回退 。
回到正题 , 我们如何找出合并后的分支与合并前分支的差异呢?这里我们需要使用到 git log 命令了 。 我们先模拟出这两个分支的提交情况:

  • dev 分支提交情况:
[alvin@VM_0_16_centos git-log]$ git log devcommit b191410906ae20a865fde3f163bb01fd6cfc1f11Author: Liangxu Date:Sat Dec 8 21:03:13 2018 +0800[dev] 版本6commit 793c9582ab0a45c4f8f548be36c06bc5ca427c62Author: Liangxu Date:Sat Dec 8 21:02:30 2018 +0800[dev] 版本5commit dbe54166608772486408c1dea05304de45dba430Author: Liangxu Date:Sat Dec 8 21:00:27 2018 +0800[both] 版本3commit 31894364b1396b00d2935373387397ef930416e4Author: Liangxu Date:Sat Dec 8 20:59:26 2018 +0800[both] 版本2commit 4872f653a8fd7c8541abb4a292d628dc7625884bAuthor: Liangxu Date:Sat Dec 8 20:58:05 2018 +0800[dev] 版本4commit fac6c60ed28c5acfcd01284336d4201cc55ee2e7Author: Liangxu Date:Sat Dec 8 20:57:01 2018 +0800[both] 版本1
  • master 分支提交情况:
[alvin@VM_0_16_centos git-log]$ git log mastercommit c690054c67b833b22dce4120899526743b20d36dAuthor: Liangxu Date:Sun Dec 9 07:31:47 2018 +0800[master] 版本7commit dbe54166608772486408c1dea05304de45dba430Author: Liangxu Date:Sat Dec 8 21:00:27 2018 +0800[both] 版本3commit 31894364b1396b00d2935373387397ef930416e4Author: Liangxu Date:Sat Dec 8 20:59:26 2018 +0800[both] 版本2commit fac6c60ed28c5acfcd01284336d4201cc55ee2e7Author: Liangxu Date:Sat Dec 8 20:57:01 2018 +0800[both] 版本1在这些提交里 [both] 表示两个分支都有的提交 ,[dev] 表示只有在 dev 分支的提交 , [master] 表示只在 master 分支的提交
1. 查看dev有 , 而 master 分支没有的提交
  • 方法一
命令:
git log dev ^master结果:
[alvin@VM_0_16_centos git-log]$ git log dev ^mastercommit b191410906ae20a865fde3f163bb01fd6cfc1f11Author: Liangxu Date:Sat Dec 8 21:03:13 2018 +0800[dev] 版本6commit 793c9582ab0a45c4f8f548be36c06bc5ca427c62Author: Liangxu


推荐阅读