hene

hene.dev

git pull --rebase する際に気をつけること

git pull --rebase する際に気をつけること

今までと違うプロジェクトに移って、git pull --rebase を使ったときに少し問題が発生しました。

git pull --rebase

git fetch + git rebase

使って OK

  • レビュー頼む前
  • 一人プロジェクト
  • git push する前
  • メンバー全員が、git pull --rebase すると問題なさそう?

今回発生した問題

コンフリクトしてしまった。

コンフリクトした流れ

    1. レビュアー
    • 1.1. feature/xxx のブランチでレビュー
    1. レビュイー
    • 2.1. レビュー対応
    • 2.2. develop ブランチの変更を git pull --rebase origin develop で取り込む
    • 2.3. git push origin feature/xxx
    1. レビュアー
    • 3.1 git pull origin feature/xxx
    • 3.2 コンフリクト

使い方

$ git pull --rebase origin develop

force push($ git push -f origin <branch_name>)しないと、push できない。 force push すると push しているコミットを消し去ってしまう。

$ git push -f origin feature/xxx

マージコミットが増えて、ログは汚くなるが、git pull origin develop する。

$ git pull origin develop

git merge

develop の変更を取り込む。

使い方

$ git fetch origin develop
$ git merge origin develop
$ git push origin feature/xxx

git pull

git fetch + git merge

使い方

$ git pull origin develop
$ git push origin feature/xxx

感想

よくわかっていないまま、git pull --rebase origin develop していた。

チームの考え方によって、force push の使い方は変わってくると感じた。 プロジェクトのメンバーと Git の運用フローについて話し合っておくと良いです。

参考

関連記事