zoukankan      html  css  js  c++  java
  • git学习2:版本库

      创建版本库

    版本库,又称仓库,英文名为repository,版本库内的所有文件都可以被Git管理起来,即每个文件的修改、删除,Git都能跟踪。

    1,在目录中创建版本库

    在目录中有两种创建版本库的方法,
    一是使用Bash命令行工具,即打开Bash环境直接进入该目录中,然后使用$ git init,
    比如在目录中创建版本库,方法如下

       在git命令行中输入:

    $ cd learngit
    $ git init

    二是可以在合适的目录中使用鼠标右键的Git init here,采用鼠标右键这种方法的前提是安装过程中,勾选Simple contextmenu选项。如下图



    Git仓库建好了,同时在当前目录下多了一个.git目录,这个用来跟踪管理版本库,千万不要删除
    如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah
    命令就可以看见。
    注意:如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

    本文使用命令行模式,如图



    把文件添加到版本库:
    注意:所有的版本控制系统,都只能跟踪文本文件的改动,比如txt,网页,程序代码等,而无法跟踪图片,视频,等这些二进制文件的变化。同时微软的word格式是二进制文件,所以,最好使用纯文本方式编写文件,
    强烈建议使用标准的UTF-8编码,建议你下载Notepad++代替记事本!记得把Notepad++的默认编码设置为UTF-8 without BOM即可:

    创建RinA01.R文件,并放到MyRScripts目录下,

    1,用命令git add把文件添加到仓库,
    $ git add RinA01.R
    如果一次添加多个文件,可以使用git add .或者git
    add -A(推荐)
    git add -A:它能stages所有文件,
    git add .:只能stages新文件和被修改文件,没有被删除文件




    2,用命令git commit把文件提交到仓库
    $ git commit -m "the first chapter code of the book",如图所示,

    解释:-m参数表示后面输入本次提交的说明,最好有意义

      打开RinA01.R文件,在第四行添加以下内容:

    # time 2016/3/27
    运行git status命令,得到结果如下

    git status可以时刻掌握仓库的当前状态,表明,文件被修改过了,但是没有提交的修改

    使用git diff查看修改内容:

    git diff RinA01.R

    结果如图,

     知道了修改内容后,就可以提交到仓库了,

    git add RinA01.R

    git commit -m 'add distributed'

    git status

     如图所示:

    继续对RinA01.R做修改,比如,在第五行添加如下内容:

    # author:Nick

    然后使用git add和git commit提交到仓库。


    文件经过很多次修改,git对每次commit进行记录,当文件改乱或者文件误删,都可以从最近的一次commit恢复。
    使用命令git log可以查看文件历史修改记录。显示从最近到最远的提交日志,
    得到的日志信息中,commit后的数字是commit的版本号,如图所示:

    
    
    

    版本回退:

    Git的每次commit都相当于保存一个快照,
    一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

    Git中,用HEAD表示当前版本,其对应一个版本号,上一个版本就是HEAD^,上上个版本是HEAD^^,第20个版本是HEAD~20。
    使用命令git reset回退到上一个版本:
    git reset --hard HEAD^
    此时用git log,已经看不到add author的版本了,

    要想回到add author版本,
    1,可以使用
    git reset --hard 版本号
    版本号只需要完整版本号的前几位即可,

    此时打开RinA01.R文件,可以看到文件恢复到最初的版本了。

    如果完全忘记了版本号怎么办?
    2,可以使用
    git reflog
    记录每次命令的信息,有版本号。

    工作区Working Directory,比如MyRScripts文件夹就是一个工作区

    版本库 Repository,工作区有一个隐藏目录.git,是git的版本库,其中存了很多文件,其中最重要的是称为暂存区的stage,还有git自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

    文件的添加和提交的执行过程是:

    1,git add,实际是把文件修改添加到暂存区

    2,git commit,实际是把暂存区的所有内容提交到当前分支

    开始时,git自动创建了唯一一个分支master,所以git commit就是往master分支上提交修改。

    每次已修改只有通过git add添加到暂存区,然后经git commit才能把暂存区的所有修改提交。

    git checkout --filename

    可以丢弃工作区的修改

    1,文件修改后还没有被放到暂存区,撤销修改就回到了版本库一样的状态

    2,文件已经添加到暂存区,又做了修改,撤销修改回到添加暂存区后的状态

    总之,就是让文件回到最近一次的git add或git commit时的状态。

    如果文件修改已经添加到暂存区,可以用

    git reset HEAD filename

    把暂存区的修改全部撤销,重新回到工作区。

    删除文件:

    在Git中,删除文件也是一种修改操作,

    要删除一个文件可以用

    rm filename或者使用鼠标菜单删除

    然后提交 git commit,这样文件就从版本库中删除了。

    若是删错了,使用

    git checkout-- filename

    其实使用版本库的版本替代工作区的版本,无论工作区是修改还是删除,都可以一键还原

  • 相关阅读:
    jmeter接口测试1-参数化
    关于python线程池threadpool
    scrapy---setting的字段含义
    urlparse 用法
    scrapy(1)win安装
    sublime
    python函数可变参数*args和**kwargs区别
    webservice接口测试wsdl
    charles使用
    K:栈相关的算法
  • 原文地址:https://www.cnblogs.com/Nick-M/p/4604231.html
Copyright © 2011-2022 走看看