我已经设置了一个远程非裸“主”存储库并将其克隆到我的计算机上。我做了一些本地更改,更新了我的本地存储库,并将更改推送回我的远程存储库。到那时为止一切都很好。
现在,我不得不更改远程仓库中的某些内容。然后我在本地仓库中更改了一些内容。我意识到不需要对远程仓库进行更改。所以我试图git push从我的本地仓库到我的远程仓库,但我得到了一个错误,比如:
git push
为了防止您丢失历史记录,非快进更新被拒绝在再次推送之前合并远程更改。有关详细信息,请参阅“关于快进的说明”部分git push --help。
git push --help
我想这可能是一个
git push --force
将强制我的本地副本将更改推送到远程副本并使其相同。它确实强制更新,但是当我返回远程仓库并提交时,我注意到文件包含过时的更改(主远程仓库以前拥有的更改)。
一个答案的评论中提到的:
[我] 尝试强制,但是当返回主服务器以保存更改时,我得到了过时的暂存。因此,当我提交存储库时是不一样的。当我再次尝试使用 git push 时,我得到了同样的错误。
我该如何解决这个问题?
做就是了:
git push origin <your_branch_name> --force
或者如果您有特定的回购:
git push https://git.... --force
这将删除您之前的提交并推送您当前的提交。
这可能不合适,但如果有人偶然发现这个页面,认为他们可能想要一个简单的解决方案......
还要注意-f是 的缩写--force,所以
-f
--force
git push origin <your_branch_name> -f
也工作。