编辑: 645135144 | 2012-12-12 |
40 个十六进制字符(0-9 及a-f)组成,看起来就像是: 24b9da6552252987aa493b52f8696cd6d3b00373 Git 的工作完全依赖于这类指纹字串,所以你会经常看到这样的哈希值.实际上,所有保存在 Git 数据库中的东西都是用此哈希值来作索引的,而不是靠文件名. 2.4文件的三种状态 对于任何一个文件,在Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged).已提交表示该文件已经被安全地保存在本地数据库 中了;
已修改表示修改了某个文件,但还没有提交保存;
已暂存表示把已修改的文件放在下次提交时要保存的清单中.由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库. 每个项目都有一个 Git 目录(译注:如果?git clone?出来的话,就是其中?.git?的目录;
如果git clone --bare?的话,新建的目录本身就是 Git 目录.),它是 Git 用来保存元数据和对象数据库的地方.该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据. 从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录.这些文件实际上都是从 Git 目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑. 所谓的暂存区域只不过是个简单的文件,一般都放在 Git 目录中.有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域. 基本的 Git 工作流程如下: 在工作目录中修改某些文件. 对修改后的文件进行快照,然后保存到暂存区域. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中. 使用git status命令 文件在 Changes to be committed 这行下面的,就说明是已暂存状态 文件在 Changed but not staged 这行下面的,说明文件发生了变化,还没有放到暂存区,要暂存此次更新,需要运行git add(多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等 )命令 2.5git配置 Git 提供了一个叫做 git config 的工具(译注:实际是?git-config?命令,只不过可以通过?git?加一个名字来呼叫此命令.),专门用来配置或读取相应的工作环境变量.而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为.这些变量可以存放在以下三个不同的地方: /etc/gitconfig?文件:系统中对所有用户都普遍适用的配置.若使用?git config?时用--system?选项,读写的就是这个文件. ~/.gitconfig?文件:用户目录下的配置文件只适用于该用户.若使用?git config?时用--global?选项,读写的就是这个文件. 当前项目的 git 目录中的配置文件(也就是工作目录中的?.git/config?文件):这里的配置仅仅针对当前项目有效.每一个级别的配置都会覆盖上层的相同配置,所以.git/config?里的配置会覆盖/etc/gitconfig?中的同名变量. 在Windows 系统上,Git 会找寻用户主目录下的?.gitconfig?文件.主目录即?$HOME?变量指定的目录,一般都是C:\Documents and Settings\$USER.此外,Git 还会尝试找寻/etc/gitconfig?文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位. git config --global user.name robbin git config --global user.email [email protected] git config --global color.ui true git config --global alias.co checkout git config --global alias.ci commit git config --global alias.st status git config --global alias.br bra........