我试图使用git过滤器更改本地提交的时间戳,但我只是得到了该错误,并且没有对提交进行更改。有没有改变提交的时间戳而不是这个或修复命令后出现的错误?
ia@a:~/Desktop/testGit$ git filter-branch --env-filter \
'if [ $GIT_COMMIT = b1d63c62a3a1139a18cf0349980db9f2df331ff2]
then
export GIT_AUTHOR_DATE= "Sun Mar 4 12:12:19 2018 +0200"
export GIT_COMMITTER_DATE="Sat May 19 01:01:01 2007 -0700"
错误:
fi' Rewrite b1d63c62a3a1139a18cf0349980db9f2df331ff2 (1/2) (0 seconds passed, remaining 0 predicted)
/usr/lib/git-core/git-filter-branch: 1: [: missing ] Rewrite
f4c6559bcc18b496f8b258a0a7d142d8bee323b8 (2/2) (0 seconds passed,
remaining 0 predicted) /usr/lib/git-core/git-filter-branch: 1: [:
missing ]
WARNING: Ref 'refs/heads/master' is unchanged
要编辑一个提交,请使用interactive rebase。跑
git rebase --interactive b1d63c62a3a1139a18cf0349980db9f2df331ff2~
(注意代字号!)在打开的编辑器中,验证第一个提交是b1d63c6并在第一列中编辑它的命令 - 用pick
替换edit
。保存todo文件并退出编辑器。 git rebase
在第一次提交时停止。
编辑提交:
GIT_AUTHOR_DATE="Sun Mar 4 12:12:19 2018 +0200" GIT_COMMITTER_DATE="Sat May 19 01:01:01 2007 -0700" git commit --amend --no-edit
继续变基:
git rebase --continue
等到git完成并验证结果:
git show --format=fuller $NEW_SHA1_FOR_REBASED_COMMIT
(需要新闻sha1 ID,因为rebase
更改了提交ID)。