前提・実現したいこと
お世話になります。
複数人でのブランチマージにおける運用についてご意見を聞かせてください。
以下2つのブランチが存在したとします。
・dev1
・dev2
※masterから派生し、製品が違うようなブランチです。
dev1,dev2は同時に開発が進み、途中で共通機能/不具合の反映のため、
dev1→dev2にマージを行うとします。
代表者がgit mergeを行いますが、担当ではないファイルのコンフリクトが発生します。
ブランチのマージ対応で自分以外のファイルがコンフリクトを起こした場合、
皆様どのように運用しているのでしょうか?
考えられるケース(1)
マージ対応中の作業ツリーに各担当者に入ってもらい、コンフリクトファイルを解消してもらう。
考えられるケース(2)
コンフリクトリストを展開して解消版のファイルを代表者宛に送ってもらう。
マージ代表者は、そのファイルを元に、マージを完了させる。
本当はこうしたいが出来るのかな?
上記ケースは、接続環境や人数規模の関係で適用が難しいです。
そもそも、コンフリクト解消は、各自の作業ツリーで対応したいです。
例えば、以下のようなことはGit単体で可能なのでしょうか?
[1]マージ代表者は、マージ用の仮ブランチを作成して、git mergeを行う。
[2]マージ代表者は、自動マージ出来たファイルを先行してcommit, pushする。
[3]各担当者は、コンフリクト解消依頼を受け、自分の作業ツリーで未解消分の対応を行いcommit,pushする。
試した内容は次の通りです。
[1][2]の操作として、
git checkout dev2
git checkout -b dev2_merge
git merge dev1
git reset <コンフリクトファイル> ← コンフリクトファイルがあるとコミット出来ないため
git commit -m "merge1"
git push -u origin dev2_merge
次が[3]の操作として、
git checkout dev2_merge
git merge dev1
→ 「Already up to date.」を表示され、マージは出来ない。
期待としてコンフリクト未解消ファイルが表示され、担当ファイルだけ解消/commit/push出来ると良かった。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/25 02:30
2018/12/25 06:12 編集