首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git分支分裂点

Git分支分裂点
EN

Stack Overflow用户
提问于 2014-08-29 07:46:11
回答 2查看 1.1K关注 0票数 4

我在清理我的吉特历史树上有问题。

基本上,包含1个分支的git存储库如下所示:

代码语言:javascript
复制
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

哇,非常感谢你的帮助!

我试过该说的话,效果就像一种魅力!

现在.。我还有另一个仓库要清理,但它更复杂。

看上去:

代码语言:javascript
复制
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                             branch1

note1:字母表示提交的内容

note2:*字母提交仅适用于主分支

有办法清理这样的历史树吗?

此外,对于像这样构造的项目,推荐的git方法是什么?

也就是说,在分支之后,除了某些特定于分支的提交之外,大多数提交将包含相同的更新。

EN

回答 2

Stack Overflow用户

发布于 2014-08-29 08:02:06

您可以在I樱桃采摘创建一个新分支--基本上所有在branch1中所做的更改

代码语言:javascript
复制
 git branch -b temp I
 git cherry-pick J..branch1

然后,您将在不更改temp的情况下在I处拆分一个新的分支E,并包含branch1的所有提交,从J开始,如果工作正常,可以重命名这两个分支,使temp分支成为您的新branch1。在樱桃采摘之前,如果您不想在branch1中使用它,可以恢复提交E。

票数 2
EN

Stack Overflow用户

发布于 2014-08-29 07:58:12

要做到这一点,一种方法是创建一个新分支作为主服务器的副本,然后执行git reset --hard I-commit,然后执行您想要的提交(希望不会太多)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25563797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档