Git撤销操作

作者: cccccchenyuhao | 来源:发表于2018-10-04 01:53 被阅读48次

    参考资料:Git文档_重置揭秘

    文档看了好几遍,还是很混乱。把命令行敲一遍一下子就清晰了。写代码还真是个实践出真知的活儿

    git撤销操作

    命令 功能
    git commit --amend 将暂存区的文件提交。此次提交会代替上一次提交的结果,最终只有一个提交
    git reset --soft 移动HEAD的指向,索引不变,工作目录不变
    git reset --mixed 默认行为,索引变,工作目录不变
    git reset --hard 如果暂存未提交会丢失。索引变,工作目录变
    git reset <filename> 实质上是将文件从HEAD复制到索引中,与add相反
    git revert 将你提交的变更逆向应用到一个新的提交中
    git branch --<filename> 将文件还原成上次提交的样子

    首先,我们创建一个本地库并初始化

    创建文件v1然后add,commit

    重命名v1为v2然后add, commit

    重命名v2为v3然后add, commit

    git log有3条重命名的记录

    Screen Shot 2018-10-04 at 01.21.58.png

    执行git reset —soft HEAD~

    Screen Shot 2018-10-04 at 01.25.45.png

    可以看到文件名还是v3,索引区为v2 -> v3, git log只有2条记录

    相当于回滚了最后一次commit的提交

    工作区、索引区的数据不变

    然后add,commit 还原v3,生成一条新的v3记录

    Screen Shot 2018-10-04 at 01.30.04.png

    接下来使用git reset HEAD~

    Screen Shot 2018-10-04 at 01.36.57.png

    相当于回滚了最后一次commit, add的提交

    工作区不变,索引区回滚至v2的状态

    add, commit还原v3

    最后git reset —hard HEAD~

    Screen Shot 2018-10-04 at 01.41.46.png

    可以看到,测试文件变成v2,这说明工作区也回滚了,索引区也清理了,这种方式有销毁数据的可能,慎用。

    相关文章

      网友评论

        本文标题:Git撤销操作

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