【发布时间】:2009-12-30 23:37:43
【问题描述】:
我不小心在我的存储库中通过“未知”创建了提交,并决定尝试从 here 运行命令:
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]是您要保留的提交? -
嗯,由于分支,它更复杂,但基本上正如你所说,但我想保留
'的,因为它们的作者字段是固定的。 -
好的,所以你想删除[abc],但保留[abc]'?
-
是的,我想删除我原来的提交。
标签: git