git am有多个补丁

时间:2016-08-15 13:44:49

标签: git patch

我正在尝试将多个补丁从一个git存储库应用到另一个。我已经创建了补丁(我想要13个最新的更改):

cd repoA
git format-patch -13 -o ..\patch-directory
cd ..\repoB
git am ..\patch-directory\*.patch

这给出了:

fatal: could not open '..\patch-directory\*.patch' for reading: Invalid argument

一个非常相似的问题,似乎表明这是正确的方法(how to apply multiple git patches in one shot),但它不起作用。我可以通过在多个命令中传递完整的文件名来单独应用补丁(并且,我可以轻松地创建一个脚本以逐个应用它们),但是,我想知道为什么这不起作用。< / p>

我正在使用git version 2.9.2.windows.1

1 个答案:

答案 0 :(得分:1)

如果您使用的外壳没有进行whildcard扩展,那么您需要自己进行此操作或使用具有此功能的外壳。 Windows外壳程序不支持,因此您可以使用Git Bash或使用Powershell

git am (dir ..\patches\*.patch)

将对名称进行扩展,然后将所有扩展的名称作为参数传递给git am

一个替代方法可能是foreach-object调用(dir ..\patches\*.patch | ForEach-Object { git am $_}),但我会担心这种处理错误补丁的正确方法。