zoukankan      html  css  js  c++  java
  • git操作之发现push到远程仓库的代码有误

    有时候,我们可能发现把本地代码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 撤销。
  • 相关阅读:
    hadoop文件写入
    elastic(10) 基本查询
    hadoop 小知识点
    "hadoop namenode -format"命令的作用和影响的文件
    elastic(9)映射
    Linux 学习笔记之 --- epoll 事件模型详解
    Linux 学习笔记之 --- select 与 poll 事件模型详解
    Tornado 高并发源码分析之二---Tornado启动和请求处理流程
    Tornado 高并发源码分析之五--- IOLoop 对象
    Tornado 高并发源码分析之四--- HTTPServer 与 TCPServer 对象
  • 原文地址:https://www.cnblogs.com/fe-linjin/p/10861193.html
Copyright © 2011-2022 走看看