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
は禁止したい。