如何修复Git树中的重复项

时间:2012-02-08 15:53:47

标签: git

我不知道怎么回事,我已经到了这样一棵树上了:

X1--X2--(a lot commits)--X25--X26 (master)
     \                    \
      \                    D1--D2--merge (demo)
       D1'--D2'---------------------/

其中D1 = D1'且D2 = D2'且合并为空。这棵树已被推送到服务器,但我是唯一一个正在研究它的人。

根本不是问题,但我想将这棵树简化为更合乎逻辑的树。像这样:

X1--X2--(a lot commits)--X25--X26 (master)
                          \
                           D1--D2--merge (demo)

可以从我的树中删除D1'和D2'吗?

1 个答案:

答案 0 :(得分:2)

git中的每个提交都指向其父母。由于merge指向您不想再拥有的提交,因此您需要摆脱merge,而不仅仅是D1'D2'

为此,请使用git checkout demo; git reset --hard D2。这会将您的demo指针移回D2

请注意,如果您将其推送到服务器并且任何人提交了取决于mergeD1'或{的提交,那么您将执行非常糟糕的行为 {1}}。他们的当地历史仍将有孤儿提交!