git initgit
用」git init」初始化的版本庫(稱之爲work tree(工做目錄))將會生成「.git「版本庫目錄(記錄版本歷史),工做目錄包含有版本歷史目錄「.git」和項目源文件目錄,你能夠在工做目錄修改你的源文件並使用」git add」和」git commit」命令進行版本管理,可是別的開發者沒法push到你的倉庫.分佈式
可是你能夠修改.git/config添加以下代碼:
[receive]
denyCurrentBranch = ignore
或執行:git config receive.denyCurrentBranch ignore 別人就能夠push了,但別的用戶在將更新push上來的時候容易出現衝突.開發
例如:遠程倉庫上兩個分支master1,master2,遠程用戶正在使用master1,這時候如何其餘用戶向master1分支推送代碼git push origin master:master1
因而乎出現由於遠端倉庫的用戶正在master1的分支上操做,而你又要把更新提交到這個maste1r分支上,就出錯了。
團隊協作
git init –bareit
使用」git init –bare」方法建立一個所謂的裸倉庫,裸倉庫是由於這個倉庫只保存git歷史提交的版本信息,不會包含項目源代碼目錄,同時不容許用戶在該倉庫下進行各類git操做,若是你硬要操做的話,只會獲得下面的錯誤(」This operation must be run in a work tree」).io
bare repository主要是用做分享版本庫。開發者使用bare repository能夠向其餘人分享存儲在本地的版本庫,以便於實時分享代碼更新和團隊協做 。經過使用」git push」命令,你能夠將你的本地更新提交至「中心版本庫」。其餘開發者可使用「git pull」命令者接受你提交的版本更新。若是你正在一個多人協做的項目團隊或者同一個項目須要在不一樣電腦上面完成的時候,bare repository能夠知足你的分佈式開發需求.ast
git init倉庫適合我的開發版本管理
git init –bare適合多人協做開發方法