Git 初识

Dave Du bio photo By Dave Du

版本控制系统

首先Git是一个版本控制系统,那么什么是版本控制系统呢?个人理解在某种程序上来说版本控制系统就是文件管理系统,管理着文件的每一次变更历史;可以随时查看文件的历史版本,修改记录等。早期的版本控制系统是cvs,目前主流的版本控制系统说法是svn、git等。cvs和svn都属于集中式版本控制系统,集中式顾名思义就是所有东西都存在一个地方(也就是服务器端),用户想要什么东西都向服务器请求。而git属于分布式版本控制系统,分布式就不是所有东西都存在一个东西,可能分布在很多地方,每个人都可以有完整的版本库。

Git简介

Git是Linux操作系统之父Linus的第二个伟大作品,第一个当然是Linux了。大家都知道Linux是开源的,它的开发者也是遍布全球各地,所以如果使用集中式版本控制系统,查看日志、提交数据等操作的延迟,就足以让Linux的开发者抓狂了。 Git诞生大事记: 2005年4月3日,开始开发Git。 2005年4月6日,项目发布。 2005年4月7日,Git就可以作为自身的版本控制工具了。 2005年4月18日,发生第一个多分支合并。 2005年4月29日,Git的性能就已经达到了Linus的预期。 2005年6月16日,Linux核心2.6.12发布,那时Git已经在维护Linux核心的源代码了。

Git的优势

  1. 本地版本控制
    本地版本控制也就是离线版本控制,也可以没有网络的情况对修改的代码进行提交、管理,当有网络的时候,再和远端Git仓库进行同步即可。

  2. 提交有层次
    Git通过提交暂存区实现对提交内容的定制,非常完美地实现了对工作区的修改内容进行筛选提交:
    • 执行git add命令将修改内容加入提交暂存区。
    • 一个修改后的文件被登记到提交暂存区后,可以继续修改,继续修改的内容不会被提交,除非再对此文件再执行一次git add命令。即一个修改的文件可以拥有两个版本,在提交暂存区中有一个版本,在工作区中有另外一个版本。
    • 执行git commit命令提交,无须设定什么变更列表,直接将登记在暂存区中的内容提交。
    • Git支持对提交的撤消,而且可以撤消任意多次。
  3. 工作进度保存
    Git提供了一个可以保存和恢复工作进度的命令git stash。当你在一个分支还没有修改完代码时,有另一个Bug需要紧急修改,这时就可以执行git stash将当前修改的内容保存起来,工作区就会变得干干净净,然后就可以在当前分支或切换到其它分支修改紧急Bug了。当Bug修改完了,再切回到原来的分支,然后执行git stash pop就可以恢复之前保存的修改继续工作了。


  4. Git作为分布式版本控制系统,几乎所有的操作都在本地进行不需要联网,所以操作起来很快,而且还不是一般的快。当Git库比较大时,最开始clone还是要花费一些时间的,之后就可以畅通无阻了。

相关资料

Git权威指南