支店:
$が次をgit branch
返すとします。
-master
-branch1
-upstream/master
-upstream/branch2
ノード マップ:
状況:
upstream/branch2(newest)
で行われた承認済みの変更local/branch1(newest)
。upstream/branch2(newest)
で行われたすべての変更を組み込みたいと考えていlocal/branch1 (newest)
ます。両方のブランチによって変更されたファイルがあり
upstream/branch2(newest)
、local/branch1(neweset)
.どちらのブランチでも変更されていないファイルがあります。
upstream/branch2(newest)
local/branch1(neweset)
によって変更されたファイルがあります
local/branch1(neweset)
。によってのみ変更されたファイルがあります。
upstream/branch2(newest)
質問:
マージ競合なしでマージ
local/branch1(newest)
するにはどうすればよいですか?upstream/branch2(newest)
マージの競合が発生する必要がある場合、必要なハード コーディング ($
diff
all ファイルを手動でコピー アンド ペーストする) を最小限に抑えるためのベスト プラクティスは何ですか?
実際のコマンドについて教えてください。
すべてのコマンドが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でマージの競合が発生すると思います....この問題を解決するより良い方法はありますか?