我在我的代码库中意外地创建了由“未知”生成的提交,决定尝试从这里运行一个命令:
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_NAME" = "unknown" ];
then
GIT_COMMITTER_NAME="..";
GIT_AUTHOR_NAME="..";
GIT_COMMITTER_EMAIL="...";
GIT_AUTHOR_EMAIL="...";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
起初我认为一切都很好,直到我在gitk中注意到,在运行这个命令之前的每个提交都被复制了,而不是像我最初想的那样只是编辑了。 是否有可能清理这个呢?
编辑:好的,gitk显示旧提交(其中混合了“未知”提交者)和新提交(重写的提交),在一定的中间点上分开。想象一堆提交,然后复制(并带有编辑),并堆叠在原始提交之上。如果可能的话,我想做的是删除原始提交。
...--a--b--c--(*)--a'--b'--c'--d--e
,其中(*)
是您运行错误命令的提交,[abc]'
是您想要删除的错误重复提交,而[de]
是您想要保留的提交? - John Feminella'
,因为它们有固定的作者字段。 - unrelativity