git学习2:版本库

  建立版本库nginx

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

1,在目录中建立版本库工具

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

   在git命令行中输入:编码

$ cd learngit
$ git init

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

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



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

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



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

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

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




2,用命令git commit把文件提交到仓库

解释:-m参数表示后面输入本次提交的说明,最好有意义$ git commit -m "the first chapter code of the book",如图所示,

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

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

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

使用git diff查看修改内容:命令行

git diff RinA01.R3d

结果如图,版本控制

 知道了修改内容后,就能够提交到仓库了,指针

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都至关于保存一个快照,
一旦你把文件改乱了,或者误删了文件,还能够从最近的一个恢复,而后继续工做,而不是把几个月的工做成果所有丢失。

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

要想回到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

其实使用版本库的版本替代工做区的版本,不管工做区是修改仍是删除,均可以一键还原

相关文章
相关标签/搜索