美文网首页
git reset 和git revert

git reset 和git revert

作者: innerwang | 来源:发表于2018-11-09 13:50 被阅读0次

    HEAD指向当前版本,git允许我们在版本的历史之间来回切换,

    • 切换前,可使用git log查看提交历史,以确定要回退到哪个版本;
    • 切换后,可使用git reflog查看命令历史,以确定要回到未来的哪个版本。

    $$$ git reset

    git reset 是根据设定的commit_id来回移动HEAD

    使用命令为:

    git reset --hard commit_id
    git reset --soft commit_id
    
    1. --hard 会同时删掉本地工作区的文件,且清空暂存区
    2. --soft 仅是返回到某次commit,工作区以及暂存区仍保留有内容,可后续再对暂存区的文件进行提交

    示例如下:
    首先查看提交历史,可以看到最新一次的提交的commit_id为8c2330d

    此时进行两次git reset --hard操作,可以看到HEAD节点来回移动

    由于又移动回8c2330d,此时git log 得到的commit记录与开始测试时的一致,再继续进行git reset --soft操作并使用git status查看当前目录状态,可以发现与hard操作不同的是,在暂存区存在未commit的文件

    可以git log查看到HEAD指针已经移动到所设定的commit_id对应的记录,此时对暂存区的文件进行提交操作

    可以看到由于刚刚的commit操作,新增了一条记录


    $$$ git revert

    git revert是用一次新的commit 来回滚之前的commit,会产生一次新的提交,这次提交会将需要revert的内容反向修改回去,版本会递增,但是不会影响之前提交的内容。

    git revert commit_id
    

    接续上述操作进行revert操作,git log 后可以看到新增了一次提交记录,同时本地的index.html会被删除。


    相关文章

      网友评论

          本文标题:git reset 和git revert

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