创建版本库"
1. 首先找一个合适的地方,创建一个空目录:
mkdir bolg cd bolg
2.使用git init把目录变成git可以管理的仓库:
git init
此时文件夹内会多一个.git目录,该目录是git用来跟踪版本库的;
3.把文件添加到版本库:
注意:所有的版本控制软件只能跟踪文本文件的改动,像视频文件、图片文件等只能跟
踪到文件大小的改变,内容上是无法跟踪的,office文档也是不能被跟踪的;
!!!! 不要用windows的记事本去打开文件,因为记事本保存文件时,会在文件头自
动增加一个十六进制字符,这样会导致文件编译错误。
-1新建文件,并编辑两句话在里面:
touch index.md vim index.md
-2把文件交给git:
git add index.md
-3把文件放入仓库:
git commit -m "新建index文件"
-m 命令是记录本次提交的信息,后面双引号内的内容就是文件信息
如果不加-m,会直接用vim进入一个文件,该文件就是让你保存提交信息的,你填写完
提交信息:wq退出即可。
查看状态:
git status
该命令可以用于查看工作区内所有文件的状态.
1我们在工作区创建一个文件叫test.md,然后git status显示如下:
文件状态是 untracked files,不懂,有道了一下track,是“追踪”的意思,应该是test.md
文件没有被追踪的意思吧。他提示我们用git add命令。
2.于是我们用git addtest。md 然后在git status:
很神奇,提示改变了,文件名由红色变成了绿色
文件状态变为Changes to be committed: 有道一下,commit是委托的意思,应该是该文件
已经变成被委托管理的状态了吧,猜的!
他提示的命令我不是很懂,还是没有用。
3.习惯性git commit,然后git statu
提示:没有什么可以被托管的了,工作区很干净
总结:
git status可以用来查看当前工作区文件的状态,一个文件在分三种状态:
git add前 :untracked files,文件名是红色的;
git add后:changes to be committed ,文件名为绿色;
git commit后: nothing to commit ,working tree clean。
3.版本回退:
我在工作区新建了一个日记.md文件,每次修改并提交了三次,每次都增加一句话,如下图:
如果我想看看我的三次提交记录该怎么办呢?
使用git log,查看提交记录:
从上到下依次显示由新到旧的提交记录,
红框内的一长串数字英文字母是commit的ID号码;
红框内的“舍不得买”是提交信息;
ctrl + c可以退出这个历史记录区,回到命令行区
如果感觉信息太多,想看缩略版,那就加上 --pretty=oneline
看,只剩下ID号和提交信息了,简洁了很多:
我们每提交一次,git就会记录一次,这就好比我们玩游戏时的存档。下图是Git GUI 里面的的记录历史,和命令行git log的记录其实是一样的。
要开始版本退回了
现在我们所处的版本是舍不得买,也就是GUI中的黄点
现在想退回到前一个版本键盘很贵,应该怎么做呢?
在Git中,HEAD代表当前的版本的ID号,HEAD^代表当前版本的上一个版本,当前版本之前的第N个版本就是 HEAD~N。我们可以使用git reset命令回退版本。
git reset --hard HEAD^
现在当前版本号变成了键盘很贵,到底变了么?我们来验证一下,打开日记.md看看内容不就知道了么。
很神奇!!!!我们退了回去,文件内容变成了上一个版本的内容。
git log我们再看看提交日志吧。
最新的commit也变成了键盘很贵
GUI上的舍不得买也消失了,键盘很贵左边的小点变成了黄色,变成了最新的存档。
现在又有一个问题,我后悔了,我想还原舍不得买怎么办?这个也简单,只要我们没有关闭窗口,再回去找到 舍不得买的ID,再git reset就OK了,注意ID不用全部复制,前七位就行。
但是如果,我是关了电脑睡了一觉才后悔不想改了呢,要怎么找到舍不得买的ID?
当然有办法,使用git reflog
总结
1.HEAD是当前的版本ID,使用git reset --hard 版本ID就可以回到对应的版本;
2.git log可以查看提交日志;
3.git reflog可以查看已经不存在的版本ID;