GitHub は、レポの最新のプル/フェッチ/クローンの時刻を (少なくともレポへの書き込みアクセス権を持つユーザーに対して) 利用可能にしますか?
git push -f
もちろん、この情報への関心は、最後のいくつかのコミットを本質的に上書きするリポジトリで実行することがどれほど安全であるかを測定したいということから来ています。 be-overwritten が GitHub にプッシュされた場合、上書きは問題ない可能性があります...
おそらく、例が私の質問を明確にするでしょう。master
簡単にするために、1 つのローカル ブランチ ( ) と 1 つのリモート ブランチ ( )しかないと仮定しorigin/master
ます。(IOW、リモート リポジトリにはブランチが 1 つしかなく、唯一のローカル ブランチで追跡しています。)
最初に、完全にローカルなシナリオを考えてみましょう。私はコミットを行い、その直後にこのコミットに問題があることに気付きました。この場合、このコミットを を使用して正しいコミットで上書きgit commit --amend ...
するだけです。
まったく同じシナリオを想像してみてください。違いは、コミットの問題に気付く前に、問題のあるコミットをリモート (GitHub) リポジトリにプッシュすることです。
私がこのレポの唯一のユーザーである場合、以前のようにローカルでコミットを上書きするだけgit push -f ...
で済み、リモート (GitHub) レポで問題のあるコミットを上書きするために使用できます。
ただし、私がこのレポの唯一のユーザーではない場合、上記の手順には問題があります。なぜなら、私が誤ったコミットをプッシュした後、上書きする前のある時点で、別のユーザーがリモート (GitHub) レポからクローンまたはフェッチした可能性があるためです。リモートレポの不完全なコミット。
この可能性を最小限に抑える 1 つの方法は、リモート リポジトリに障害のあるコミットをプッシュしてから、リモート リポジトリで実行されたすべてのプル、フェッチ、およびクローン操作の記録を調べることです。このレコードにそのような操作の少なくとも 1 つが示されている場合、前の段落で説明した問題のあるシナリオが正確に発生していることを意味します。
一方、レコードにそのような操作が示されていない場合でも、前述の問題のあるシナリオを発生させることなく、リモート リポジトリの障害のあるコミットを上書きできる可能性があります。(もちろん、これは競合状態であるため、100% の保証はありません。)
ただし、これはすべて、リモート リポジトリでのプル、フェッチ、およびクローン操作の記録の可用性に基づいています。問題は、GitHub がそのようなレコードを、少なくともリポジトリへの書き込みアクセス権を持つユーザーに提供するかどうかです。