1.本地仓库和裸仓库
本地仓库只支持add,commit操作,不支持push操作。 裸仓库只支持push操作. 类似于git 实际上有两种仓库形式,本地仓库就是普通的本地仓库形式,它记录本地文件的详细更新信息,远程仓库只记录由本次仓库push的信息.
git init #新建本地仓库
git init --bare #新建一个裸仓库,裸仓库一般命名为.git后缀,因此我们一般看到的远程仓库都是.git后缀
2.git clone和git clone --bare
git clone 用于克隆本地仓库,git clone --bare用于克隆裸仓库
3.git clone --bare 和 git clone --mirror
git clone --bare 用于克隆一个远程的裸仓库,它克隆出来的是一个独立的仓库。假设需要一个工程A,需要拷贝它的代码,重新新建一个工程B,而这两个工程在以后是完全独立的,那么就可以利用 git clone --bare A B
git clone --mirror 是对一个仓库做一个镜像,它还是原仓库有关联的,利用git remote update 可以随时跟踪原仓库的变更,可以利用它对原仓库做备份
具体参考:https://stackoverflow.com/questions/3959924/whats-the-difference-between-git-clone-mirror-and-git-clone-bare