新的 Git 分支,没有对先前提交的更改
Posted
技术标签:
【中文标题】新的 Git 分支,没有对先前提交的更改【英文标题】:New Git branch without changes from a previous commit 【发布时间】:2012-07-03 09:07:49 【问题描述】:我当前的分支如下所示:
D
/
H--A--B--C
我试图弄清楚如何生成一个新的 git 分支,这将使新的 git repo 看起来像:
D
/
H--A--B--C
\
C
这可能吗?我考虑过使用 reset 但这意味着 C 的更改也会丢失,因此请寻找替代方案。
【问题讨论】:
【参考方案1】:好的,所以找到了一种方法。
我创建了一个带有 A 的新分支:
git branch new-branch <A sha1>
然后我使用cherry pick在新分支中将C与A合并:
git checkout new-branch
git cherry-pick <C sha1>
这使得 repo 有了我需要的分支。
【讨论】:
【参考方案2】: C A--D
/ /
A*--D H--A--B--C
/ \
H--A--B--C A--C
(1) (2)
因为(1)
等价于(2)
,所以你可以只使用git checkout <commit sha1 of A*> -b your-new-branch
【讨论】:
那行不通,它只是创建了一个新分支,其中包含 A 中的提交,即与 git branch以上是关于新的 Git 分支,没有对先前提交的更改的主要内容,如果未能解决你的问题,请参考以下文章