Git
章節 ▾ 第二版

A3.5 附錄 C:Git 命令 - 分享與更新專案

分享與更新專案

Git 中沒有很多命令會存取網路,幾乎所有的命令都在本機資料庫上操作。當您準備好分享您的工作或從其他地方提取變更時,有一些命令會處理遠端儲存庫。

git fetch

git fetch 命令會與遠端儲存庫通訊,並提取該儲存庫中您目前儲存庫中沒有的所有資訊,並將其儲存在您的本機資料庫中。

我們在從您的遠端提取和拉取中首次查看此命令,並在遠端分支中繼續看到其使用範例。

我們也在貢獻專案中的幾個範例中使用它。

我們在提取請求參考中使用它來提取預設空間之外的單個特定參考,並且我們在捆綁中看到如何從捆綁包中提取。

我們設定高度自訂的 refspec,以便讓 git fetchRefspec中執行與預設稍有不同的操作。

git pull

git pull 命令基本上是 git fetchgit merge 命令的組合,其中 Git 將從您指定的遠端提取,然後立即嘗試將其合併到您目前所在的分支中。

我們在從您的遠端提取和拉取中快速介紹它,並展示如果您在檢查遠端中執行它,如何查看它將合併的內容。

我們還會在當您變基時變基中,了解如何使用它來協助處理變基的困難。

我們展示如何在檢出遠端分支中,以一次性方式使用 URL 來提取變更。

最後,我們很快提到您可以使用 --verify-signatures 選項來驗證您正在拉取的提交是否已在簽署提交中進行 GPG 簽署。

git push

git push 命令用於與另一個儲存庫通訊,計算您的本機資料庫中遠端資料庫沒有的內容,然後將差異推送至另一個儲存庫。它需要對另一個儲存庫的寫入權限,因此通常會以某種方式進行驗證。

我們在推送至您的遠端中首先查看 git push 命令。在這裡,我們介紹將分支推送至遠端儲存庫的基本知識。在推送中,我們會更深入探討推送特定分支,在追蹤分支中,我們了解如何設定追蹤分支以自動推送至。在刪除遠端分支中,我們使用 --delete 旗標,透過 git push 刪除伺服器上的分支。

在整個貢獻專案中,我們看到幾個使用 git push 透過多個遠端分享分支工作的範例。

我們在分享標記中看到如何使用它來分享您使用 --tags 選項建立的標記。

發佈子模組變更中,我們使用 --recurse-submodules 選項來檢查所有子模組的工作是否已發佈,然後才推送超專案,這在使用子模組時非常有用。

其他用戶端鉤子中,我們簡要地談到了 pre-push 鉤子,這是一個我們可以在推送完成前設定運行的腳本,以驗證是否允許推送。

最後,在推送 Refspecs中,我們研究了使用完整的 refspec 來進行推送,而不是通常使用的通用快捷方式。這可以幫助您非常明確地指定您希望分享的工作。

git remote

git remote 命令是用於管理遠端儲存庫記錄的管理工具。它允許您將長網址儲存為簡短的代號,例如「origin」,這樣您就不必一直輸入它們。您可以擁有多個代號,而 git remote 命令用於新增、變更和刪除它們。

使用遠端儲存庫中詳細介紹了此命令,包括列出、新增、移除和重新命名它們。

本書中幾乎每個後續章節也都有使用到,但總是使用標準的 git remote add <名稱> <網址> 格式。

git archive

git archive 命令用於建立專案特定快照的封存檔。

我們在準備發佈中使用 git archive 來建立專案的 tarball 以便分享。

git submodule

git submodule 命令用於管理一般儲存庫中的外部儲存庫。這可能適用於程式庫或其他類型的共享資源。 submodule 命令有多個子命令 (addupdatesync 等) 用於管理這些資源。

此命令僅在子模組中提及並完全涵蓋。

scroll-to-top