2017-05-17 14 views
1

私は私たちのサーバーの1つが最新でないときにスラックメッセージを送信するPHPスクリプトを作成します。 現在、トリガーのビルドと公開にgitタグを使用しています。 最新のコミットをすべてのブランチで指している

は、だから私はすべての枝にタグを指摘最新のコミットを表示するにはgitのコマンドを検索する(例えば、より最近は 本番サーバ-1または デモサーバ-2タグ。

に指摘コミット

git --no-pager log -n 1 --format=%ai production-server-1 

git rev-list -n 1 production-server-1 | xargs git show 

しかしoutputed情報は、当社のgitリポジトリの情報と一致しない

が目を行うことが可能です:私は、次のコマンドを試してみました。コマンドラインを使用していますか?

おかげ

+1

それはあなたが探しているもので、すべての私には明らかではありません。 Git *タグ名*( 'v1.2'や' demo-server-2'など)は、通常はコミットのID( "軽量タグ")か、注釈付きタグオブジェクト(「注釈付きタグ」)。後者の場合、注釈付きタグオブジェクトはコミットを指し示します。 'git rev-parse ^{commit}'を使うと、コミットのハッシュIDが見つかります。 – torek

+0

私はそれを別の方法で説明しようとします。たとえば、私は新しい機能を研究しています。私はブランチを作成する** feature/add-dropodwn **。デモサーバーに公開するには、** demo-server **タグを使ってコミットをタグ付けします。今、このcommir IDはどのように取得できますか?それは明確ですか? – amiceli

+1

*ブランチ名*は、コミットへの移動可能なポインタです:ブランチ名を現在のコミットIDに解決するには、 'git rev-parse 'または 'git rev-parse refs/heads/'を実行します。上で述べたように、タグ名は、注釈付きタグを指していることを除いて、同じものです(そして、一度確立されたとは思われません)ので、 'git rev-parse 'は、コミットオブジェクトに解決を強制するには '^ {commit}'接尾辞が必要です。 'git rev-parse ^{commit}'はうまくいきませんか?そうでない場合は、例がありますか? – torek

答えて

1

次の2つのgitコマンドを組み合わせて使用​​することができます。

git show -s --format=%ci $(git rev-list -n 1 production-server-1) 
+0

ありがとうございます。また、すべてのタグを取得するコマンドを使用しました。http://stackoverflow.com/questions/16678072/fetching-all-tags-from-a-remote-with-git-pullいくつかのタグは時代遅れだった – amiceli

関連する問題