1

支店:

$が次をgit branch返すとします。

-master

-branch1

-upstream/master

-upstream/branch2

ノード マップ:

ここに画像の説明を入力

状況:

  1. upstream/branch2(newest)で行われた承認済みの変更local/branch1(newest)

  2. upstream/branch2(newest)で行われたすべての変更を組み込みたいと考えていlocal/branch1 (newest)ます。

  3. 両方のブランチによって変更されたファイルがありupstream/branch2(newest)local/branch1(neweset).

  4. どちらのブランチでも変更されていないファイルがあります。upstream/branch2(newest)local/branch1(neweset)

  5. によって変更されたファイルがありますlocal/branch1(neweset)

  6. によってのみ変更されたファイルがあります。upstream/branch2(newest)

質問:

  1. マージ競合なしでマージlocal/branch1(newest) するにはどうすればよいですか?upstream/branch2(newest)

  2. マージの競合が発生する必要がある場合、必要なハード コーディング ($ diffall ファイルを手動でコピー アンド ペーストする) を最小限に抑えるためのベスト プラクティスは何ですか?

実際のコマンドについて教えてください。


すべてのコマンドがsudo許可を得て実行されたと仮定します。

#1 : アップストリームからデータをフェッチします。

git fetch --all

#2 : master ブランチに切り替える:

git checkout master

#3 : branch2 を作成する

git branch branch2

#4 : チェックアウト ブランチ 2

git checkout branch2

#5 : アップストリームからデータをプルする

git pull upstream branch2

#6 : branch1 をマージする

git merge branch1

上記は私が考えることができるものですが、ステップ#6でマージの競合が発生すると思います....この問題を解決するより良い方法はありますか?

4

0 に答える 0