我最近需要使用“git am”向我的存储库应用 16 个补丁,并且我小心翼翼地为每个补丁使用“--committer-date-is-author-date”。然而,我还需要调整每个 amd 补丁的提交消息,并且在完成所有 16 个补丁之后,我发现“commit --amend”改变了每个补丁的提交者时间戳。
我最终了解到我的问题可以一举解决
git rebase --committer-date-is-author-date <SHA-of-commit-prior-to-patches>
但在尝试用“filter-branch”解决我的问题之前,这不起作用。我很好奇我做错了什么。这是我的尝试:
git filter-branch --env-filter \
'export GIT_COMMITTER_DATE=$GIT_AUTHOR_DATE' SHA1..HEAD
这是结果:
Rewrite 1c52265d1f06bd67e0fed1c09e1e75249424476e (1/15)/usr/lib/git-core/git-filter-branch: 1: export: -0500: bad variable name
我做错了什么?我是否不允许在环境过滤器中将一个变量设置/导出为另一个变量的值?请注意,如果 $GIT_COMMIT 与特定 SHA 匹配,则我的方法改编自有条件更改 GIT_AUTHOR_DATE 和 GIT_COMMITTER_DATE 的方法,但在这种情况下,两个 GIT_*_DATE 变量都被设置为常量字符串,而不是另一个变量。
的价值$GIT_AUTHOR_DATE
包含空格,所以你必须引用它(-0500
是您的时区偏移量):
git filter-branch --env-filter \
'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"' SHA1..HEAD
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)