爲什麼初始化遠程倉庫要使用git init --bare

git init   git init --bare 的區別

 "git init "初始化的版本庫用戶也可以在該目錄下執行所有git方面的操作。但別的用戶在將更新push上來的時候容易出現衝突。

比如有用戶在該目錄(就稱爲遠端倉庫)下執行git操作,且有兩個分支(master  b1),當前在master分支下。另一個用戶想把自己在本地倉庫(就稱爲本地倉庫)的master分支

的更新提交到遠端倉庫的master分支,他就想當然的敲了

git push origin master:master

於是乎出現

因爲遠端倉庫的用戶正在master的分支上操作,而你又要把更新提交到這個master分支上,當然就出錯了。

但如果是往遠端倉庫中空閒的分支上提交還是可以的,比如

git push origin master:b1   還是可以成功的

解決辦法就是使用git init --bare方法創建一個所謂的裸倉庫,之所以叫裸倉庫是因爲這個倉庫只保存git歷史提交的版本信息,而不允許用戶在上面進行各種git操作,如果你硬要操

作的話,只會得到下面的錯誤(This operation must be run in a work tree

這個就是最好把遠端倉庫初始化成bare倉庫的原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章