我在清理我的吉特历史树上有问题。
基本上,包含1个分支的git存储库如下所示:
A--B--C--D--E--F--G--H--I--Z--X--Y... master
\
F--G--H--I--J--K--L... branch1提交E是一些不重要的更改,可以变得多余。这里正确的拆分点应该是I而不是D,提交E可以被移除或添加到两个分支中。
有办法做到这一点吗?
- Update
哇,非常感谢你的帮助!
我试过该说的话,效果就像一种魅力!
现在.。我还有另一个仓库要清理,但它更复杂。
看上去:
1--2--3--4--*A--5--6--7--8--*B--9--10--11--*C--*D--12--13--14 master
\
5--6--7--8--9--10--11--12--13--14 branch1note1:字母表示提交的内容
note2:*字母提交仅适用于主分支
有办法清理这样的历史树吗?
此外,对于像这样构造的项目,推荐的git方法是什么?
也就是说,在分支之后,除了某些特定于分支的提交之外,大多数提交将包含相同的更新。
发布于 2014-08-29 08:02:06
您可以在I和樱桃采摘创建一个新分支--基本上所有在branch1中所做的更改
git branch -b temp I
git cherry-pick J..branch1然后,您将在不更改temp的情况下在I处拆分一个新的分支E,并包含branch1的所有提交,从J开始,如果工作正常,可以重命名这两个分支,使temp分支成为您的新branch1。在樱桃采摘之前,如果您不想在branch1中使用它,可以恢复提交E。
发布于 2014-08-29 07:58:12
要做到这一点,一种方法是创建一个新分支作为主服务器的副本,然后执行git reset --hard I-commit,然后执行您想要的提交(希望不会太多)。
https://stackoverflow.com/questions/25563797
复制相似问题