4

我遇到过这样一种情况,其中一个分支在之前的某个时间点被合并到主分支中,并且来自分支的更改不再在主分支中。这可能是由于对合并冲突的处理不当,但目前我还不确定。

在主分支中需要对先前合并的分支进行更改,但现在如果我尝试将分支合并到主分支,Git 会返回消息“已经是最新的”。因为该分支之前已合并。强制重新合并该分支以掌握的最佳方法是什么?

4

3 回答 3

3

我想这会做你

mkdir alreadyapplied.patches
git format-patch -o alreadyapplied.patches master..alreadyapplied

接着

git checkout -b wip master
git am alreadapplied.patches
# (do whatever's necessary to deal with conflicts here)
# (rebase wip here if the conflict resolution has taken
# long enough that the wip branch has gotten behind master)
git checkout -B master wip
git branch -d wip    
于 2013-02-06T20:05:31.477 回答
0

根据涉及的提交数量,您可以依次挑选每个提交。

于 2013-02-06T15:29:44.573 回答
0

另一种方法是在合并之前获取分支的提交 ID 并将您的 HEAD 重置为指向它,然后您可以进行所需的任何修复并将该分支重新合并到 master

IE

git reset (--hard/--soft/--mixed) _commit_ # where the _commit_ is the commit ID of the old branch
<work and make changes>
git commit -m "Made changes to commit before merging into master"
git checkout master 
git merge (--no-ff) otherBranch

重置你的 HEAD 将有效地让你回到那次提交时的情况。请注意,使用--hard选项可能很危险,因为它具有破坏性,并且会使您的索引和工作区看起来与提交阶段完全相同(您将丢失其他工作)。

于 2013-02-06T17:08:30.100 回答