TL;DR
git push -f
をやめて --force-with-lease
を使いましょう!
$ git push --force-with-lease origin master
force pushヤバイ理由
rebaseなどの作業の際、強制PUSHが必要なタイミングが出てくるが --force
では
ローカルの内容を破壊的にリモートレポジトリを上書きしてしまう。
そうなった場合、 「◯◯さんのコミットを吹き飛ばしちゃった/// 」
が発生し、大惨事となる。
–force-with-lease とは
PUSHの際、ローカルのrefとリモートのrefを比較しローカルが最新か確認。
最新でなければ、PUSHは失敗するというもの。
(※ただし、直前にfetchしているとPUSHが成功してしまうので注意)
エイリアスに登録する
--force-with-lease
とか長すぎるので、エイリアスに登録する
$ git config --global alias.push-f "push --force-with-lease"
[alias]
push-f = push --force-with-lease
↓
$ git push-f origin master
ブランチを削除できないようにする
消されるとやばいブランチは [Settings] → [Protected branches]に追加しましょう
0 件のコメント :
コメントを投稿