我知道如何列出远程分支
$ git branch -a
我知道如何找到当前分支的头部提交哈希
$ git rev-parse HEAD
但我不确定如何列出所有远程分支的所有头部提交哈希值。这接近我想要的但它们的顺序是什么?
$ git rev-parse --remotes
4b9f7128e9e7fa7d72652ba49c90c37d0727123d
4ebab9616fac6896b7827e8502b4dc7c5aac6b5b
ea7a5fab4a757fb0826253acf1fe7d8c546c178e
...
理想情况下,我想要一个分支名称提交哈希对的列表,甚至是一种将远程分支名称传递给git rev-parse HEAD
的方法
答案 0 :(得分:11)
使用
git branch -r -v --no-abbrev
并忽略部分提交消息或
git show-ref
并以refs / remotes开头过滤结果。
答案 1 :(得分:5)
我知道这已经过时了并且已经回答了,但我认为git ls-remote
也适用于此。
git ls-remote --heads origin
fcce961b46784fae13be8a30c2622ddd34d970ec refs/heads/develop
9da7bb692a72235451706f24790a3f7a100a64e2 refs/heads/feature-netty-testing
86020c50d86691caecff4a55d3b1f2f588f6291d refs/heads/javafx-testing
871d715e5c072b1fbfacecc986f678214fa0b585 refs/heads/master
7ed641c96d910542edeced5fc470d63b8b4734f0 refs/heads/orphan-branch
答案 2 :(得分:1)
您可以使用git rev-parse
。它可以采取任何看起来甚至像提交一样远程的东西,并返回该提交的完整SHA1哈希值。
例如,要获取HEAD
的SHA1:
git rev-parse HEAD
获取master
的SHA1:
git rev-parse master
获取origin/trunk
的SHA1:
git rev-parse origin/trunk
获取所有远程头的SHA1(这只是众多方法中的一种,当然不是最好的方法之一):
git branch -r | cut -d' ' -f 3 | while read remote; do
echo ${remote} `git rev-parse ${remote}`
done