zoukankan      html  css  js  c++  java
  • git 仓库 回退功能 git checkout

    类似于虚拟机快照功能,点击快照,回退倒快照前的状态

    回退到正确的commit,回退到那一次commit,只让他跳转到某一次commit

    第一种情况 改变工作区

    查看文件a内容

    [root@ci-node1 git_test]# cat a
    test
    bbb

    现在改变本地工作目录 对文件a 追加ccc内容

    [root@ci-node1 git_test]# echo "ccc" >> a
    [root@ci-node1 git_test]# cat a
    test
    bbb
    ccc

    现在改变了本地工作目录 ,暂存区和本地仓库是没有改变的

    // 对比暂存区和本地仓库 没有变化
    [root@ci-node1 git_test]# git diff --cached a
    [root@ci-node1 git_test]# 

    本地工种目录改变了,加了ccc

    [root@ci-node1 git_test]# git diff a
    diff --git a/a b/a
    index 126f52b..26a3227 100644
    --- a/a
    +++ b/a
    @@ -1,2 +1,3 @@
     test
     bbb
    +ccc

    如果是一个文件改回来就行,如果是多个文件,这时候可以用暂存区覆盖本地工种目录

    签出 git checkout

    如果仓库中已经存在文件 a.txt,在工作区中对 a.txt 修改了,如果想撤销可以使用
    checkout,签出覆盖。检出命令 git checkout 是 git 常用的命令之一,同时也是一个很
    危险的命令,因为这条命令会重写工作区

    git checkout -- filename

    //用暂存区中filename文件来覆盖工作区中的filename 文件。

    相当于取消自上次执行git add filename 以来(如果执行过)的本地修改。 

    [root@ci-node1 git_test]# cat a
    test
    bbb
    [root@ci-node1 git_test]# echo "ccc" >> a
    [root@ci-node1 git_test]# cat a
    test
    bbb
    ccc
    [root@ci-node1 git_test]# git checkout -- a
    [root@ci-node1 git_test]# git status
    On branch master
    nothing to commit, working tree clean
    [root@ci-node1 git_test]# cat a
    test
    bbb

     这种情况是只改变本地工作目录

    ***注意:git checkout . 这条命令危险,相当于用暂存区的所有文件直接覆盖本地
    文件,不给用户任何确认的机会!

    第二种情况看这个链接  

    改变工作目录 ,又改变暂存区

     

    git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog 

     

  • 相关阅读:
    PHP 消息队列
    Nginx 设置负载均衡
    Nginx 服务器搭建
    PHP 获取文件扩展名的五种方式
    高并发和大流量解决方案
    <面试> PHP 常见算法
    Mysql 预查询处理 事务机制
    Linux定时任务 结合PHP实现实时监控
    Swoole 结合TP5搭建文字直播平台
    <记录> PHP Redis操作类
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/11968084.html
Copyright © 2011-2022 走看看