1

我有数百个分支的存储库,我git show只想为那些最近获取或更新的分支运行git fetch,如

$ git fetch tester
From repo:Foo/Bar
 * [new branch]      Foo -> origin/Foo
   a7e70a8..a9d7805  Bar -> origin/Bar
 + b673629...293dc64 Baz -> origin/Baz (forced update)
 + 345850e...b3646a3 Qux -> origin/Qux (forced update)

所以我想结束这样的命令:

git show origin/Foo origin/Bar origin/Baz origin/Qux

这将向我展示这些最近获取的分支与其父提交之间的差异。

如何做到这一点?


我试过git show FETCH_HEAD了,但它只显示了一个分支以及 refname 'FETCH_HEAD' 不明确的警告。

并向我git show $(git branch -r --sort=authordate | head)展示了更旧的分支,其次是命令在 行 上中断->,因此它也不起作用。

4

2 回答 2

1

您可以使用获取最近更新的分支for-each-ref

git for-each-ref --sort=-committerdate refs/remotes/origin

用于--format=%(objectname)获取那些分支的头部。这得到五个最近更新的分支,

git for-each-ref --sort=-committerdate --format="%(objectname)" refs/remotes/origin | head -5 
于 2017-02-01T12:22:58.937 回答
0

这是涉及解析git输出的解决方案,例如

git fetch tester 2>&1 | grep -o "origin/\S\+" | xargs git show

替换origin为远程主机的名称。

您可以使用--dry-run参数先对其进行测试(在获取分支之前),例如

git fetch tester --dry-run 2>&1 | grep -o "origin/\S\+"
于 2017-02-02T00:06:12.677 回答