-
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 等其他 VCS,您會注意到該命令是“克隆”而不是“檢出”。這是一個重要的區別——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 倉庫,以及每種選項的優缺點。