我最近转换了一个subversion repo,之前已经从cvs转换过来了,我最终得到了树底部的以下结构(为了清晰起见而简化):
* master
|
...
|
|
* G
|\
| * F
| * E
| * D
| * C Initial commit.
|
|
* A New repository initialized by cvs2svn.
来自G-A的行包含了我用“git filter-branch”成功删除的不需要的提交。我希望能够完全删除该行,包括初始行 A的空根提交,只有一行返回C。
所以我想删除A作为G的父级并允许它被gc'd,但我不确定这是否可能。
答案 0 :(得分:4)
在G:
上使用git filter-branch
和--parent-filter
$ git filter-branch --parent-filter \
'test $GIT_COMMIT = G && echo "-p F" || cat' HEAD
将G
和F
替换为实际的SHA-1值。