git - 如何将 Git 补丁应用于具有不同名称和路径的文件?

标签 git filenames patch git-patch git-am

我有两个存储库。一方面,我对文件 ./hello.test 进行了更改.我提交更改并使用 git format-patch -1 HEAD 从该提交创建补丁.现在,我有第二个存储库,其中包含一个与 hello.test 具有相同内容但以不同名称放置在不同目录中的文件:./blue/red/hi.test .我如何着手将上述补丁应用到 hi.test文件?我试过 git am --directory='blue/red' < patch_file但这当然会提示文件的名称不同(我认为 Git 不关心这一点?)。我知道我可能可以编辑差异以应用于该特定文件,但我正在寻找命令解决方案。

最佳答案

您可以使用 git diff 创建补丁然后使用 patch 应用它实用程序,它允许您指定要应用差异的文件。

例如:

cd first-repo
git diff HEAD^ -- hello.test > ~/patch_file

cd ../second-repo
patch -p1 blue/red/hi.test ~/patch_file

关于git - 如何将 Git 补丁应用于具有不同名称和路径的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16526321/

相关文章:

git - 如何将我当前的项目添加到现有的 GitHub 存储库

git - 恢复到特定提交但无法推送

java - Java中的正则表达式模式匹配

bash - 如何在 bash 脚本中验证文件名?

python - 如何处理OSError : [Errno 36] File name too long

带有补丁管理/自动更新的 .NET 部署选项

macros - 将 Quartz Composer 宏添加到 Patch Creator

gitignore 仍然包含 dll 文件

空提交上的 git format-patch 返回意外结果

Git pull 入一个未跟踪的 repo 副本