今天在做git push -u origin master
时出现了如下错误:
1 | ! [rejected] master -> master (fetch first) |
分析原因,基本上可以确定是因为github上的远程库与本地库版本不一致(我对github上的文件做了编辑操作,且未更新到本地,当然也可能还有其他原因…),通过一番研究,找到了两种解决方案:
通过git pull
先将本地库更新到与远程库一致的版本,但要注意本地库后来做的修改可能被覆盖,最好使用git fetch
(不会自动合并),查看更新情况再有选择合并,或者先将本地库修改过的文件备份,git pull
后再重新修改;
再运行git push
即可成功。
git提供了一种强制上传的方式:git push -f
,它会忽略版本不一致等问题,强制将本地库上传的远程库,但是一定要谨慎使用,因为-f会用本地库覆盖掉远程库,如果远程库上有重要更新,或者有其他同伴做的修改,也都会被覆盖,所以一定要在确定无严重后果的前提下使用此操作。