🐥

プログラマーのための調和の取り方: マージとリベース

プログラマーのための調和の取り方: マージとリベース

プログラマーのための調和の取り方: マージとリベース

プログラマーとして日々コーディング作業を行っていると、アップストリームの更新があった際に、ついついマージしてしまうことがありますよね。しかし、私はその代わりにリベースをオススメしたいと思っています。

$ git fetch
$ git merge origin/main      # よくやりがちな方法
$ git rebase origin/main     # オススメしたい方法

なぜリベースをオススメするかというと、コミットを元に戻すときに地獄を見ることがあるからです(経験者の声)。また、マージコミットが含まれていると、merge-baseなどの便利な機能が使えなくなってしまいます。

GitHub上でリベースを行えば、問題なく動作することがほとんどですが、最初は戸惑うかもしれません。それでも、手動でコミットを元に戻す必要が生じた場合、これらの違いを理解していないと非常に厳しい状況になります。

そして、コンフリクトが発生した場合に考慮すると、リベースを選択する方がベストです。さらに、時折遭遇するのが「レレレのおじさん(reuse recorded resolution)」です。私はコンフリクト解消の経験が豊富であり、レレレデータベースもかなり充実しているはずです。ただし、誤った解消方法を選んでしまい、リセットを行った際にrerereで問題に直面することも時折あります(笑)。

これらのテクニックを理解し、状況に応じてマージとリベースを使い分けることで、コーディング作業をスムーズに進めることができます。プログラマーとして、調和の取れた開発フローを心がけましょう。

※ この記事は こちらのブログ で公開されています。

Nicosys Tech blog

Discussion