
- Git 入門
- Git - 首頁
- Git - 版本控制
- Git - 基本概念
- Git - 命令列
- Git - 安裝
- Git - 首次設定
- Git - 基本命令
- Git - 獲取幫助
- Git - 工具
- Git - 速查表
- Git - 術語
- Git 分支
- Git - 簡述分支
- Git - 建立新分支
- Git - 切換分支
- Git - 分支和合並
- Git - 合併衝突
- Git - 管理分支
- Git - 分支工作流程
- Git - 遠端分支
- Git - 跟蹤分支
- Git - 變基
- Git - 變基與合併
- Git - 合併提交
- Git 操作
- Git - 克隆操作
- Git - 打標籤操作
- Git - 別名操作
- Git - 提交操作
- Git - 暫存操作
- Git - 移動操作
- Git - 重新命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - Patch 操作
- Git - Diff 操作
- Git - 狀態操作
- Git - 日誌操作
- Git - HEAD 操作
- Git - origin master
- Git 撤銷
- Git - 撤銷更改
- Git - Checkout
- Git - 恢復
- Git - 重置
- Git - 恢復操作
- Git - Rm
- Git - 切換操作
- Git - Cherry-pick
- Git - 修正
- Git 在伺服器上
- Git - 本地協議
- Git - 智慧 HTTP 協議
- Git - 啞 HTTP 協議
- Git - SSH 協議
- Git - Git 協議
- Git - 在伺服器上獲取 Git
- Git - 設定伺服器
- Git - 守護程序
- Git - GitWeb
- Git - GitLab
- Git - 第三方託管選項
- 分散式 Git
- Git - 分散式工作流程
- Git - 為專案做貢獻
- Git - 維護專案
- 自定義 Git
- Git - 配置
- Git - 鉤子
- Git - 屬性
- Git - Init
- Git - Commit
Git Pull
一個關鍵的遠端 Git 操作,git pull 更新所有相關的遠端跟蹤分支以及我們當前的本地工作分支。
命令 git pull 確保我們的本地副本始終與遠端進行的更改保持最新,幷包含來自遠端儲存庫的最新新增。
透過保持本地和遠端版本的一致性,我們可以避免專案版本歷史記錄中出現潛在的差異。
它做了什麼?
獲取 - 從遠端儲存庫獲取最新更改。
合併 - 將最新更改合併到當前分支。
概述
透過 Git pull 命令將遠端儲存庫的更新合併到當前分支。
預設情況下,如果當前分支落後於遠端分支,它會將當前分支快進以匹配遠端分支。
如果當前分支和遠端分支出現分歧,則需要指定諸如 --rebase 或 --no-rebase(或配置 pull.rebase)之類的選項進行協調。
要獲取遠端更改,git pull 首先使用給定的引數執行 git fetch。
預設情況下,git pull 然後執行 git rebase 或 git 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 命令進行驗證。