你试过git rev-list --first-parent newrev
?它似乎列出了newrev
和该分支从哪里来的所有转速。例如,在此回购:
$ git log --all --graph --decorate
* commit 03f6357bdcacfc8c8253ccb140f25010810c4433 (HEAD, origin/new_branch, new_branch)
| Fifth
* commit 291d88908fefa94eab0c9483ad6b8ab5ebca21f6
| Third
* commit 3ff20b8998d037cd9c9bb1ff53b1887837d9ed8e
| Second
| * commit e9c2e99de892499d2b6037c8c0913a52dbade4c0 (origin/master, master)
|/ Fourth
* commit 9574226673ffe2d04ae4e36b4d7976399320e29f
First
rev-list
给出如下:
$ git rev-list --first-parent 03f6357bdcacfc8c8253ccb140f25010810c4433
03f6357bdcacfc8c8253ccb140f25010810c4433
291d88908fefa94eab0c9483ad6b8ab5ebca21f6
3ff20b8998d037cd9c9bb1ff53b1887837d9ed8e
9574226673ffe2d04ae4e36b4d7976399320e29f
,你可以限制为仅与tail -1
基础REF(我还没有找到一个CLI选项做更多典雅又):
$ git rev-list --first-parent 03f6357bdcacfc8c8253ccb140f25010810c4433 | tail -1
9574226673ffe2d04ae4e36b4d7976399320e29f
从那里,你可以使用你原来的git diff
命令:
$ origrev=`git rev-list --first-parent 03f6357bdcacfc8c8253ccb140f25010810c4433 | tail -1`
$ git diff --name-status --diff-filter=AM $origrev 03f6357bdcacfc8c8253ccb140f25010810c4433
A bar
你在做什么?[git hook](https://www.kernel.org/pub/software/scm/git/docs/githooks.html)? – 2013-03-10 07:35:09
@StuartM在远程服务器上的更新钩子 – Ibolit 2013-03-10 07:39:08
因此,具体而言,您是否使用“更新后”钩子? – 2013-03-10 07:43:55