git初始化及仓库创建和操作
步骤一: 安装
官网下载地址: http://git-scm.com/download
步骤二:1、设置用户名,全局配置:git config – global user.name ‘注册用户名’;
2、设置用户邮箱,全局配置:git config --global user.email ‘注册邮箱’;
3、查看git配置信息 ,校验是否成功 git config --list;
步骤三:初始化git仓库,创建成功后,到对应文件夹下查看即可
1、创建文件夹test:mkdir test
2、进入创建的文件夹: cd test
3、git初始化:git init
4、创建文件readme.txt : touch ‘readme.txt’
5、编辑文件:vi readme.txt
提示:编辑完后保存并退出:先按esc,再按wq
6、添加到缓存区:git add ‘readme.txt’
可:查看状态:git status
7、将文件从缓存区提交到仓库:git commit -m ‘创建readme.txt’
可:查看git状态:git status
8、修改文件内容:vi readme.txt
可:查看git状态
9、重新添加至缓存区:git add ‘readme.txt’
10、重新提交到仓库:git commit -m ‘修改readme.txt’
可:查看git状态
11、删除的话,rm -rf readme.txt
版本回退
基于^ (只能后退) 一个^代表回退一步
基于~(后面加几就回退几步)
基于索引值(推荐,可后可前)
很多次修改如何准确回退?版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:
$ git log
显示从最近到最远的提交日志。
内容太乱?可以试试加上–pretty=oneline参数:
$ git log --pretty=oneline
友情提示:你看到的一大串类似1094adb…的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。
好了,现在我们启动时光穿梭机,准备把文件回退到上一个版本,怎么做呢?
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交(注意我的提交ID和你的肯定不一样)。
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
$ git reset --hard HEAD^
看看readme.txt的内容是不是所需要的:
$ cat readme.txt
现在我们用git log再看看现在版本库的状态:
$ git log
最新的那个版本已经看不到了!好比你从21世纪坐时光穿梭机来到了19世纪,想再回去已经回不去了,肿么办?
办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个commit id,就可以指定回到未来的某个版本:
$ git reset --hard xxxx
再看看readme.txt的内容:
$ cat readme.txt
果然,我胡汉三又回来了。
了解一下:Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD的指向改了,然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。
但如果,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
Git提供了一个命令用来记录你的每一次命令:
$ git reflog
从输出可知,你又可以乘坐时光机回到未来了。