私は窓の上にいます。
さまざまな理由から、異なるsvnブランチの複数のgitインスタンスがあります。
多くの場合、リポジトリAの問題を修正し、パッチを生成し、リポジトリBに適用します。これは、競合がある場合を除き、正常に機能します。
リベースするときは、フォルダを右クリックし、tortioseGitを使用して解決オプションを選択します。これにより、競合を解決するための素敵なGUIが表示されます。
拒否されたパッチチャンクでこれを達成する方法はありますか?
パッチを作成/適用する現在のアプローチは次のとおりです。
git format-patch master --stdout > c:\\patch\\file.patch
git apply --reject --ignore-space-change --ignore-whitespace c:\\patch\\file.patch
パッチを生成するには、次の手順を実行します。
git format-patch --stdout first_commit^..last_commit > changes.patch
パッチを適用する準備ができたら:
git am -3 < changes.patch
競合がある場合、-3
は3者間マージを行います。この時点で、GUIにアクセスする場合、またはvimを使用して手動でファイルをマージする場合は、git mergetool
を実行できます(標準の<<<<<<
、||||||
、>>>>>>
競合解決)。
パッチの適用、リベース、またはマージ時に同じ競合セットに頻繁に遭遇する場合は、git rerere(記録された解像度の再利用)機能を使用できます。これにより、過去の競合の解決方法に基づいて、競合の解決方法を事前に定義できます。この仕組みの詳細については、 http://git-scm.com/blog/2010/03/08/rerere.html をご覧ください。
TortoiseGitには、パッチファイルを開くことができるマージ機能があります。
その写真があります こちら 。
私のアプローチは: