git入门书籍:http://progit.org/book/

版本控制系统,以前了解过cvs、svn,最近似乎git大有取代前者之势。经过初步的了解,才知道git和以前的版本控制系统有许多本质上的差别。

版本控制系统的发展过程:单机版本控制系统(offline) ——集成式版本控制系统(online)——分布式版本控制系统(offline/online)

 

  • 集成式版本控制系统:cvs、svn都是这类。适合多人协作开发,项目仓库放在一个远端服务器上,服务器中保存所有的历史版本,每个人本地工作仓库只是远端服务器上该项目的一个版本。这也意味着,大部分操作都得在联网状态下才能进行,包括提交、更新、回滚等操作。而且在这种方式下,一旦远端服务器上的数据受到毁灭性破坏,那么这种破坏将是不可恢复的。
  • 分布式版本控制系统:git。git中也有本地仓库和远端服务器仓库的概念。但是git中的本地仓库与远端服务器上的内容没有差别,也保存所有的版本历史。这也就意味着大部分的操作都可是离线状态,而且即使远端服务器上的数据损坏了,也可以通过本地数据來恢复。
git中重要的概念:
  • 工作目录(working directory):在工作目录中修改文件,修改后的文件状态是modified,新添加的文件是untracked,通过git add命令将文件保存到staging area中;
  • staging area:保存下次即将提交到git repository中文件的snapshot。文件状态是staged,通过git commit命令提交文件到git repository中;
  • git repository:本地仓库。通过git push命令更新远端服务器仓库,通过git pull命令更新本地仓库。
开始使用git:
  1. 在本机上安装git,http://progit.org/book/
  2. 使用github充当远端服务器,托管本地代码:www.github.com
  3. 在github上注册好帐号,创建一个仓库,就可以将本地仓库托管上去了
  4. 剩下的就是从原理上学习git,熟练掌握git的常用命令,不懂的就git --help。
git常用命令:
  • git config :配置git
  • git add:更新working directory中的文件至staging area。git add .更新所有的文件
  • git commit:提交staging area中的文件至git repository中。git commit -m 'message'
  • git status:查看状态
  • git diff:查看改动情况
  • git remote:查看远端服务器别名,加上-v显示url信息
  • git remote add server_url local-alias:添加远端服务器
  • git clone project_url local_alias:拷贝项目到本机中
  • git push server_url/local-alias:更新远端服务器仓库
  • git pull server_url/local-alias:更新本地服务器仓库