🐥
プログラマーのための調和の取り方: マージとリベース
プログラマーのための調和の取り方: マージとリベース
プログラマーのための調和の取り方: マージとリベース
プログラマーとして日々コーディング作業を行っていると、アップストリームの更新があった際に、ついついマージしてしまうことがありますよね。しかし、私はその代わりにリベースをオススメしたいと思っています。
$ git fetch
$ git merge origin/main # よくやりがちな方法
$ git rebase origin/main # オススメしたい方法
なぜリベースをオススメするかというと、コミットを元に戻すときに地獄を見ることがあるからです(経験者の声)。また、マージコミットが含まれていると、merge-base
などの便利な機能が使えなくなってしまいます。
GitHub上でリベースを行えば、問題なく動作することがほとんどですが、最初は戸惑うかもしれません。それでも、手動でコミットを元に戻す必要が生じた場合、これらの違いを理解していないと非常に厳しい状況になります。
そして、コンフリクトが発生した場合に考慮すると、リベースを選択する方がベストです。さらに、時折遭遇するのが「レレレのおじさん(reuse recorded resolution)」です。私はコンフリクト解消の経験が豊富であり、レレレデータベースもかなり充実しているはずです。ただし、誤った解消方法を選んでしまい、リセットを行った際にrerereで問題に直面することも時折あります(笑)。
これらのテクニックを理解し、状況に応じてマージとリベースを使い分けることで、コーディング作業をスムーズに進めることができます。プログラマーとして、調和の取れた開発フローを心がけましょう。
※ この記事は こちらのブログ で公開されています。
Discussion