8

リモートブランチをリストする方法を知っています

$ git branch -a

そして、現在のブランチのヘッドコミットハッシュを見つける方法を知っています

$ git rev-parse HEAD

しかし、すべてのリモート ブランチのすべてのヘッド コミット ハッシュを一覧表示する方法がわかりません。これは私が望むものに近いですが、それらはどのような順序ですか?

$ git rev-parse --remotes
4b9f7128e9e7fa7d72652ba49c90c37d0727123d
4ebab9616fac6896b7827e8502b4dc7c5aac6b5b
ea7a5fab4a757fb0826253acf1fe7d8c546c178e
...

理想的には、ブランチ名のコミットとハッシュのペアのリスト、またはリモート ブランチ名をgit rev-parse HEAD

4

3 に答える 3

11

どちらかを使用

git branch -r -v --no-abbrev

コミットメッセージのある部分を無視するか、

git show-ref

refs/remotes で始まる結果をフィルタリングします。

于 2010-10-08T18:41:20.563 に答える
6

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
于 2012-08-13T10:12:03.420 に答える
1

これに使えますgit rev-parse。コミットのように遠く離れていても、そのコミットの完全な SHA1 ハッシュを返します。

たとえば、 の SHA1 を取得するにはHEAD:

git rev-parse HEAD

の SHA1 を取得するにはmaster:

git rev-parse master

の SHA1 を取得するにはorigin/trunk:

git rev-parse origin/trunk

すべてのリモート ヘッドの SHA1 を取得するには (これはこれを行う多くの方法の 1 つにすぎず、最善の方法ではありません):

 git branch -r | cut -d' ' -f 3 | while read remote; do
   echo ${remote} `git rev-parse ${remote}`
done
于 2010-10-08T19:00:27.597 に答える