我正在参与开发Python 3项目。假设我的分支名为“ my_branch”。我必须对代码进行快速而小的更改,由于懒惰,我在GitLab webui中进行了更改。然后,我在本地存储库中进行了一些更改,而没有拉我的分支。现在,我无法推送更改,因为my_branch与本地存储库不同。如何在不创建新分支的情况下还原远程分支my_branch中的更改。 我基本上只是想退后一步。
git push给出一个错误: 更新被拒绝,因为远程包含您本地没有的工作
答案 0 :(得分:1)
总结一下您的情况,您要在分支顶部删除一次提交。
有两种情况:
如果您想保留更改,但仍要删除提交并从远程获取最新信息:
git reset --soft HEAD~1
git stash
git pull
使用HEAD〜1进行的软重置将更改从您的最高提交中移出,并将这些更改移入暂存区域,并从分支中删除该提交。现在,您的更改可以在暂存区中使用。您可以轻松地隐藏它们,并且都可以从远程拉动。
从远程拉出后,您可以再次弹出存储,并且上一次提交中的更改将返回。
如果您不再关心自己的提交,那么:
git reset --hard HEAD~1
硬重置只会从分支中删除您的提交。
希望有帮助。
答案 1 :(得分:0)
如果您有...
Local: A->B->C->E
Remote: A->B->C->D
您所要做的就是强行推动。 git push -f origin my_branch
远程上的D提交应该消失。