git init使用于本地进行项目部署和搭建
git init --bare使用于服务器上,多版本协同管理
安装完git之后,要创建版本库
比如:在某文件夹下新建了一个文件夹名为repository.git(服务器上的Git仓库通常都以.git结尾)
将repository.git初始化为git仓库(git init)
如果初始化远程仓库的话,要使用这个命令:git init --bare repository.git
通常,我们初始化远程服务器仓库时,使用git init --bare < repo >:建立一个“裸”的git仓库
但别的用户在将更新push上来的时候容易出现冲突
解决办法就是使用”git init --bare”方法创建一个所谓的裸仓库
之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息
而不允许用户在上面进行各种git操作(如:push、commit操作)
如果你硬要操作的话,只会得到错误(”This operation must be run in a work tree”)
但是,你依旧可以使用git show命令查看提交内容
这个就是最好把远端仓库初始化成bare仓库的原因
说白了,就是会创建一个裸仓库,裸仓库没有工作区
服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区
裸仓库适用于远程仓库,裸仓库可以直接作为服务器仓库供各开发者push、pull数据,实现数据共享与同步,不保存文件,只保存历史提交的版本信息
注意:
不保存文件,只保存历史提交的版本信息,克隆时依旧会拿到完整的代码库
因为在初始化第一次push时,就已经产生了add记录