初探Git
10 Jun 2013
之前也有简单的使用github,但也只是照抄一些基本的命令。这次,细读了下文档的1,2章。这里简单做个记录。
git-scm
关于Version Control
- Local Version Control System: 只能本地使用,不能与其他人合作开发。于是:
- Centralized Version Control Systems: 例如CVS,SVN。服务器-客户端模式。缺点:如果服务器出现故障或磁盘出错。所有服务不可用,甚至数据丢失。于是:
- Distributed Version Control Systems: 例如:Git.客户端拥有repository的完整镜像。如果服务器受到损坏,可以使用客户端的repository恢复。即使在没有网络,即离线状态下,仅使用客户端依然可以进行开发,并进行个branch切换,比较等。
Git的基本要素
- Snapshots, Not Differences:Git不像SVN等存储文件的变化,Git更像小型的文件系统,保存在commit那一刻的snapshot.当有一个新的snapshot,如果其中有的文件没有改变,Git并不会再一次存储它,而是link到之前存在的文件。
- Nearly Every Operation Is Local:由于客户端拥有完整的repository,显而易见的几乎所有工作都可以在本地完成。
- Git Has Integrity:Git用SHA-1 hash确保文件的完整性。
- Git Generally Only Adds Data
- The Three States(committed, modified, and staged).
- Committed是指已经存储在本地Git数据库中的数据。
- Modified是指已经更改过但是还没有提交的数据库中的文件。
- Staged是指已经标记更改并且在下一次commit的时候会提交到下一个snapshot中的文件。
- The Three sections(the Git directory, the working directory, and the staging area.)
- Git directory: Git存储元数据和项目数据的地方。
- Working directory: 项目一个版本的checkout。供手艺人修改用的。
- Staging area: 是一个保存下一次commit的信息的文件。
- The basic Git workflow:
- You modify files in your working directory.
- You stage the files, adding snapshots of them to your staging area.
- You do a commit, which takes the files as they are in the staging area and stores that snapshot permanently to your Git directory.
Git的安装与配置
一般Linux都会预装Git。如果没有,也可以通过yum或apt-get来安装。
配置Git,通常使用#git config xxxx
。如果想永久的更改配置,可以使用#git config --global xxx
。使用#git config --list
查看当前的配置。
获取帮助:#git help <verb>
comments powered by