您的位置:首页 > 其它

Git学习(一)

2016-07-19 23:01 253 查看
git是一个分布式版本控制系统,它的诞生起源于Linux的创建者Linus,和SVN等集中式版本控制系统不同的是,分布式版本控制系统没有中央服务器,每个人的电脑上都是一个完整的版本库,不过git最强大的是它的分支管理。

git init命令 把一个普通的目录变成git可以管理的仓库



所有的版本控制系统,都只能跟踪文本文件的改动。版本控制可以告诉你每次文件的改动的具体信息。而图片等二进制文件,虽然也可以由版本控制系统管理,但是没法跟踪文件的变化。只能把二进制文件的每次改动串联起来,比如一个图片从100K到200K。但是不知道具体改变了什么。(word也是二进制格式的。因此没法跟踪word文件的改动)。

把一个普通文件放到git仓库,有两个步骤:

①用git add命令告诉git,把一个普通文件添加到git仓库。多个文件以空格分开。

②用命令git commit告诉git,把文件提交到仓库.

提交时可以加入参数:git commit -m “info” ,info是本次提交的说明,表明修改了什么。也可以不加参数不过强烈建议加上参数。

需要两步的好处是,有时候需要添加多个文件,这样可以等都添加到仓库之后,一次性commit。

git status命令可以时刻掌握仓库当前的状态。



git status虽然可以查看文件的状态,但是只能知道文件被修改了,具体修改了什么仍然不清楚。可以使用git diff命令查看具体修改了什么内容。



如上图所示,-号的行显示该行被修改之前的内容,+号的行显示的是改行修改后的内容。

前面说过,git可以对仓库中的文件进行跟踪,也可以在需要的时候进行“还原”。如果你频繁地修改一个文件然后不断地提交到仓库中。一旦你发现把文件改乱了或者误删了文件,可以从最近的一个commit处开始恢复。可以用git log 命令查看从最近到最远的提交日志。



最上面的是最近一次的提交记录,黄色的一大串字符是每次的commit id。如果觉得日志信息太多,可以加上–pretty=oneline参数,每次提交记录只显示一行,即commit id和提交时输入的信息。



现在我们知道了每次的提交记录,假如我想会退到最初的add test的那个版本,该如何做呢?首先我们必须要知道这个文件当前的版本是哪个版本,GIT中用HEAD表示当前版本即最新提交的那个版本,我这里就是delete row的版本,上一个版本就是HEAD^ ,上上一个版本是HEAD^^。

现在我要回退到最初的add test的版本,可以使用git reset命令:git reset –hard HEAD^^



现在看到当前版本已经变成add test的版本。这时候再用 git log命令查看现在版本库的状态:



发现delete row和add some number这两个版本已经没有了。日志从你回退到的那个版本开始显示,回退版本之前的日志会继续显示,回退版本之后的日志就不再显示。

但是如果又想回到add some number的那个版本怎么办呢?只要命令行窗口没有关闭,你就可以顺着往上找,前提是你要知道那个版本的commit id,commit id没必要写全,写前几位就可以了,git会自动查找。



注意:如果关闭了命令行窗口,或者某天之后又想回退到某个版本但是不知道commit id该怎么办呢?这时候可以用git reflog查看git命令历史,



如上图所示,可以看到每次commit的commit id(最前面的字符串),这样我们就又可以回到任意版本了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git 版本控制系统