git rebase --continue 仍然看到冲突,git status 告诉我有 none
git rebase --continue still sees conflicts, git status tells me there are none
我是 运行 一个相当复杂的变基,在最近几次提交中进展顺利。我解决了一个非常小的冲突,但不知何故陷入困境 --
╰─$ git status
rebase in progress; onto 99e642b
You are currently rebasing branch 'Vince_issue_157' on '99e642b'.
(all conflicts fixed: run "git rebase --continue")
nothing to commit, working tree clean
╰─$ git rebase --continue Applying: RM debugger No changes - did you forget to use git add?
这两者不应该是矛盾的吗?我怎样才能弄清楚 git 不喜欢什么?
如果出现任何危险信号,则快速重新记录输出
dc04ac4 (HEAD) HEAD@{0}: rebase: improve warning
f97482a HEAD@{1}: rebase: incomplete test for new warning
e73be23 HEAD@{2}: rebase: warning (that needs tweak) on default lang with no translation problem
99e642b (upstream/master, master) HEAD@{3}: rebase: checkout master
5d8b393 (origin/Vince_issue_157, Vince_issue_157) HEAD@{4}: checkout: moving from master to Vince_issue_157
99e642b (upstream/master, master) HEAD@{5}: reset: moving to upstream/master
我认为问题在于没有更改 可应用于此修订版。可能你想做 git rebase --skip
快速回顾:冲突发生在 Git 试图复制主题行为:
的现有提交时
RM debugger
也就是说,在 git rebase
期间,它通过将一些提交系列复制到 new-and-improved 提交来工作,这些提交与原始提交做同样的事情,除了一些改进(例如,处于不同的开始基础提交),Git 试图复制该提交,但出现了一些合并冲突。因此变基停止,RM debugger
尚未应用。
然后您在 index-and-work-tree 中做了一些工作来解决这些冲突,包括最后的 git add
。那你运行git rebase --continue
.
这条消息:
$ git rebase --continue
Applying: RM debugger
No changes - did you forget to use git add?
并不意味着有冲突。这意味着您索引中的源代码现在可以作为 RM debugger
的 new-and-improved 副本提交,与您索引中的源代码完全相同现有提交 dc04ac4
(improve warning
),它本身是一些旧提交的副本,其主题已经是 improve warning
.
Git 不喜欢重复相同源代码的提交。 (Git 称这些 空提交 ,虽然它们根本不是空的,它们只是立即重复。)它非常不喜欢这个以至于 git rebase
拒绝默认情况下完全执行此操作,包括在您解决任何冲突之后。
这有时表明您以错误的方式解决了冲突:您不小心丢失了更改。但也许是正确的做法。
如果此时正确的做法是 完全删除 原始提交——如果现在不需要更改,因为新的和改进的提交的新基础不需要不需要任何修复——只需 运行:
git rebase --skip
告诉Git:毕竟不应该复制这个提交。
如果你真的想要空提交,你可以自己手动提交,使用git commit --allow-empty
,然后使用git rebase --continue
继续。
我是 运行 一个相当复杂的变基,在最近几次提交中进展顺利。我解决了一个非常小的冲突,但不知何故陷入困境 --
╰─$ git status
rebase in progress; onto 99e642b
You are currently rebasing branch 'Vince_issue_157' on '99e642b'.
(all conflicts fixed: run "git rebase --continue")
nothing to commit, working tree clean
╰─$ git rebase --continue Applying: RM debugger No changes - did you forget to use git add?
这两者不应该是矛盾的吗?我怎样才能弄清楚 git 不喜欢什么?
如果出现任何危险信号,则快速重新记录输出
dc04ac4 (HEAD) HEAD@{0}: rebase: improve warning
f97482a HEAD@{1}: rebase: incomplete test for new warning
e73be23 HEAD@{2}: rebase: warning (that needs tweak) on default lang with no translation problem
99e642b (upstream/master, master) HEAD@{3}: rebase: checkout master
5d8b393 (origin/Vince_issue_157, Vince_issue_157) HEAD@{4}: checkout: moving from master to Vince_issue_157
99e642b (upstream/master, master) HEAD@{5}: reset: moving to upstream/master
我认为问题在于没有更改 可应用于此修订版。可能你想做 git rebase --skip
快速回顾:冲突发生在 Git 试图复制主题行为:
的现有提交时RM debugger
也就是说,在 git rebase
期间,它通过将一些提交系列复制到 new-and-improved 提交来工作,这些提交与原始提交做同样的事情,除了一些改进(例如,处于不同的开始基础提交),Git 试图复制该提交,但出现了一些合并冲突。因此变基停止,RM debugger
尚未应用。
然后您在 index-and-work-tree 中做了一些工作来解决这些冲突,包括最后的 git add
。那你运行git rebase --continue
.
这条消息:
$ git rebase --continue Applying: RM debugger No changes - did you forget to use git add?
并不意味着有冲突。这意味着您索引中的源代码现在可以作为 RM debugger
的 new-and-improved 副本提交,与您索引中的源代码完全相同现有提交 dc04ac4
(improve warning
),它本身是一些旧提交的副本,其主题已经是 improve warning
.
Git 不喜欢重复相同源代码的提交。 (Git 称这些 空提交 ,虽然它们根本不是空的,它们只是立即重复。)它非常不喜欢这个以至于 git rebase
拒绝默认情况下完全执行此操作,包括在您解决任何冲突之后。
这有时表明您以错误的方式解决了冲突:您不小心丢失了更改。但也许是正确的做法。
如果此时正确的做法是 完全删除 原始提交——如果现在不需要更改,因为新的和改进的提交的新基础不需要不需要任何修复——只需 运行:
git rebase --skip
告诉Git:毕竟不应该复制这个提交。
如果你真的想要空提交,你可以自己手动提交,使用git commit --allow-empty
,然后使用git rebase --continue
继续。