<3> git的一些介绍(中2)

1 . 本地的版本控制

”本地“指的是在你计算机上的仓库,”远程“指的是除了你的计算机之外的仓库(但是我们一般指的是充当”中央服务器“的计算机)。本地的仓库和远程的仓库可能是不一样的,因为你在你的本地或许放了一些没有被”git add“(参看git的一些介绍(中1))的文件或者文件夹,或许为了达到某种测试目的新建了自己的临时分支(分支的概念是git相对比较重要的,在之后的博文里我们继续聊聊看,也算是巩固下自己的知识)。

2 . 命令操作

为我们的文件添加修改,接着上一篇博文,我们给Test.text文件随便添加一行代码,并保存。

<3> git的一些介绍(中2)

我们看见,文件夹(仓库)中的Test.text被红色感叹号所标记,意味着:这个文件被修改了(或者添加了内容,或者删除了内容,或者删除了又回撤等)。使用”git status “命令查看当前仓库的状态 :

<3> git的一些介绍(中2)

git bash提示Test.text被修改了,但是还没有commit。我们可以使用”git diff“命令查看到底修改了什么内容:

<3> git的一些介绍(中2)

看上边的提示,我们”+“了一行代码,”-“了一行空行。然后我们通过git add .和git commit -m 命令来讲本次修改添加、提交一下,然后使用命令”git log“查看我的提交日志,毫无疑问,仓库里Test.text的图标变成了绿色的对号:

<3> git的一些介绍(中2)

有时候,我们会遇到”版本回退“的可能。因为我们也许在数次提交代码完事后,发现某次提交的代码会引起严重的软件崩溃问题,需要将仓库的版本回退至之前的某一次。首先,git需要明白你的当前版本是哪一次,git中HEAD表示当前的版本,也就是最新的提交”963a7d28···“(上图中的黄字)看出来。上一个版本就是HEAD^,那么上上个版本就是”HEAD^^“,以此类推···但是这种写法比较麻烦,我们一般用HEAD~n(n的意思是哪一次的提交)。那么我们现在需要将版本回退到上一次的提交,可以使用”git reset --hard HEAD^“命令,然后使用”git log“命令查看版本号发现版本已经回退到”add Test.text“:

<3> git的一些介绍(中2)

但是的但是,我们想反悔了,回退了之后,发现并不需要回退,我们可以这么办。使用”git reflog“命令找回版本号:

<3> git的一些介绍(中2)

分析一下:上边的文件代表了你的每次操作都干了什么事情:第一行黄色代表的是操作的sha-1,第一行的第二列指的是版本指针,第一行的第三列指的是你的commit信息。那么,只要我们拿到了操作的sha-1,就可以回退到那次操作。那么,我们可以使用“git reset --hard 963a7d2”命令,就能回到回退前的状态了。

<3> git的一些介绍(中2)

未完,待续。