2012-01-09 7 views
15

pushの特定のリモートからのコマンドのリストをgitにどのように取得できますか?Gitですべてのプッシュリストを取得

私の場合、の場合、これはリモートまたはローカルのreposのどちらでも実行できます。ボーナスポイントについては

、どのように私はすべての成功pushコマンドの一覧を取得するのでしょうか?

答えて

15

この方法が唯一のあなたに成功したプッシュを与えるだろうが、それはまだあなたの役に立つことがあります。

あなたのリモート追跡分岐の1つに対応するリモートブランチにプッシュ

、そのプッシュリモートトラッキングブランチが更新されます。リポジトリからクローンを作成したデフォルトの場合、これは通常、リモートoriginmasterへのプッシュが成功すると、リモート追跡ブランチorigin/masterが更新されることを意味します。あなたは、

17f2303 refs/remotes/origin/[email protected]{0}: fetch origin: fast-forward 
dd7e0ac refs/remotes/origin/[email protected]{1}: fetch origin: fast-forward 
1788ffe refs/remotes/origin/[email protected]{2}: fetch origin: fast-forward 
9763bbc refs/remotes/origin/[email protected]{3}: fetch origin: fast-forward 
058d0d6 refs/remotes/origin/[email protected]{4}: fetch origin: fast-forward 
921f0f1 refs/remotes/origin/[email protected]{5}: fetch origin: fast-forward 
8483afd refs/remotes/origin/[email protected]{6}: update by push 
18d527f refs/remotes/origin/[email protected]{7}: update by push 
1a0fc4a refs/remotes/origin/[email protected]{8}: fetch origin: fast-forward 
b19afc6 refs/remotes/origin/[email protected]{9}: fetch origin: fast-forward 
9253285 refs/remotes/origin/[email protected]{10}: fetch origin: fast-forward 
dfa664f refs/remotes/origin/[email protected]{11}: fetch origin: fast-forward 
30ee7c0 refs/remotes/origin/[email protected]{12}: update by push 
ad11e76 refs/remotes/origin/[email protected]{13}: fetch origin: fast-forward 
c337975 refs/remotes/origin/[email protected]{14}: update by push 
1ff03bd refs/remotes/origin/[email protected]{15}: update by push 
7fb1c8d refs/remotes/origin/[email protected]{16}: fetch origin: fast-forward 
452c8fa refs/remotes/origin/[email protected]{17}: fetch origin: fast-forward 
6c79a16 refs/remotes/origin/[email protected]{18}: update by push 
11d9c4a refs/remotes/origin/[email protected]{19}: fetch origin: fast-forward 

例えば:例えば

git reflog show origin/master 

、私のリポジトリの1つに、あなたが表示されます:origin/masterへの変更は、あなたがして成功したプッシュを見つけることができるので、REFLOGに記録されています私の直近のプッシュはを18d527fから8483afdに更新したことが分かります。

これに頼る必要がある場合は、デフォルト時間(90日間IIRC)後に期限切れになるようにreflogを停止する必要があります。

+0

完璧!ありがとうございました。 FWIW、私のreflogは過去9ヶ月間のエントリを表示しています。最初にインストールして以来、その動作に影響を与えることは何もありません。 – Clayton

+2

@Clayton:おそらくあなたはまだ 'gc --auto'トリガを持っていないということです。デフォルトの90日より古いreflogが期限切れになります。物事をそのままにしたい場合は、 'gc.reflogExpire'を' never'(またはもっと大きなもの)に設定するだけです。 – Cascabel

+0

git学習者の場合:すべてのローカルリポジトリに対して期限切れにならないようにreflogを設定するには、コマンドラインで 'git config --global gc.reflogExpire never'を実行します。 –

関連する問題