我有以下几点:
A---B---C-----D-- branch dev
\--C'-E-/ branch test
Run Code Online (Sandbox Code Playgroud)
我做得很糟糕:C和C'几乎是相同的提交,如果我可以在C上进行分支测试,而不是B ,那就更有意义了.
我怎么能这样做?,我想反驳,但我不知道如何使用它,thx
编辑:我不清楚我想要什么:
A---B---C-----D-- branch dev
\-E-/ branch test
Run Code Online (Sandbox Code Playgroud)
要么
A - B - D - E - D如果不可能
Von*_*onC 10
你可以在一个临时分支(来自C)
See git rebase和Rebasing上加上它git branch.
git branch tmp C
git checkout test
# rebase the current branch (test) on top of tmp
git rebase tmp
git branch -d tmp
Run Code Online (Sandbox Code Playgroud)
那应该给你:
A---B---C-----D-- branch dev
\--C''-E'-/ branch test
Run Code Online (Sandbox Code Playgroud)
我离开C'(这里是C'')因为C' 与C不完全相同
但是作为ams评论,如果你需要C'消失,你会
git rebase -i tmp
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个交互式的 rebase,允许C'完全删除,只E在顶部重放C.
你可以将你想要的作品重新加入C:
A---B---C-----D-- branch dev
\
C'-E-- branch test
# git rebase --onto [new base] [starting after this commit] [ending at this commit]
git rebase --onto C C' E
A---B---C-----D-- branch dev
\
E-- branch test
Run Code Online (Sandbox Code Playgroud)
这与采摘樱桃的概念相同,除了test分支指针与重新提交的提交一起移动.
(请注意,在rebase之后,C'提交将无法访问,但您可以使用它返回git reflog.)
| 归档时间: |
|
| 查看次数: |
10466 次 |
| 最近记录: |