-
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 命令
A3.5 附錄 C:Git 命令 - 分享和更新專案
共享和更新專案
Git 中很少有命令會訪問網路,幾乎所有的命令都作用於本地資料庫。當你準備好分享你的工作或從其他地方拉取更改時,有幾個命令是用來處理遠端倉庫的。
git fetch
git fetch 命令會與遠端倉庫通訊,並下載你當前倉庫中沒有的該遠端倉庫中的所有資訊,並將其儲存在你的本地資料庫中。
我們首先在 從遠端倉庫獲取和拉取 中介紹這個命令,並在 遠端分支 中繼續看它的使用示例。
我們也在 貢獻專案 的幾個示例中使用它。
我們在 引用規範 中設定了高度自定義的引用規範,以便讓 git fetch 執行與預設值略有不同的操作。
git pull
git pull 命令基本上是 git fetch 和 git merge 命令的組合,Git 會從你指定的遠端倉庫獲取,然後立即嘗試將其合併到你當前的分支中。
我們在 從遠端倉庫獲取和拉取 中快速介紹它,並展示如何在 檢查遠端倉庫 中檢視它將合併的內容。
我們還將在 Rebase When You Rebase 中瞭解如何使用它來幫助解決 Rebase 的困難。
我們將在 檢出遠端分支 中展示如何使用 URL 以一次性的方式拉取更改。
最後,我們在 提交簽名 中簡要提到,你可以使用 --verify-signatures 選項來驗證你拉取的提交是否經過 GPG 簽名。
git push
git push 命令用於與另一個倉庫通訊,計算出你的本地資料庫中有而遠端倉庫中沒有的內容,然後將差異推送到另一個倉庫。它需要對另一個倉庫的寫訪問許可權,所以通常會經過某種身份驗證。
我們首先在 推送到遠端倉庫 中介紹 git push 命令。在這裡,我們涵蓋了將分支推送到遠端倉庫的基礎知識。在 推送 中,我們更深入地瞭解了推送特定分支,在 跟蹤分支 中,我們瞭解瞭如何設定跟蹤分支以自動推送。在 刪除遠端分支 中,我們使用 --delete 標誌透過 git push 在伺服器上刪除分支。
在整個 貢獻專案 中,我們看到了幾個使用 git push 透過多個遠端倉庫分享分支上工作的示例。
我們在 分享標籤 中使用 --tags 選項來分享你建立的標籤。
在 釋出子模組更改 中,我們使用 --recurse-submodules 選項來檢查我們所有的子模組工作都已釋出,然後再推送主專案,這在使用子模組時可能非常有用。
在 其他客戶端鉤子 中,我們簡要討論了 pre-push 鉤子,這是一個我們可以在推送完成之前執行的指令碼,以驗證推送是否應該被允許。
最後,在 推送引用規範 中,我們研究了使用完整的引用規範進行推送,而不是通常使用的通用快捷方式。這可以幫助你非常具體地指定你想分享的工作。
git remote
git remote 命令是用於管理遠端倉庫記錄的管理工具。它允許你將長 URL 儲存為簡短的控制代碼,例如“origin”,這樣你就不用每次都輸入它們了。你可以有幾個這樣的控制代碼,git remote 命令用於新增、更改和刪除它們。
這個命令在 使用遠端倉庫 中有詳細介紹,包括列出、新增、刪除和重新命名它們。
它在本書幾乎隨後的每個章節中都會用到,但總是以標準的 git remote add <name> <url> 格式。
git submodule
git submodule 命令用於管理普通倉庫中的外部倉庫。這可以是庫或其他型別的共享資源。submodule 命令有幾個子命令(add、update、sync 等)用於管理這些資源。
這個命令僅在 子模組 中提及並完全涵蓋。