Git rebase with overwrite

时间:2014-06-03 19:05:23

标签: git

我正在尝试通过

将我的主变更纳入我的本地分支
git checkout MyPersonalBranch
git rebase master

然后我收到错误

 Patch failed at ..blah blah
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

当我尝试git rebase --continue时,我收到错误

xxx.client.jar: needs merge
You must edit all merge conflicts and then
mark them as resolved using git add

我希望它将xxx.jar保存在MyPersonalBranch中。我怎么告诉git不要尝试合并这个文件?

3 个答案:

答案 0 :(得分:2)

通常,您可以使用--strategy选项指定应如何处理冲突。策略theirs盲目地替换文件。

但是,在您的情况下,您只有一个文件。您真的不想对所有文件使用theirs策略。相反,在收到解决冲突的消息后,您可以从分支中检出该特定文件:

git checkout <branch> yourfile

(此时,<branch>仍然引用了在rebase开始之前的分支。)

答案 1 :(得分:0)

确保文件内容正确,然后git add并继续使用rebase。

答案 2 :(得分:0)

  • 检查git status以查看某些必须
  • 存在的冲突
  • 编辑文件以解决所述冲突
  • git add您修改的文件
  • git status不应再显示任何“修改过的”文件
  • git rebase --continue

根据您对所提到的jar进行更改的次数,您必须采取不同的操作,以便在正确的时间将其置于所需的状态。希望您的所有编辑都在一次提交中发生,在这种情况下,您只需要在重新定位时调整其内容以使其正确。您可以在冲突期间手动将正确的文件放置到适当的位置,或者在您第一次更改时使用文件和commit-id尝试签出时停止。

但是,如果你已经推动了你的分支,你真的不应该变基础。您可能应该将origin / master合并到您的分支中。