在使用Git初始化版本庫的時候,使用”git init”命令和使用”git init –bare”命令有什么區(qū)別呢?
用”git init”初始化的版本庫(暫且稱之為working repository)將會生成2類文件:“.git“版本庫目錄(記錄版本歷史)和實際項目文件的拷貝。你可以把這類版本庫叫做“工作目錄”。工作目錄是一個包含有版本歷史目錄“.git”和源文件的目錄。你可以在工作目錄修改你的源文件并使用”git add”和”git commit”命令進行版本管理。
用“git init –bare”初始化的版本庫(暫且稱之為bare repository)僅包含”.git”目錄(記錄版本歷史),不含項目源文件拷貝。如果你進入版本目錄,你會發(fā)現(xiàn)僅有”.git”目錄,沒有其他文件。版本庫僅包含記錄著版本歷史的文件。
什么情況下使用“git init”和”git init –bare”呢?
working repository適合于實際編輯生產(chǎn)過程中,在工作目錄下,你將會進行實際的編碼、文件管理操作和保存項目在本地工作。如果你開始創(chuàng)建一個項目將包含有源代碼和和版本跟蹤記錄的時候你可以使用”git init”.或者,如果你克隆”git clone”一個已經(jīng)存在的版本庫的時候,你也可以得到一個working repository,它也將包含”.git”目錄和源文件的拷貝。
bare repository主要是用作分享版本庫。開發(fā)者使用bare repository可以向其他人分享存儲在本地的版本庫,以便于實時分享代碼更新和團隊協(xié)作 。通過使用”git push”命令,你可以將你的本地更新提交至“中心版本庫”(其他開發(fā)者可訪問的中心庫)。其他開發(fā)者可以使用“git pull”命令者接受你提交的版本更新。如果你正在一個多人協(xié)作的項目團隊或者同一個項目需要在不同電腦上面完成的時候,bare repository可以滿足你的分布式開發(fā)需求。
總結:“工作目錄”是通過使用“git init“或“git clone”創(chuàng)建的本地項目拷貝。我們可以在工作目錄下面修改和測試代碼。通過測試后我們可以使用“git add“和”git commit“命令本地提交修改,然后使用“git push”命令向遠程 bare repository庫提交更新,通常bare repository指定其他服務器,其他開發(fā)者將可以及時看到你的更新。當我們想去更新本地工作目錄的時候,我們可以使用“git pull”命令去接受其他開發(fā)者提交的更新。