Github识别fork之后的提交



我正在使用git log命令分析对repo的提交。然而,回购是从预先存在的回购中派生出来的,我只想看看回购派生后发生的提交。

我该如何做到这一点?我知道我可以根据时间进行过滤(使用--since=<date>--after=<date>,但我想以自动化的方式进行过滤,而无需手动查看分叉的日期。

git merge-base original_repo/some_branch fork_repo/some_other_branch将告诉您这两个分支有共同点的最新提交,然后您可以使用git log查看该提交之后的提交。

我认为使用..来指定修订范围可以做到这一点。

如果你的git历史看起来像这样,

  • master是您分叉的分支
  • fork-branch是你的叉子的名字
* 7b4c506 (HEAD -> fork-branch) more work
* e1faf6b work
* 5569418 (master) Upstream head
* e09c8ad some upsream commit

然后运行git log master..HEAD将显示自创建fork以来进行的所有提交

如果您想在同一张图上查看origin/masterfork/master的组合历史,可以使用三点表示法:

git log --graph origin/master...fork/master

假设您的历史记录如下:

* 20f7041 (origin/master) more work on origin
* c278977 work on origin
| * 68ca178 (fork/master) more work on fork
| * 2e47141 work on fork
|/  
* 0399c79 fork point
* 051f0c6 second commit
* 872afdf first commit

然后你会看到:

$ git log --oneline --graph origin/master...fork/master
* 20f7041 (origin/master) more work on origin
* c278977 work on origin
* 68ca178 (fork/master) more work on fork
* 2e47141 work on fork

您还可以添加--boundary选项,使git log显示共同祖先:

$ git log --boundary --oneline --graph origin/master...fork/master
* 20f7041 (origin/master) more work on origin
* c278977 work on origin
| * 68ca178 (fork/master) more work on fork
| * 2e47141 work on fork
|/  
o 0399c79 fork point

最新更新