我在我的仓库中使用了过滤分支到fix an incorrect email address,但所有的分支现在都是MIA(master除外)。如何删除过滤分支后的旧提交?
这是git graph
显示之前filter-branch
:
* d93c7ee (HEAD, master) Merge branch 'f1'
|\
| * 08e7463 (f1) adding b
|/
* 7c7bd91 adding a
我发出了这样的过滤器,分支命令:
git filter-branch --env-filter 'export GIT_AUTHOR_EMAIL="fixed-email";
GIT_AUTHOR_NAME="fixed-author"'
,并得到这样的:
几件事情,打扰我:
1)f1
分支未移至0f58ab5。
2)在fb012a9之前的所有提交与我无关,我可以摆脱它们吗?
我在另一个问题有人建议,以看到:
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --aggressive --prune=now
但事与愿违相当的帮助,这是我得到算账:
* 770262a (HEAD, master) Merge branch 'f1'
|\
| * 0f58ab5 adding b
|/
* fb012a9 adding a
* 08e7463 (f1) adding b
* 7c7bd91 adding a
编辑:做VonC曾建议得到了什么此图:
* 211632d (HEAD, master) Merge branch 'f1'
|\
| * bda7577 (f1) adding b
|/
* 70c7b34 adding a
* 3182b33 (refs/original/refs/heads/master) Merge branch 'f1'
|\
| * 8b81c21 (refs/original/refs/heads/f1) adding b
|/
* 4c07dc9 adding a
解决了问题#1,现在我只需要找到一种方法来摆脱第旧的提交,我该怎么做?
感谢,它解决的问题之一,看到我的编辑。 – 2010-07-11 13:26:19
实际上'rm -r .git/refs/original'这次做的诡计,很奇怪......谢谢! – 2010-07-11 15:05:28
@Idan:感谢您的反馈。我已经完成了我的答案。 – VonC 2010-07-11 16:07:00