首页 > 其他 > 详细

git操作之发现push到远程仓库的代码有误

时间:2019-05-14 12:11:10      阅读:114      评论:0      收藏:0      [点我收藏+]

有时候,我们可能发现把本地代码push到中央仓库的某一个commit不对,处理方法具体分以下两个部分进行讨论

1. 出错的代码,只在远程仓库你自己的branch上面,没有合并到mater情况

如果只是出错在你的branch上面,那么只需要在本地把自己写错的commit修改或者删除,然后在push到你的远程分支就可以,但是这样会导致的一个问题是:
技术分享图片
由于你在本地对已经存在的commit进行了修改,就会导致,远程仓库的仓库,包含了本地没有的commit,会push失败。但是这个分支又是你自己的代码,没有你同事的代码,那么你就不用pull一下远程的分支了,而是选择强制push:

git push origin master -f

-f 是 -force缩写,
技术分享图片

这样就把本地修改了远程分支的代码。

2. 出错的代码已经合并到了master上

如果是这种情况,上述方法就不能实施了,因为你不知道你的同事是否已经往master里面提交了新的代码,上述操作就会覆盖掉同事的push。在这种情况下:
我们只能退一步,增加一个新的提交,把之前提交出错的代码进行修改。然后在提交到远程仓库。

额外拓展知识git revert 操作:如果你上一次的commit只是把原有的代码给删除了,你这一次希望保留原有的代码,在原有的代码基础上进行修改。那么首先可以使用git revert HEAD^ 撤销上一次的commit,

现在是这样的,我们新增了一行代码,然后提交,
技术分享图片
然后又把那一行代码删了,
技术分享图片
然后继续提交,查看下log
技术分享图片

现在我们需要恢复到删除前的代码上做修改
技术分享图片

运行结果显示:上面这一行命令新增了一次commit,它的内容和上一次commit的内容是相反的,这样从而达到撤销的效果。
打开test.js看下内容
技术分享图片

小结

  1. 如果出错的内容是提交在远程自己的 branch:只需要在本地把内容修正后,强制 push (push -f)一次就可以解决;
  2. 如果出错内容已经合并到master上:不要强制 push,而要用 revert 把写错的 commit 撤销。

git操作之发现push到远程仓库的代码有误

原文:https://www.cnblogs.com/fe-linjin/p/10861193.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!