コミットをマージするのではなく、変更を 1 つのファイルにマージするにはどうすればよいですか? 質問する

コミットをマージするのではなく、変更を 1 つのファイルにマージするにはどうすればよいですか? 質問する

2 つのブランチ (A と B) があり、ブランチ A の 1 つのファイルをブランチ B の対応する 1 つのファイルとマージしたいと考えています。

ベストアンサー1

私も同じ問題に遭遇しました。正確に言うと、同じファイルを持つ 2 つのブランチAとがありB、一部のファイルのプログラミング インターフェイスが異なります。2 つのブランチのインターフェイスの違いとは関係のない file のメソッドfが branch で変更されましたが、この変更は両方のブランチにとって重要です。したがって、 branch のfile をbranch のfile にBマージする必要があります。fBfA

Aすべての変更が両方のブランチにコミットされていると仮定すると、簡単なコマンドですでに問題は解決されていますB

git checkout A

git checkout --patch B f

最初のコマンドは、のファイル のバージョンAをマージするブランチ に切り替えます。2 番目のコマンドは、 のでファイルにパッチを適用します。パッチの個々の部分を受け入れたり破棄したりすることもできます。 の代わりに、ここで任意のコミットを指定できます。 である必要はありません。BfffHEADBBHEAD

コミュニティ編集: ファイルfBにまだ存在しない場合はA--patchオプションを省略します。それ以外の場合は、「変更なし」というメッセージが表示されます。

おすすめ記事