Git Pull



一個關鍵的遠端 Git 操作,git pull 更新所有相關的遠端跟蹤分支以及我們當前的本地工作分支。

命令 git pull 確保我們的本地副本始終與遠端進行的更改保持最新,幷包含來自遠端儲存庫的最新新增。

透過保持本地和遠端版本的一致性,我們可以避免專案版本歷史記錄中出現潛在的差異。

它做了什麼?

獲取 - 從遠端儲存庫獲取最新更改。

合併 - 將最新更改合併到當前分支。

概述

  • 透過 Git pull 命令將遠端儲存庫的更新合併到當前分支。

  • 預設情況下,如果當前分支落後於遠端分支,它會將當前分支快進以匹配遠端分支。

  • 如果當前分支和遠端分支出現分歧,則需要指定諸如 --rebase--no-rebase(或配置 pull.rebase)之類的選項進行協調。

  • 要獲取遠端更改,git pull 首先使用給定的引數執行 git fetch

  • 預設情況下,git pull 然後執行 git rebasegit merge 來解決分支之間的差異,具體取決於配置或標誌。

語法

git pull [<remote>] [<branch>]

<remote> 是遠端儲存庫的名稱。

<branch> 是本地分支的名稱。

用法

命令 git pull 可以以下列方式使用

基本拉取

可以獲取來自跟蹤的遠端分支的更改並將其合併到當前分支。

git pull

從特定遠端和分支拉取

可以獲取來自 origin 遠端的 main 分支的更改並將其合併到當前分支。

git pull origin main

衝突與快進合併

如果您的分支領先於遠端分支,則可以執行快進合併,但它可能存在需要手動解決的衝突。

變基而不是合併

您可以使用帶有變基的拉取在遠端更改之上應用您的更改。這使歷史記錄更清晰。

git pull --rebase

選項

git pull 命令具有以下選項

--ff-only

僅快進更改。如果需要合併,則會中止拉取以避免建立合併提交。

git pull --ff-only

--no-ff

即使快進是可能的,它也會強制進行合併提交。

git pull --force

--rebase

命令 git pull --rebase 將本地更改應用於獲取的更改之上。有助於以更線性且更清晰的方式維護提交歷史記錄。

git pull --rebase

--no-rebase

它確保合併,防止變基。

git pull --no-rebase

--quiet 或 -q

  • git reset 命令通常用於管理遠端跟蹤分支,該分支可以用我們當前分支的修改覆蓋。

git pull --quiet

--verbose

  • 命令 git pull --verbose 詳細列出已獲取和合並的更改資訊。

git pull --verbose

--autostash

  • 命令 git pull --autostash 在執行 git pull 之前自動暫存本地更改,並在拉取完成後應用這些更改。

git pull --autostash

--no-edit

  • 如果發生合併,則命令 git pull --no-edit 會跳過合併提交的提交訊息編輯器。

git pull --no-edit

--all

要從與我們的本地儲存庫連結的所有遠端儲存庫獲取更改,將使用命令 git pull --all

git pull -- all

要從與我們的本地儲存庫連結的所有遠端儲存庫獲取更改,將使用命令 git pull --all

  • 在管理多個遠端時這很有用,例如,在跨不同儲存庫進行協作或使用分叉的儲存庫時,這很有優勢。

  • 此命令確保所有遠端更改都反映在我們的本地儲存庫中,這有助於同步和協作。

  • 它使將來自不同來源的更新合併到我們的本地開發環境中變得更加容易。

--strategy=<strategy>

命令 git pull --strategy=<strategy> 指定可以使用哪個合併策略。一些常見的策略

  • recursive - 它是預設策略,是一個三方過程。

  • ours - 它保留您版本的內容。

  • theirs - 它使用遠端版本的內容。

git pull --strategy=recursive

多個選項的用法

命令 git pull 也可以在一個命令中使用多個選項。

git pull --rebase --autostash --verbose

上述命令將在一個命令中執行所有三個操作,即,使用變基拉取更改、暫存任何未提交的更改,並提供更改的詳細輸出。

在執行 git pull 之前,最好確保您的工作目錄是乾淨的。這可以使用 git status 命令進行驗證。

廣告