电子书地址: Pro Git
一、起步
1.git和其它版本控制系统的区别主要在于,git只关心文件数据的整体是否发生变化,而大多数其它系统只关心文件内容的具体差异。例如svn每次记录有哪些文件做了更新,以及都更新了哪些行的内容。
git并不保存这些前后变化的差异数据。git更像是把变化的文件作快照后,记录在一个微信的文件系统中。每次更新时,它会总览所有文件指纹信息并对文件作对照。然后保存一个指向这次快照的索引。若文件没有变化,git不会再次保存,而支队上次保存的快照作一个链接。
2.git的绝大多数操作都只需要访问本地文件和资源,不用连网,所以速度快。
3.文件的状态。对于任何一个文件,在git内部只有三种状态:
已提交(committed):已提交表示该文件已经被安全地保存在本地数据库中了。
已修改(modified):以修改表示修改了某个文件,但还没有提交保存。
已暂存(staged):已暂存表示把已修改的文件放在下次提交时要保存的清单中。
4.每个项目都有一个Git目录(如果git clone出来的话,就是.git目录。如果是git clone --bare,新建目录本身就是git目录),它是用来保存元数据和对象数据库的地方。
二、Git基础
1.工作目录下的所有文件不外乎两种状态,已跟踪和未跟踪。已跟踪是指本来就被纳入版本控制管理的文件,它的状态可能是未更新,已修改,或者已暂存。而其它所有文件都属于未跟踪文件。
初次克隆某个仓库时,状态为未修改。
2.默认分支是master
3.查看提交历史 git log。查看具体的内容差异git log -p -2。其中-2仅显示最近的两次更新,可以不加。
4.远程仓库有些只能读,有些可以写。管理远程仓库包含:添加远程仓库,移除废弃的远程仓库,管理各式远程分支,定义是否跟踪这些分支。