Fen*_*Huo 11 git rebase git-merge-conflict
当我恢复基准时,然后解决了一些冲突,就会收到以下消息:
提示:更新被拒绝,因为当前分支的尖端在后面
我们有2个分支:
master 是我们的基地feature/fix-input-height (合并到母版中的新功能)我正在准备feature/fix-input-height改编师父以本地解决冲突
git checkout master
git pull origin master
git checkout feature/fix-input-height
git pull origin feature/fix-input-height
git rebase master
Run Code Online (Sandbox Code Playgroud)
git push origin feature/fix-input-height
Run Code Online (Sandbox Code Playgroud)
并再次以拒绝的错误消息结束:
提示:更新被拒绝,因为当前分支的尖端在后面
Stackoverflow上的每个人都建议:
git push origin -f feature/fix-input-height
Run Code Online (Sandbox Code Playgroud)
但是强行推动感觉不对
tor*_*rek 17
通过复制提交来使工作变基。首先,例如:
...--o--o--o <-- master
\
A--B--C <-- feature/fix-input-height (HEAD)
Run Code Online (Sandbox Code Playgroud)
并最终得到:
A'-B'-C' <-- feature/fix-input-height
/
...--o--o--o <-- master
\
A--B--C [previous feature/fix-input-height, now abandoned]
Run Code Online (Sandbox Code Playgroud)
但是另一个存储库(不是您的存储库,而是您要求Git进行存储的存储库)git push仍然具有原始提交。您不再需要那些提交。您有新的和改进的,但是他们不知道。 他们所知道的就是您要他们扔掉三个完美的提交。
所以他们说不,我不会扔掉那些。除非您使用强制命令而不是礼貌的请求,否则至少不要这样。
这就是为什么您需要--force或(尽管人们很少使用)更好的原因--force-with-lease。无论哪种方式告诉他们:是的,我的意思是您应该放弃提交。 两者之间的区别--force只是说:丢掉您的提交!改用这个! 使用--force-with-lease说:我认为你的feature/fix-input-height名字犯了C。如果是这样:丢弃那些提交!改用这个! 如果有人添加了commit D,而您没有提交,因此没有包含在您的基准库中,它将失败。