GIT
想了很久,也不知道该如何下笔,那就从基本的概念说起吧。(下面如果没有特别说明,那么都是指在Unix下面使用GIT。)
Snapshot
GIT所设想的一个工作场景是这样的:
- 在写代码的过程中,我们会不断对我们正在做的项目进行完整的备份,这样,就算改错了什么东西,我们可以很容易的从某个备份点重新开始。
- 然后,我们还需要能比较我们当前开发的内容和备份内容的差别(diff),这样,我们就可以方便把代码差异打包(patch)发给别人进行审核(review)。
于是GIT就是这么一个工具,让这个流程自动化,并且提供了其他相关的强大功能。当然GIT实际上并不是每次对项目进行完整的备份,它有自己的另外一套更好机制来达到相同效果,而在GIT中每一次保存一个改动(commit)的时候,它的理念就是保存一个项目的当前的状态,称为快照(snapshot)。而我们可以通过任何一个snapshot很方便的取回(或部分取回,比如只是某个文件)项目当时的状态。
这是GIT的核心概念,要想运用好GIT,理解这个概念是非常重要的。
Repository
要使用GIT管理一个项目的时候,就需要一个仓库(repository)用于存放GIT对项目管理所必须要保存的各种文件,使用 git init 命令创建一个新的仓库。GIT会在当前目录下创建一个.git文件夹,用作仓库。然后,当你使用GIT记录每一次代码改动的时候,GIT就会把需要的信息都放到这个文件夹下面。
在使用GIT的时候,一般是还要配置一个用户名和邮件地址,这不是注册GIT账户,而是在你commit a change的时候,要有个作者的信息。通常来说,加一个全局的信息就可以了:
git config --global --add user.name Edward
git config --global --add user.email edward@somedomain.com
或者你可以选择直接编辑~/.gitconfig,这个文件看起来是这样的:
[user]
Commit
每当你完成一个改动(change)的时候,就可以commit一下,记录当前项目的情况(snapshot)。每一个commit包含如下信息: