zoukankan      html  css  js  c++  java
  • 管理本地版本库

      首先要明白的是Git有三个部分,本别是工作区缓存区版本库

    • 工作区:就是Git管理的目录(前面我们将它称为版本库,是不准确的)
    • 缓存区:stage,就是每次add以后【文件修改】存放的地方。
    • 版本库:隐藏目录.git,里面存放了【文件修改】的记录。

      Git管理的是【文件修改】,比如对某个文件添加了一行,这个行为就属于一个文件修改。

      在我们修改或者新建了文件之后,都要用git add命令将【文件修改】加入到stage(缓存区)中,然后再用git commit命令将stage中的【文件修改】提交到版本库。

      上图中的master是主干,可以理解为主分支(trunk)。HEAD是指向最新版本的指针。

    • git status 命令查看版本库的状态,看有没有缓存区的内容没有commit,或者有没有工作区的改变没有add到缓存区。
    • git diff HEAD -- 文件名 查看文件在工作区和当前分支中的差异。
    • git checkout -- 文件名 撤销工作区的修改,将文件的工作区恢复成与缓存区或版本库一致的内容。
    • git reset HEAD 文件名 撤销对缓存区的add

      上面都是在commit之前撤销修改。如果已经commit了,想回退,或者回退之后又想取消,则需要下面的命令:

      git log 查看提交日志。日志之中包含每次提交的版本号,作者,时间,注释。例如:

    commit cb926e7ea50ad11b8f9e909c05226233bf755030
    Author: Michael Liao <askxuefeng@gmail.com>
    Date:   Mon Aug 19 17:51:55 2013 +0800

    
        wrote a readme file

      commit之后的那一长串数字就是版本号,你想要回退到哪个版本,只需要输入命令:git reset --hard 版本号

      版本号不用包含所有,只需要开头的几位就行了,git会自动搜索,但是位数不能太少,以免和其他版本号产生混淆。

      还有一种相对当前版本回退的方法,简单来说,想回退到倒数第一次commit的版本,输入:git reset --hard HEAD^,想回退到倒数第二次commit的版本,输入:

    git reset --hard HEAD^^,想回退到倒数第n次commit的版本,输入:git reset --hart HEAD~n

      回退之后,再查看提交日志,会发现未来版本的日志已经没有了,即如果想取消回退,却无法找到未来版本的版本号了。此时需要用命令:git reflog,来查看未来版本号。再通过git reset --hard 版本号,来恢复到未来版本。

  • 相关阅读:
    linux 下安装web开发环境
    Nginx服务器之 Nginx的基本配置
    Nginx服务器之基础学习
    java反射 之 反射基础
    java IO流 之 其他流
    java IO流 之 字符流
    java IO流 之 字节流
    java 线程 Lock 锁使用Condition实现线程的等待(await)与通知(signal)
    java线程 公平锁 ReentrantLock(boolean fair)
    MarkdownPad 2破解
  • 原文地址:https://www.cnblogs.com/johnsblog/p/4228828.html
Copyright © 2011-2022 走看看