建立版本库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
其实使用版本库的版本替代工做区的版本,不管工做区是修改仍是删除,均可以一键还原