Oliwans'blog

不会写影评的摄影师不是好的FED

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 指令后,再应用此指令,简而言之就是把工作区的内容会退到最近的add或commit的版本

  $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的简单介绍。

Oliwans

个人博客技术、观点、见解分享者;我会在这里分享工作中的问题;兴趣方面的观点;生活中的感悟。

Proudly published with Hexo