新Git分支没有先前提交的更改

时间:2012-07-02 23:08:25

标签: git repository branch git-revert

我目前的分支看起来像:

     D  
    /
H--A--B--C  

我试图找出如何生成一个新的git分支,这将使新的git repo看起来像:

     D  
    /
H--A--B--C  
    \
     C  

这可能吗?我想过使用重置,但这意味着C的变化也会丢失,所以寻找替代方案。

2 个答案:

答案 0 :(得分:5)

好的,所以找到了办法。

我在其中创建了一个带有A的新分支:

git branch new-branch <A sha1>

然后我使用cherry pick在新分支中将C与A合并:

git checkout new-branch
git cherry-pick <C sha1>

这使得回购用了我需要的分支。

答案 1 :(得分:0)

    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