为什么需要克隆?
git的版本库目录和工作区是在一起的,因此如果删除一个项目的工作区,同时也会把这个项目的版本库删除掉。这样一来,项目也就不复存在了,因此一个项目仅在一个工作区中维护太危险了,所以此时可以使用对项目创建备份库
通常情况下我们创建两个相同的项目,可以使用git pull和git push命令来实现两个项目间的同步。而git又提供了一个克隆的命令:git clone来简化项目间的同步。接下来就进入克隆的世界吧
克隆:git clone的用法
git clone命令主要有如下三种语法:
git clone [repo] [dir]:将repo指向的版本库创建一个克隆到指定目录dir中,该命令会克隆repo对应的版本库所在的工作区,工作区中所有的文件都会被检出
git clone –bare [repo] [dir.git]:与第一种语法类似,区别在于只克隆版本库,而不克隆工作区,通常称为裸版本库克隆,其中第二个参数通常为版本库目录路径,而不是普通的dir目录路径
git clone –mirror [repo] [dir.git]:与第二种方法类似,也是裸版本库的克隆,区别在于它克隆出来的裸版本库会对上游版本库进行注册,这样就可以在裸版本库中使用git fetch命令和上游版本库进行持续同步。(该用法只在1.6.0或者更新版本的git中才提供)
对等工作区
使用第一种git clone语法可以创建两个对等的工作区,首先进行如下克隆(这里gittest是创建好了的版本库,testclone是简单的空dir目录)git clone gittest testclone
,然后我们打开之前空的testclone目录可以看到里面备份了gittest的所有数据,第一步克隆成功
那么我们如何实现备份库和原始库的提交同步呢?那就需要使用git pull/push命令了。首先进行原始库测试提交git commit --allow-empty -m "aync test commit"
,然后cd进入testclone底下,直接拉取数据即可:git pull
,因为备份库的上游版本库是gittest,我们可以通过命令:git remote -v
看到