是否可以用 "unified" 补丁替换 git 中不同提交的文件?
Is it possible to replace files from different commits in git with a "unified" patch?
我有一个 git 不同 tags/commits 的存储库,我想替换一个 Makefile(每个版本都不同)。
在所有这些版本中都有我自己的 Makefile。
是否可以只编写一个可以应用于所有这些 commits/tags 的补丁文件,它将 "delete" 个人 Makefile 和 "insert" 我的?
简单的答案不是。
为什么你不能?
如果您希望更新多个提交,由于 git 存储日期的方式(此处太长无法解释),您必须分别更新它们
你能做什么?
你可以写一个脚本来做。
脚本应该类似于:
# loop on your commits and update the desired file
git filter-branch --index-filter 'mv "new-file" "old_file"' HEAD
注:
您可以将 --tree-filter
和 --index-filter
与 git filter-branch
一起使用。
--index-filter
速度更快,会更新您的索引文件
我有一个 git 不同 tags/commits 的存储库,我想替换一个 Makefile(每个版本都不同)。
在所有这些版本中都有我自己的 Makefile。
是否可以只编写一个可以应用于所有这些 commits/tags 的补丁文件,它将 "delete" 个人 Makefile 和 "insert" 我的?
简单的答案不是。
为什么你不能?
如果您希望更新多个提交,由于 git 存储日期的方式(此处太长无法解释),您必须分别更新它们
你能做什么?
你可以写一个脚本来做。
脚本应该类似于:
# loop on your commits and update the desired file
git filter-branch --index-filter 'mv "new-file" "old_file"' HEAD
注:
您可以将 --tree-filter
和 --index-filter
与 git filter-branch
一起使用。
--index-filter
速度更快,会更新您的索引文件