私は違いを理解しようとしています
git push --force
そして
git push --force-with-lease
私の推測では、後者は、ローカル ブランチにはないコミットがリモートにある場合にのみリモートにプッシュするのでしょうか?
ベストアンサー1
force
リモート ブランチをローカル ブランチで上書きします。
--force-with-lease
は、リモート ブランチにコミットがさらに追加された場合 (別のチーム メンバーや同僚などによって)、リモート ブランチ上の作業が上書きされない、より安全なオプションです。これにより、強制的にプッシュすることで他の人の作業が上書きされることがなくなります。
コマンドに関するあなたの一般的な考え方は正しいと思います。リモート ブランチの値がローカル マシンのリモート ブランチの値と同じ場合は、リモートを上書きします。同じ値でない場合は、コードで作業中に他の誰かがリモート ブランチに変更を加えたことを示しているため、コードは上書きされません。リモートに追加のコミットがある場合は、当然、値は同じにはなりません。
--force-with-lease
私は、チームメイトのコードを上書きしないようにしたいときに使用するオプションとして考えています。私の会社の多くのチーム--force-with-lease
は、フェイルセーフのデフォルト オプションとして使用しています。ほとんどの場合、これは不要ですが、別の人がリモートで貢献したものを上書きしてしまった場合に、多くの頭痛の種を省くことができます。
ドキュメントをご覧になったと思いますが、ここにはもっと長い説明が含まれているかもしれません: