hene

hene.dev

force push されたブランチをローカルブランチに反映

force push されたブランチをローカルブランチに反映

force push されたブランチは、git pull でローカルブランチに反映できない。

レビュー後に force push されると、git pull できない。

  • レビュイー: feature/xxx ブランチのプルリクエストを作成して、レビュー依頼
  • レビュアー: git checkout feature/xxx して、動作確認・レビュー
  • レビュイー: レビュー対応して、git push --force origin feature/xxx
  • レビュアー: git pull origin feature/xxx できない

git pull

force push されると、コミットが書き換わってしまうので git pull できない。

$ git pull origin feature/xxx
From github.com:organization_name/repository_name
 * branch              feature/xxx -> FETCH_HEAD
Auto-merging models/staging/dataset_name_a/stg_dataset_name_a.yml
CONFLICT (content): Merge conflict in models/staging/dataset_name_a/stg_dataset_name_a.yml
Auto-merging models/staging/dataset_name_a/dataset_name_a.md
Automatic merge failed; fix conflicts and then commit the result.

対応

リモートリポジトリの feature/xxx ブランチに HEAD が移動する。

$ git reset --hard origin/feature/xxx
HEAD is now at xxxxxxxx hogehoge を修正

所感

レビュー後のブランチで、force push は禁止したい。

参考

関連記事