Just do IT

思うは招く

git rebase からの push --force-with-lease

PRを出す前に rebase して、安全に push する方法。

以下は開発ブランチ上(feature branch)ですべて行う。

#開発ブランチに最新のリモートリポジトリをリベースで取り込む
git pull --rebase origin master

#リモートリポジトリに安全にpushする
git push --force-with-lease origin 開発ブランチ名

--force-with-leaseオプション:pushするとき、ローカルが最新か確認した上でpushする。最新でない場合、失敗する。

長いのでpufなどエイリアスにしておくと便利。

普通にやるとき

ブランチ間の移動は面倒になるけど、ひとつひとつ確実にやりたい場合。

git checkout master
git pull origin master
git checkout feature-branch
git rebase master もしくは git merge master
# コンフリクトがあれば解決
git rebase --continue もしくは git merge --continue
git push