1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[WIP] 意図せぬMerge Hellを防ぐ

Last updated at Posted at 2017-06-21

WIP

  • 本記事は執筆中です。ご意見募集中。

前説

  • gitを用いて複数人で開発する際、機能毎にブランチを切り、プルリクエストを出すことで開発をすすめることが多いと思います。
  • しかし、機能Aと機能Bを開発したあと、機能Bのブランチに機能Aのブランチをマージ(※BはAより優先度が低いとします)してpushするだけでも意図せぬMerge Hellは簡単に起こってしまいます。
  • 特に、「機能Bのブランチに機能Aのブランチをマージ」した状態で常用するとこの現象はそれなりに発生すると思います。

コマンド例です。

git checkout -b featureA
...
git push # make pull request
...
git merge featureB
git push # pull request broken

次善策

  • 自分専用のメインブランチを持ち、そこにマージする。
  • アカウントごとにリポジトリが異なる場合は良いと思いますが、リポジトリを共有している場合は非推奨と考えられます。

AやBに依存する機能Cを作る場合

  • 普通にブランチを切れば良いと思います。

AとBを両方持った状態で常用するには

  • マージすることが問題だとすれば、(以下執筆中)
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?