我不知道怎么回事,我已经到了这样一棵树上了:
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'吗?
答案 0 :(得分:2)
git
中的每个提交都指向其父母。由于merge
指向您不想再拥有的提交,因此您需要摆脱merge
,而不仅仅是D1'
和D2'
。
为此,请使用git checkout demo; git reset --hard D2
。这会将您的demo
指针移回D2
。
请注意,如果您将其推送到服务器并且任何人提交了取决于merge
,D1'
或{的提交,那么您将执行非常糟糕的行为 {1}}。他们的当地历史仍将有孤儿提交!