这听起来像是一个问题,给人的印象是我太懒惰,无法进行自己的研究,但实际上我未能找到有助于我解决问题的资源。
我目前正在使用来自同一存储库的两个Git克隆,每个克隆在我的个人笔记本电脑和我在工作中使用的计算机上。有时,当我从笔记本电脑推送到存储库时,我忘了拉上工作计算机,后来当我尝试将更改从工作计算机提交到存储库时,我收到一条错误消息,告诉我首先执行git pull
。在这种情况下,有什么方法可以撤消我的笔记本电脑所做的推送更改?
谢谢。
答案 0 :(得分:2)
您没有做错任何事情。如果需要,您不必撤消提交。在协作编程中,遇到此类错误非常普遍。 Git抱怨只是因为默认情况下它不允许分支分支更新分支。假设我们有两个分支,A和B。当A对B有一个新的提交或多个提交,同时B对A有一个或多个新提交的提交时,它们是分开的。
为避免此错误,请按照日志提示运行git pull
。但对于您而言,更好的方法是使用git pull -r
,或更具体地说,使用git pull origin -r <branch>
。 git pull
等效于git fetch && git merge
,而添加-r
或--rebase
使其成为git fetch && git rebase
。使用rebase,可以避免多余的合并提交,并使分支历史记录保持整洁。
当然,使用git push --force
撤消提交也是一种解决方案。但是这样,如果您确实需要更改,则必须再次进行更改。这只会花费您更多的时间和精力。