删除/修改冲突后,Git rebase不会继续

Clu*_*tch 52 git version-control rebase git-rebase

我正处于我的主人对舞台分支的重新考虑之中

git checkout stage
git rebase master
Run Code Online (Sandbox Code Playgroud)

有时我删除了两个文件,然后根据GIT修改了两个文件.

warning: too many files, skipping inexact rename detection
CONFLICT (delete/modify): test-recommendation-result.php deleted in HEAD and modified in [Bug] Fix test recommender. Version [Bug] Fix test recommender of test-recommendation-result.php left in tree.
CONFLICT (delete/modify): test-recommendation.php deleted in HEAD and modified in [Bug] Fix test recommender. Version [Bug] Fix test recommender of test-recommendation.php left in tree.
Failed to merge in the changes.
Patch failed at 0015.
Run Code Online (Sandbox Code Playgroud)

我想说"是的git,继续并删除那些文件"所以....

git rm test-recommendation-result.php
git rm test-recommendation.php
git rebase --continue
Run Code Online (Sandbox Code Playgroud)

Git说:

Applying [Bug] Fix test recommender
No changes - did you forget to use 'git add', Stupid?

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
Run Code Online (Sandbox Code Playgroud)

我说"不要叫我"愚蠢"而且只是做我告诉你的事情!"

我们现在处于僵局.谁是对的,我该如何解决这个问题?

Ada*_*ruk 50

git add -A后面git rebase --continue.这应该添加所有更改 - 包括删除文件,然后继续.

无法保证提交没有其他文件没有冲突并且应该合并.git rebase --skip会失去那些文件.你不希望这样.

希望这可以帮助.

  • 简短版本:当rebase中途停止时,不应该总是运行单个命令序列.你需要了解发生了什么,并采取相应的行动. (3认同)
  • 你错过了这一点.这里的第一步是"检查git status的输出".如果它没有列出冲突,并且没有任何阶段,那么跳过是正确的选择 - 并且添加/继续将不执行任何操作,如OP看到的那样.如果它只列出了上传的变化,那么首先就没有冲突,你可以继续(这个问题永远不会被问到).如果存在冲突,问题仍然永远不会被提出,你的回答是危险的 - 你需要在盲目地添加所有内容之前解决冲突. (2认同)
  • 如果您的存储库中有未跟踪的文件,请小心,因为`-A`会将它们全部添加。就我而言,冲突在子目录中,而我只是做了“ git add subdir”。 (2认同)