zoukankan      html  css  js  c++  java
  • Git 回到过去

    git add 命令:用于把工作文件放入暂存区

    git commit 命令:将暂存区中等待提交的文件放入git仓库

    git reset 命令:将git 仓库中的文件还原到暂存区

    git checkout 命令:将暂存区中的文件还原到工作目录

    reset 命令

    使用git log 命令查看提交记录

    将git 仓库可视化:

    现在三棵树(工作区,暂存区,git仓库)的状态:

    回滚快照

    快照是提交的版本每个版本称之为一个快照

    现在使用reset 命令进行回滚:

    执行 git reset HEAD~ 命令 #注:HEAD表示最新提交的快照(2ec01)HEAD~表示HEAD的上一个快照 HEAD~10表示最新快照的第前10个快照

    现在快照回滚到了第二颗树(暂存区)

     HEAD指向上一次快照1a86a

    此时三棵树变为:

    并且快照1a86a回滚到了暂存区

                                                              回滚前                                                                                                                        

                    回滚后

    由于现在工作目录文件要比暂存区新所以git 会提示 使用add方法将LICENSE(V2)添加到暂存区

    --soft 选项

    get retset --soft HEAD~  #只移动HEAD指向但不将快照回滚到暂存区

                                                          移动前                                                                                                              

                            移动后

    ---------------------------------------------------------------------------------------------------------

                                                        原先三棵树的状态                                                                                       

                  使用 -- soft 选项的状态

    不将快照回滚到暂存区,相当于撤销了上一次的提交,如果不小心提交了 执行get retset --soft HEAD~ 即可

    --hard 选项

    git reset --hard HEAD~ 不仅移动HEAD的指向,和将快照回滚到暂存区而且将暂存区的文件还原到工作目录

                                 之前执行完 git reset HEAD~时HEAD的指向                                                                             

                  三棵树的状态 

                                        执行git reset --hard HEAD~

            三棵树都回滚到了第一个版本(26728)

    仓库内只剩下第一个版本并且工作目录下的LICENSE文件被删除

     

    总结

     1、移动HEAD指向(--soft)

     2、将快照回滚到暂存区(默认)

    3、将暂存区还原到工作目录(--hard)

    回滚指定快照:

    git reset 00c2929

    ID输入5位即可

    回滚个别文件:

    git reset 快照 文件名/路径

    忽略HEAD 移动,直接将指定快照指定文件回滚到暂存区

    “往前滚”

    前提知道快照的ID号

    又回到了最新的版本

    git reflog 记录了每一次操作

    第一列为 HEAD指向的版本ID号

  • 相关阅读:
    c语言函数定义、函数声明、函数调用以及extern跨文件的变量引用
    c语言局部变量 静态局部变量 全局变量与静态全局变量
    Source Insight建工程之Kernel
    day49
    管道实例取出最常用的10个指令
    day52
    Linux中vi的使用
    vi高级技巧
    vim配置
    typedef
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/8463524.html
Copyright © 2011-2022 走看看