我一直在我的分支上工作。我定期进行 git add、提交和推送。在创建拉取请求之前,我通常会执行
git rebase QA
操作,以便根据 QA 分支对其进行变基。今天我遇到了一个以前从未遇到过的案例。当我这样做git rebase
时,发生了一些冲突。像往常一样,我解决冲突、分阶段并提交冲突。但是,某些文件没有显示最新的代码,而是显示了我之前提交的代码。
例如:
质量保证代码:
getLeca();
getPews();
}, []);
我的分行最新代码:
if (specialty === VETERINARY && !selectedPet) return;
if (specialty === DENTAL) {
getLeca(); // Mortality score
}
getPews(); // economic well Being
}, [selectedPet]);
我之前的提交:
if (specialty === DENTAL) {
getLeca(); // Mortality score
}
getPews(); // economic well Being
}, [selectedPet]);
我在变基过程中看到的是之前的提交。我不知道为什么会发生这种情况。 任何见解将不胜感激。谢谢你。
所以你有:
[QA Branch] A --- B --- C --- D --- E
\
[My Branch] F --- G --- H
问题出现在冲突解决过程中:
[Rebase Process] A --- B --- C --- D --- E --- F' --- G' (?) --- H' (?)
首先...备份您的分支 (
git branch backup-my-branch my-branch
)
然后执行 git log --decorate --oneline --graph --all --branches
查看您的分支和 QA 分支的历史记录。这可以帮助您了解正在引入哪些更改以及哪里可能会发生冲突。
我知道,当我解决冲突时,它并不总是在最新的代码上,因为在这个例子中,G 显示了“先前的提交”。解决冲突后,
git add
文件,然后 git rebase --continue
:变基完成后(使用 git status
检查),您应该会看到最新的更改。