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

Par*_*ham 1 git branch repository git-revert

我目前的分支看起来像:

     D  
    /
H--A--B--C  
Run Code Online (Sandbox Code Playgroud)

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

     D  
    /
H--A--B--C  
    \
     C  
Run Code Online (Sandbox Code Playgroud)

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

Par*_*ham 5

好的,所以找到了这样做的方法.

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

git branch new-branch <A sha1>
Run Code Online (Sandbox Code Playgroud)

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

git checkout new-branch
git cherry-pick <C sha1>
Run Code Online (Sandbox Code Playgroud)

这使得回购与我需要的分支.