0

私は自分のマシンに git リポジトリのクローンをローカルに持っており、これを数週間使用しており、既に作業をメイン リポジトリ ("origin") にマージしています。オリジンのログで(もちろん)最後のマージを見つけることができますが、それを行う「正しい」(そして自動化された)方法があるかどうか疑問に思っています-このクローンがオリジンに最後にプッシュされたのはいつですか?

4

1 に答える 1

1

ローカル ブランチとオリジン ブランチの共通の祖先を見つける必要があります。これは、次を使用して実行できますgit merge-base

git merge-base master origin/master

コミットハッシュを返します。

機能する理由: 適切な git ワークフローを使用している場合、プッシュする前にローカル ブランチを最新のリモート変更 (mergeまたはを使用) で更新する必要があります。rebaseこの後、ローカル ブランチは作業を含むコミットを指し、リモートへのプッシュは単にリモート ブランチがコミットを指すようにすることを意味します。

その結果、リモート リポジトリには、プッシュしたときに頭にあったコミットが常に含まれます。

ただし、他の誰か (または別の頭からのあなた) がプッシュ ( git push -f) を強制し、コミットを消去した場合、これは機能しません。一部のまれなケースを除いて、共有リポジトリへのプッシュを強制することは避ける必要があります。

于 2013-01-15T09:57:26.753 に答える