第 1 章:放置程式碼 Repository
取得一個 Git 倉儲
你有兩種主要方法來取得一個 Git 倉儲。 第一種是將現有的專案或者資料夾匯入 Git; 第二種是從其它伺服器克隆(clone)一份現有的 Git 倉儲。
在現有資料夾中初始化倉儲
若你打算使用 Git 來追蹤(track)現有的專案,只需要進入該專案的資料夾並執行:
git init
這個命令將會建立一個名為 .git
的子資料夾,其中包含 Git 所有必需的倉儲檔案,也就是 Git 倉儲的骨架。 到現在這步驟為止,倉儲預設沒有追蹤任何檔案。
如果你的專案資料夾原本已經有檔案(不是空的),那麼建議你應該馬上追蹤這些原本就有的檔案,然後 進行第一次提交。 你可以通過多次 git add
指令來追蹤完所有你想要追蹤的檔案,然後執行 git commit
提交:
git add *.c
git add LICENSE
git commit -m 'initial project version'
進行這些動作應該不會花你太多時間。 到現在這步驟為止,你已經得到了一個追蹤若干檔案及第一次提交內容的 Git 倉儲。
克隆現有的倉儲
若你想要取得現有 Git 倉儲的複本(例如:你想要開始協作的倉儲),那你需要使用的命令是 git clone
。 若你熟悉 其它像是 Subversion 的版本控制系統,你應該注意現在這個命令是克隆(clone),而非取出(checkout)。 這是 Git 和其他版本控制系統的重要差異:Git 並不僅只是取得專案最新的內容,而是把遠端倉儲內幾乎所有的資料都抓回來了。 專案歷史紀錄中,每個檔案的每個版本預設都會在你執行 git clone
時被拉取(pull)回來。 實際上,如果伺服器的硬碟損壞,你通常可以使用任何客戶端克隆的倉儲來將伺服器重建回原本克隆的狀態。(你可能遺失一些伺服器的掛勾程式 hooks
,但你所有的版本資料都還會健在,請查看 在伺服器上佈署 Git 獲得更多資訊)
克隆倉庫的命令格式是 git clone [url]
。 例如:若你想克隆名為 libgit2 的 Git linkable library,可以執行下列命令:
git clone https://github.com/libgit2/libgit2
這指令將會建立名為「libgit2」的資料夾,並在這個資料夾下初始化一個 .git
資料夾,從遠端倉儲拉取所有資料,並且取出(checkout)專案中最新的版本。 若你進入新建立的 libgit2
資料夾,你將會看到專案的檔案都在裡面了,並且準備就緒等你進行後續的開發或使用。 若你想要將倉儲克隆到「libgit2」以外名字的資料夾,只需要再多指定一個參數即可:
git clone https://github.com/libgit2/libgit2 mylibgit
這個命令做的事與上一個命令大致相同,只不過在本地創建的倉庫名字變為 mylibgit
。
Git 支援多種數據傳輸協定。 上一個範例採用 https://
協定,但你可能會看過 git://
或 user@server:path/to/repo.git
等使用 SSH 傳輸的協定。 在 在伺服器上佈署 Git 章節將會介紹這些協定在伺服器端如何配置及使用,以及各種方式的優缺點。