正常情况下,如果想要一个脱离主线的分支来开发项目,常常需要完全创建一个源代码目录的副本,对大项目来说,这样的过程会耗费很多时间,所以这是一个比较低效的做法。但是git分支则不同,你会发现使用分支和合并分支是非常方便的。
git分支简介
首先要知道git保存数据不是保存的文件的差异或变化,而是一系列不同时刻的文件快照。
在进行提交操作时,Git会保存一个提交对象,该提交对象会包含一个指向暂存内容快照的指针,还包含作者的姓名,邮箱和提交时输入的信息以及指向它父对象的指针,首次提交时提交对象没有父对象,普通提交产生的提交对象有一个父对象,而由多个分支合并产生的提交对象 会有多个父对象。
这里举一个例子,假设现在工作目录中有三个将要被暂存和提交的文件,当使用git commit
进行提交操作时,git会先计算每个子目录的校验和,然后在git仓库中为这些校验和保存为树对象,随后Git便会创建一个提交对象,它除了上面提到的那些信息外,还包含指向这个树对象的指针。现在仓库中有五个对象:三个blob对象(保存着文件快照)一个树对象(记录着目录结构和blob对象 索引)以及一个提交对象(包含着指向前述树对象的指针和所有提交信息)