ろきメモ【ROKI MEMO】- ろきsanの備忘録 -

ろきさんの備忘録。プログラミング学習記録や開発記録、および学んだ知識等のアウトプットとシェアを目的に書いています。たまに普通のことも書きます。

【Github】リモートリポジトリがrebaseやforce pushによって歴史が変わったとき、ローカルの歴史もリモートと同じにする方法

スポンサーリンク

githubを使いチームで開発しているとき、自分のローカルの歴史とリモートリポジトリの歴史が異なるときがある。
誰かがrebaseなどして、force pushをしたときなど。(masterのforce pushは禁止にはしているが、ブランチはよくある)

このときそのままpullやfetchしても失敗する。
そんなときはどうするかの備忘録。
ローカルまるごと削除してcloneし直すのもいいが、もっとクールにやる。

// とりあえず目的にブランチにチェックアウト(hoge-branchとする)
$ git checkout hoge-branch


// リモートの最新を取得して
$ git fetch origin hoge-branch


// リモートの状態に強制的にする
$ git reset --hard origin/hoge-branch

これでOK。


こちら参考にさせていただきました。
git pull を強制し、リモートでローカルを上書きする方法 | WWWクリエイターズ


以上。