-
1. 開始
-
2. Git 基礎
-
3. Git 分支
-
4. 伺服器上的 Git
- 4.1 協定
- 4.2 在伺服器上取得 Git
- 4.3 產生您的 SSH 公開金鑰
- 4.4 設定伺服器
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 第三方託管選項
- 4.10 摘要
-
5. 分散式 Git
-
A1. 附錄 A:其他環境中的 Git
- A1.1 圖形介面
- A1.2 Visual Studio 中的 Git
- A1.3 Visual Studio Code 中的 Git
- A1.4 IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine 中的 Git
- A1.5 Sublime Text 中的 Git
- A1.6 Bash 中的 Git
- A1.7 Zsh 中的 Git
- A1.8 PowerShell 中的 Git
- A1.9 摘要
-
A2. 附錄 B:在您的應用程式中嵌入 Git
-
A3. 附錄 C:Git 命令
2.1 Git 基礎 - 取得 Git 儲存庫
如果您只能閱讀一章以開始使用 Git,那就是這一章。本章涵蓋您需要執行絕大多數 Git 相關工作的所有基本命令。在本章結束時,您應該能夠設定並初始化儲存庫、開始和停止追蹤檔案、以及暫存和提交變更。我們也將展示如何設定 Git 以忽略某些檔案和檔案模式、如何快速輕鬆地還原錯誤、如何瀏覽專案的歷史記錄並檢視提交之間的變更,以及如何從遠端儲存庫推送和提取。
取得 Git 儲存庫
您通常可以透過兩種方式取得 Git 儲存庫
-
您可以將目前不受版本控制的本機目錄轉換為 Git 儲存庫,或
-
您可以從其他地方複製現有的 Git 儲存庫。
在任何一種情況下,您最終都會在您的本機電腦上得到一個 Git 儲存庫,可以開始工作。
在現有目錄中初始化儲存庫
如果您有一個目前不受版本控制的專案目錄,並且想要開始使用 Git 控制它,您首先需要前往該專案的目錄。如果您從未這樣做過,它看起來會因您執行的系統而略有不同
針對 Linux
$ cd /home/user/my_project
針對 macOS
$ cd /Users/user/my_project
針對 Windows
$ cd C:/Users/user/my_project
然後輸入
$ git init
這會在當前目錄下建立一個名為 .git
的新子目錄,其中包含所有必要的儲存庫檔案,也就是 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 clone
時,預設會下載專案歷史記錄中每個檔案的每個版本。事實上,如果您的伺服器磁碟損毀,您通常可以使用任何客戶端上的幾乎所有複製版本將伺服器恢復到複製時的狀態(您可能會遺失一些伺服器端掛鉤之類的內容,但所有版本化的資料都會存在,請參閱 在伺服器上取得 Git 以取得更多詳細資訊)。
您可以使用 git clone <url>
來複製儲存庫。例如,如果您想要複製名為 libgit2
的 Git 可連結程式庫,您可以這樣做:
$ git clone https://github.com/libgit2/libgit2
這會建立一個名為 libgit2
的目錄,在其中初始化一個 .git
目錄,下載該儲存庫的所有資料,並檢出最新版本的工作副本。如果您進入剛剛建立的新的 libgit2
目錄,您將會在其中看到專案檔案,可以開始使用或開發。
如果您想將儲存庫複製到一個名稱不是 libgit2
的目錄中,您可以將新目錄名稱作為一個額外的參數指定:
$ git clone https://github.com/libgit2/libgit2 mylibgit
該命令與前一個命令執行相同的操作,但目標目錄名為 mylibgit
。
Git 有許多不同的傳輸協定可以使用。前面的範例使用了 https://
協定,但您也可能會看到 git://
或 user@server:path/to/repo.git
,這使用 SSH 傳輸協定。在伺服器上取得 Git 將介紹伺服器可以設定的所有可用選項,以存取您的 Git 儲存庫以及每個選項的優缺點。