2011-02-03 13 views
4

特定のgitブランチの短縮コミット名を抽出する必要があります。これらは通常7桁の16進数で、特定のコミットを識別するためにいくつかのシステム(HerokuのCOMMIT_HASH環境変数を含む)によって使用されます。gitブランチの短縮コミットをきれいに取得する

含む省略コミット名を取得するには、いくつかの醜い方法、あります:

$ git log -1 --oneline | awk '{ print $1 }' 
d4377e3 
$ git describe --always --match '' 
d4377e3 

この値を取得するためのクリーンな方法はありますか?

答えて

8

偉大な質問を。私は、低レベルのgitコマンドの一つであるgit-rev-parseを探していると思います。最新たい場合も

[[email protected] Data]$ git-rev-parse --short github/master 
8b81a38 

は、単にパラメータとしてHEADを渡し、現在のブランチにコミットします。

[[email protected] Data]$ git-rev-parse --short HEAD 
8b81a38 
+4

gent-rev-parseは磁器のコマンドです。スクリプティングの目的で、配管コマンド 'git rev-list -n1 --abbrev-commit HEAD'を代わりに使用する必要があります。しかし、それは問題ではありません;) –

+0

@jleedev:良いキャッチ。私はそれを知らなかった。 – gahooa

2

git log--pretty-formatオプションを使用することができます。

git log -1 --pretty=format:%h 
+0

私には分かりません。 – JasonPlutext

関連する問題