私は2つのリポジトリを持っています。1 つは、 file に変更を加えることです./hello.test
。変更をコミットし、そのコミットからパッチを作成しgit format-patch -1 HEAD
ます。これで、hello.test と同じ内容のファイルを含む 2 番目のリポジトリができましたが、別の名前で別のディレクトリに配置されています./blue/red/hi.test
。hi.test
前述のパッチをファイルに適用するにはどうすればよいですか? 私は試しgit am --directory='blue/red' < patch_file
ましたが、もちろん、ファイルの名前が同じではないという不平を言います(Gitは気にしないと思いましたか?)。おそらく差分を編集してその特定のファイルに適用できることはわかっていますが、コマンドソリューションを探しています。
質問する
60211 次
6 に答える
68
手動でパッチを編集したり、外部スクリプトを使用したりしない簡単な解決策があります。
最初のリポジトリで (これはコミットの範囲をエクスポートする場合もあり-1
ます。1 つのコミットのみを選択する場合に使用します):
git format-patch --relative <committish> --stdout > ~/patch
2 番目のリポジトリで:
git am --directory blue/red/ ~/patch
--relative
inを使用する代わりに、同様の質問への回答で述べられているように、オプション inを使用してパッチのパスからディレクトリを削除git format-patch
する別の解決策があります。-p<n>
git am
n
git format-patch --relative <committish>
なしで実行することも可能で--stdout
、一連の.patch
ファイルが生成されます。git am
これらのファイルは、で直接フィードできますgit am --directory blue/red/ path/to/*.patch
。
于 2015-04-27T06:36:07.690 に答える