Home >> Blog >> Git Pull 使用詳細範例

Git Pull 使用詳細範例

如果你一個人在一個SEO搜尋引擎優化項目上工作,你可以在本地local使用 Git。然而,大多數時候,您是必須與其他人合作。要與遠端資料庫同步,您需要掌握 Git 網絡操作,包括git pull。

這篇文章將詳細解釋git pull。除了學習有關 Git 中網絡操作的有用基礎知識之外,您還將了解此命令的作用以及如何使用它。與這些教學的慣例一樣,我們假設您已經安裝了 Git,並且至少熟悉使用命令行。

Git Pull 101:理解 Git 網絡

什麼是git pull?簡而言之, 它是您用來使用新更改更新資料庫的命令

為了更好地理解git pull,您需要了解網絡操作在 Git 中是如何工作的。

Git 提交的簡要概述

與其他 VCS 不同,Git 中的提交不是增量。他們不存儲修補程式(即引入的實際更改),而是存儲項目在特定時刻的整個快照。

Git 提交由唯一的標識符標識,該標識符是根據其數據計算的,包括作者的姓名和電子郵件、時間戳、提交消息和提交的父級。

Git 是去中心化的

Git 是一個去中心化的 VCS,這意味著沒有中央伺服器。相反,在 Git 中,您可以擁有任意數量的遠端資料庫,或者只是遠端。

你在 Git 中通過向遙控器發送和從遙控器進行協作

您通過與您的遙控器交換資訊在 Git 中進行協作。正如我們所提到的,您可以擁有任意數量的遙控器。而且,儘管項目通常有一個主遙控器扮演“中央伺服器”的角色,但您也可以配置其他遙控器。

例如,您可以將同事的資料庫添加為遠端,以便你們雙方都可以協作。一旦你配置好你的遙控器,你就可以從你的遙控器中的分支發送和獲取提交。

這在實踐中如何運作?首先,您可以在當地的分支機構中開展工作。您的遠端資料庫也有它們的分支,它們被恰當地稱為“遠端分支”。這個三腳架的最後一部分使整個事情成為可能:遠端跟踪分支。

遠端跟踪分支是存在於本地資料庫中的引用。您可以將遠端跟踪分支視為反映實際遠端分支狀態的“只讀”分支。

Git Pull:更深入

是時候更深入地了解git pull了。

什麼是 Git Pull,真的嗎?它是如何工作的?

簡而言之, Git pull是一個由兩部分組成的過程。首先,您的遠端跟踪分支與遠端資料庫中的“真實”分支同步。

然後,將您的本地分支與遠端跟踪分支進行比較並接收新的提交,以便它可以趕上遠端分支的當前狀態。

Git中的拉取和獲取有什麼區別?

初學者經常混淆git pull和git fetch。儘管是相關的,但它們是兩種不同的操作。讓我們看看它們是如何相似的,以及它們是如何不同的

git fetch,簡單來說就是更新遠端跟踪分支的過程。當你運行這個命令時,Git 會從遠端獲取新的提交。獲取後,您可以使用git merge將收到的提交合併到本地分支中。

那麼git pull呢?您可以將此命令視為一種快捷方式:它只需一步即可完成上述所有操作。換句話說:git pull = git fetch + git merge。

Git 拉取與 Git 推送:有什麼區別?

初學者在談到git pull時遇到的另一個常見問題是它與git push的比較。

嗯,它們的相似之處在於它們都是 Git 中非常常見的命令,並且都與網絡操作有關。然而,當談到結果時,它們就大不相同了——它們是相反的操作。

拉取意味著從遠端獲取提交。推送意味著將東西發送到遙控器。

Git Pull:如何使用詳細示例

Git 拉取實用指南

最後,是時候捲起袖子開始做一些工作了,這樣您就可以學習如何在實踐 中使用git pull 。

創建本地資料庫

讓我們首先創建一個本地資料庫並添加一些提交:

mkdir demo
cd demo
git init
echo hi > file && git add . && git commit -m "Add first file"
echo hi > file2 && git add . && git commit -m "Add second file"
echo hi > file3 && git add . && git commit -m "Add third file"

您現在有一個包含三個文件和三個提交的資料庫。好的。

在 GitHub 上創建資料庫

對於下一步,您需要一個 GitHub 帳戶。所以,如果你還沒有,現在是創建它的時候了。然後,登錄 GitHub 並轉到新的資料庫頁面。創建一個新的資料庫,選擇您喜歡的任何名稱。

git remote add origin
git branch -M main
git push -u origin main

當然,請確保將 repo 的 URL 替換為您的資料庫的正確 URL。運行上述命令後,您可以返回瀏覽器,轉到 repo 的首頁,您應該會看到您的三個提交:

Git Pull:如何使用詳細示例

現在讓我們模擬另一個用戶與同一個遙控器協作。使用命令行,轉到另一個文件夾並使用 GitHub URL clone資料庫:

git clone

回到原來的文件夾,添加一些新的提交,然後推送它們:

echo hi > file4 && git add . && git commit -m "Add fourth file"
echo hi > file5 && git add . && git commit -m "Add fifth file"
git push

使用git 拉

現在你終於可以使用 git pull 了!轉到克隆資料庫的文件夾。首先,運行以下命令:

git fetch origin main

使用上面的命令,您可以從名為 origin 的遠端分支中獲取更改。好的。但是如果你運行 git log,你會看到你的本地分支 main 仍然有和以前一樣的三個提交。發生了什麼?

好吧,正如解釋的那樣, git fetch 會更新您的遠端跟踪分支,但不會更新您的本地分支。運行 git status ,你會看到一條消息說你的本地分支是遠端分支後面的兩個提交:

Git Pull:如何使用詳細示例

Git 告訴我們使用git pull來更新本地分支。但是,我們現在不要這樣做。相反,您可以簡單地將遠端跟踪分支合併到本地分支中:

git merge origin/main

恭喜!您剛剛從遠端資料庫中提取了更改,即使沒有使用 git pull 命令本身。但別擔心:下一步實際上是使用命令。

現在,您將做與以前相反的事情。在克隆的資料庫中,添加一個或多個提交(如果您願意的話)並將其推送到遠端:

echo more lines >> file && git add . && git commit -m "Change first file"
git push

現在回到原始文件夾並按照說明進行操作:

  • 首先,運行git status。Git 會告訴您資料庫是乾淨的,無需擔心。
  • 然後運行git fetch。
  • 接下來,再次運行git status。Git 會說你的分支落後了一個提交。
  • 最後,運行git pull來更新你的本地分支。

Git 拉取與拉取請求:有什麼關係?

在結束之前,讓我們回答另一個常見的問題:Git 中的拉取操作與拉取請求的概念有什麼關係?

好吧,git pull 是來自 Git 的本機命令。另一方面,拉取請求是 GitHub 的一項功能。拉取請求是 GitHub 中的事件,其中項目的貢獻者發送潛在貢獻,要求將其合併到項目的代碼中。

那麼,為什麼它被稱為拉取請求而不是合併請求呢?

說句公道話,這個操作的名字確實有點讓人摸不著頭腦。不過,解釋很簡單:當您發送拉取請求時,您是在要求項目的維護者從您的分支中拉取提交並將它們合併到他們的資料庫中。

結論

Git 可以 100% 離線使用。但是,如果您想與其他人協作,則需要了解該工具的網絡方面。因此,如果您想在使用 Git 時進行協作,掌握 git pull 和 git push 等命令至關重要。

不過,它並不止於此。您還應該了解更多關於一般分支的資訊——例如,如何創建它們、如何從一個分支切換到另一個分支、如何簽出遠端分支等等。

您可能還想了解 Git 中的引用及其工作原理,包括了解 HEAD 並了解分離的 HEAD是什麼以及如何修復它。