繁体   English   中英

Git用冲突的分支重新设置

[英]Git rebase with conflicting branches

我的git存储库中目前存在以下情况

A - B - C - D - E - F (master)
     \- D' - E' - G (branch)

我有时从D分支出来,但似乎有人回过头来引入了C提交,然后我完全不同步。 现在,我想将我在G(branch)更改重新设置为F(master) 也就是说,我想拥有以下内容

A - B - C - D - E - F(master)
                     \- G(branch)

换句话说,完全丢弃D'E' 这是怎么做的? 我尝试使用git rebase但遇到了许多冲突,不断要求我合并D '和E '中的更改。

要基于master ,仅进行一次提交(即G ):

git rebase --onto master HEAD~1

HEAD~1指定“上游”,覆盖使用的任何默认上游。 git rebase将仅重播不在上游的当前分支中的提交。 这样就隔离了一次提交。 --onto指定在选择提交之前硬重置到的位置。

说到摘樱桃,我们也可以手动执行等效步骤:

# drop all work, and just become equivalent to master
git reset --hard master

# pick just G out of the dropped work, bringing it into master
git cherry-pick <sha-of-G>

第三种方法是进行交互式变基:

git rebase -i

然后编辑掉不需要的提交,只保留G。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM