双重修改后如何继续合并?

发布于 2024-11-01 22:59:20 字数 675 浏览 4 评论 0原文

我正在使用 git rebase -i 来重写历史记录 - 在本例中,对早期提交的更改集进行小的更改。换句话说,

A---B---C master

      --->

A---B'--C master

我知道 C 也在隐式改变,但你明白了。这是我到目前为止的进展:

  1. git rebase -i HEAD~2
  2. Bkeep 更改为 edit
  3. 编辑文件。
  4. git commit -a --amend
  5. git rebase --continue
  6. “无法应用 [C]...”

我已经解决了 C< 中的冲突行/code>,但我不确定如何将其标记为已解决,以便变基可以继续。 git commit --amend 尝试修改 B,而 git rebase --continue 抱怨工作树脏了。 (果然,git status 将文件显示为“均已修改”。)

我需要做什么才能使此变基回到正轨?

I'm using git rebase -i to rewrite history — in this case, make a small alteration to an earlier commit's change set. In other words,

A---B---C master

      --->

A---B'--C master

I know C is implicitly changing, too, but you get the idea. Here's my progress so far:

  1. git rebase -i HEAD~2
  2. Change B from keep to edit.
  3. Edit the file.
  4. git commit -a --amend
  5. git rebase --continue
  6. "Could not apply [C]..."

I've resolved the conflicted lines in C, but am unsure how to mark it as resolved so that the rebase can continue. git commit --amend attempts to amend B, while git rebase --continue complains that the working tree is dirty. (And, sure enough, git status shows the file as "both modified".)

What do I need to do to get this rebase back on track?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凉薄对峙 2024-11-08 22:59:20

当您遇到冲突时,您应该看到类似这样的消息:

error: could not apply 45cb26a... <commit message subject>
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' and run 'git rebase --continue'

而这正是您需要做的:

# resolve the conflicts somehow
git add <conflicted-file>
git rebase --continue

不要尝试使用 commit --amendHEAD (当前提交)仍然引用之前的提交,因为冲突阻止了此提交,所以正如您所看到的,这只是修改了已经应用的提交。 rebase --continue 将继续进行包含已解决冲突的新提交。

When you run into the conflicts, you should see a message something like this:

error: could not apply 45cb26a... <commit message subject>
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' and run 'git rebase --continue'

And that's exactly what you need to do:

# resolve the conflicts somehow
git add <conflicted-file>
git rebase --continue

Don't try to use commit --amend. HEAD (the current commit) still refers to the one just before, since the conflicts have prevented this commit from being made, so as you saw, that just amends the already-applied commit. rebase --continue will proceed to make the new commit containing the resolved conflicts.

故事还在继续 2024-11-08 22:59:20

您是否尝试过显式执行此操作,即:git add B',然后使用--amend提交,然后执行git rebase --continue

Have you tried doing it explicitly, i.e.: git add B', then committing it with --amend, then doing git rebase --continue?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文