git速成手册(一)
git入门
在现在的互联网发展过程中,版本控制工具起到非常大的作用,无论企业还是个人,将代码远程托管起来是一种便捷的操作方式,主流的免费版本控制工具无疑是git和svn两种,当然还有一些收费的版本控制工具,一般大型企业用的较多,虽然svn诞生的更早也被大多数的程序员所接受,但是世界在发展,git的诞生无疑冲击了svn的霸主地位,git以简洁的操作,分布式,以及对网络的不过分依赖等等优势被许多的优秀程序员所接受,而面试官也在逐渐要求被面试者对git有一定的了解,所以根据我自己的学习情况,整理了一份git速成及指令清单,供大家快速上手,本教程分三篇,分别从个人操作git,团队协作git,及标签、服务器搭建方面进行阐述,方便大家由浅入深的学习。OK,闲话结束,进入正题:
对git的操作首先需要大家安装最新版本的git,针对主流的操作系统,git分为Linux,Mac OS X,和windows三个不同的版本,安装方法在此不再赘述,网上google即可,如果你已安装完毕,那我们就开始吧!
- 个人操作
$mkdir <repository> //创建版本库
此指令用来创建版本库,也可以在本地手动添加
$cd <repository> //用git锁定当前库
cd指令是锁定当前库的,你要明确的要操作的库,也可以在本地选中所要选择的库,右键git bush here
$pwd //显示当前路径
可显示当前的绝对路径
$git init //将其变成git可以管理的库
git的一般操作,使用git指令控制的一般前提
$git add <file> //把文件添加到暂存库
此指令用来添加文件到暂存库
$git commit -m"something" //把暂存库文件添加到版本库
将文件添加到版本库,something里面为备注内容,方便查看作用
$git status //掌握工作区的状态
此指令可用来掌握工作区状态,即查看当前工作区内容有没有提交到暂存款进而提交到版本库
$git diff //查看文件工作区被修改的内容
diff顾名思义为different,查看工作区与之前有什么不同
$git log //查看提交版本库的历史版本号
如果想回退到上一个版本,可用git log进行commit_id的查看,查看每个版本的版本号,个人信息,发布时间等
$git log --pretty=oneline //查看提交版本库的历史版本号
属于git log的精简版,只显示commit_id在一行
$git reset --hard HEAD^ //版本回退到上一个版本
三区同步操作,HEAD表示当前版本,^可以表示上一个版本,回退到上十个版本可以用HEAD~10表示
$git reflog //查看所有操作的历史版本号
git log的强化版,可以查看包括git log回退,以及前进的操作历史版本号
$git reset --hard commit_id //通过commit_id进行版本回退和前进
三区同步操作,属于git reset —hard HEAD的强化版,可穿梭到未来版本
$git reset HEAD <file>" //把暂存库与版本库同步
此项是针对暂存库进行的操作,使其与版本库同步
$git reset commit_id <file> //把暂存库退回到对应版本
针对暂存库进行操作,可将暂存库退回到对应的commit_id版本,版本库不变
$git checkout -- <file> //把工作区回退成暂存区内容
如果修改了工作区,想撤销修改,用此指令,如果修改了工作区还add到了暂存区,则先使用reset HEAD
$git diff HEAD -- <file> //比较工作区与版本区的不同
HEAD代表当前的版本,
$git rm <file> //删除文件到暂存库
删除也是一种修改,明确这一点就很好理解了,rm同样可以commit到版本库,而恢复使用则使用checkout或先reset再checkout
git与传统的版本控制工具例svn有一个最大的区别,就是多了一个暂存区的概念,从上面的一些指令可以看出,有的指令我在加注释的时候标记了“三区”指令,那么什么是“三区”呢?在此再做个解释说明:所谓三区,指的是工作区,暂存区,和版本库,有的叫法不同,但都指的是这三种,暂存区是一个中转站,可以中转工作区和版本库之间的内容,使得三者转换更加从容,而三者转换也存在着一定的规律:
将工作区填充到暂存区使用git add <file>
,将暂存区填充到版本库使用git commit -m"something"
将版本库回退使用git reset --hard HEAD~n
或者git reset --hard commit_id
(注:此时三区同步回退)
将暂存区回退到版本库使用git reset HEAD <file>
回到其他版本库使用git reset commit_id <file>
将工作区与暂存区或版本库保持一致,即撤销工作区修改使用git checkout -- <file>
OK,以上为单人操作分布式版本控制工具的简单指令,在下一章为大家介绍多人协作时的一些分支操作git指令,以及github的简单介绍。