git树有两个;“顶级”;分支机构

git树有两个;“顶级”;分支机构,git,Git,我有一个我正试图清理的旧项目,不知何故,我使用了两个独立的提交,认为它们是“初始提交”,并且没有父分支,如下所示: % git log --all --date-order --pretty="%h %p %d" 0fb2623 81d3553 (HEAD -> master, tag: v6.2.5, origin/master, origin/HEAD) 81d3553 d7d7578 (tag: v6.2.4) d7d7578

我有一个我正试图清理的旧项目,不知何故,我使用了两个独立的提交,认为它们是“初始提交”,并且没有父分支,如下所示:

% git log --all --date-order --pretty="%h  %p  %d"   
    0fb2623  81d3553   (HEAD -> master, tag: v6.2.5, origin/master, 
origin/HEAD)  
    81d3553  d7d7578   (tag: v6.2.4)  
    d7d7578  eae8973   (tag: v6.2.3)  
    eae8973  ded0fe9   (tag: v6.2.1)  
    ded0fe9  efb33b0   (tag: v6.2.0)  
    efb33b0      
    13a5b0e  45ab2ba   (tag: v6.0.1)  
    45ab2ba  2d60f30    
    2d60f30  2185112    
    2185112  872f408    
    872f408    
是否有一种方法可以将其重新链接,以便
efb33b0
具有
13a5b0e
的父级


我刚刚从本地存储库中删除了v6.0.1标记,整个第二棵树就消失了

您仍然可以在13a5b0e上创建新分支

是否有一种方法可以将其重新链接,以便efb33b0具有13a5b0e的父级

创建一个移植文件,然后过滤分支(在本例中最好是as,as)


efb33b0
872f408
是两个根提交。他们没有父母。这不是问题。为什么要“重新链接”?因为如果我尝试重新设置基址,会让事情变得混乱,例如,因为它无法进入旧的提交集。第二套已经够老了,我再也不用了。有没有办法删除最后5次提交,并让efb33b0成为真正的根目录?我刚从本地存储库中删除了v6.0.1标记,第二棵树就消失了。Nice:)从标记v6.0.1和
git cherry pick efb33b0^..master
中签出一个新分支,所有提交都将以一行合并到新分支中。您不必删除
v6.0.1
。您使用
--all
,因此列出了所有引用。将
--而不是v6.0.1
添加到
git日志中
,并且不会显示
v6.0.1
的历史记录<代码>v6.0.1似乎是一段孤立的历史。它与其他标记/分支没有关系。你可以别管它。如果你真的不再需要这个标签,可以删除它。
echo "efb33b0 13a5b0e  >> .git/info/grafts
git filter-branch 13a5b0e ..HEAD