美文网首页
git撤销push

git撤销push

作者: overflow_hidden | 来源:发表于2017-02-15 14:33 被阅读412次

git reset revert 回退回滚取消提交返回上一版本

有时候,git的取消提交,回退甚至返回上一版本都是特别重要的.

大致分为下面2种情况:

1.没有push

这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题,准备取消提交,用到下面命令

reset

git reset [--soft | --mixed | --hard

上面常见三种类型:

① --mixed : git reset --mixed

会保留源码,只是将git commit和index信息回退到了某个版本.

git reset 默认是 --mixed 模式

git reset --mixed  等价于  git reset

②--soft : git reset --soft

保留源码,只回退到commit 信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.

③--hard :git reset --hash

源码也会回退到某个版本,commit和index 都回回退到某个版本.(注意,这种方式是改变本地代码仓库源码)

当然有人在push代码以后,也使用 reset --hard 回退代码到某个版本之前,但是这样会有一个问题,你线上的代码没有变,线上commit,index都没有变,当你把本地代码修改完提交的时候你会发现权是冲突.....

所以,这种情况你要使用下面的方式

2.已经push

对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用到下面的命令

revert

git revert用于反转提交,执行evert命令时要求工作树必须是干净的.

git revert用一个新提交来消除一个历史提交所做的任何修改.

revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新.(这里不会像reset造成冲突的问题)

revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.

git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61

通常,前几位即可

git revert c011eb3

git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit

看似达到的效果是一样的,其实完全不同.

第一:

上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.

第二:

如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.

第三:

reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.

相关文章

  • git 撤销 与 push 单个文件 与 push文件夹

    git 撤销 与 push 单个文件 撤销: git reset --soft HEAD^ 这样就成功的撤销了你的...

  • Git 撤销commit文件 和 回退push的文件

    1、撤销 commit 的文件2、撤销 push 的文件1、git reset2、视图操作 reset3、git ...

  • git 撤销 push

    在git push的时候,有时候我们会想办法撤销git commit的内容1、找到之前提交的git commit的...

  • git撤销push

    git reset revert 回退回滚取消提交返回上一版本 有时候,git的取消提交,回退甚至返回上一版本都是...

  • git push 撤销

    如果我们 push 了代码之后,发现了不应该进行 push,此时有两种方法来撤销: 将本地代码修改回上次代码的内容...

  • 2018-08-21

    git push失败时: git要压缩历史 撤销工作区某个文件的改动 撤销工作区所有文件的改动

  • git撤销与回滚

    git撤销已经push的提交 git log 查看提交记录 git reset --soft commit_id ...

  • git

    配置 git stash 分支 git log查看日志 git reflog查看commits push后撤销pu...

  • git 随笔(1)

    git 本地创建的分支推到远端 git push -u origin 撤销添加 git reset HEAD

  • Git 操作

    远程提交 操作撤销 git reset --hard <版本号>git push origin dev_amort...

网友评论

      本文标题:git撤销push

      本文链接:https://www.haomeiwen.com/subject/ltoluttx.html