Git(および一般的にDVCS)を使い始めて、履歴書き換えの変更を検討し始めたとき、リポジトリがローカルのみの場合は安全ですが、リモートで作業してみようとすると問題が発生する可能性がありますそのような変更をプッシュします。
私が期待している機能は、「セーフモード」を有効にする機能です。これにより、基本的に、私がすべきでないことは何もできなくなります。そして、それはどういう意味ですか?つまり、すでにオリジンにプッシュされたものの履歴書き換えの変更を意味します。正確に定義することはできませんが、これには次のようなケースが含まれます。
commit --amend
HEADがすでにプッシュされている場合rebase
非ローカルブランチのreset
プッシュされたブランチの
これらは、おそらく次のpush
失敗をもたらす状況の例です(IIRCは早送りではないため)。そのうちのいくつかを偶然に作成し、リモートでブランチを再作成する必要がありました。そして、私はこれを十分に速く実行できたので、私が書き直した歴史を誰も引き出せなかったのは幸運でした。
この種の変更を特定し、必要に応じて、ユーザーがそれらを変更できないようにすることは可能だと思います。おそらくそのためのオプションはありますか?
存在しない場合、作成しようとする価値があると思いますか?そのような「危険な変化」を特定する方法を正確に定義してみませんか?
--force
。