我有一个带有不同标签/提交的 git 存储库,我想替换一个 Makefile(每个版本都不同)。
在所有这些版本中都有我自己的 Makefile。
是否可以只编写一个可应用于所有这些提交/标签的补丁文件,这些提交/标签将“删除”单个 Makefile 并“插入”我的?
简单的答案不是。
如果您希望更新多个提交,则必须分别更新它们,因为 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