簡體   English   中英

為什么我必須git pull origin <branch-name> 在git中?

[英]Why do I have to git pull origin <branch-name> in git?

我是使用GIT的新手,並且閱讀了文檔指南,但似乎無法將我的頭全神貫注。

假設github源包含兩個分支,即master和foobar。 現在,當我在系統上執行git branch時,它會顯示兩個分支的名稱,這意味着我在系統上同時具有兩個分支。

但是,當我執行git checkout foobar然后執行git pull ,什么也沒有發生,而是git告訴我,

`當前分支沒有跟蹤信息。 請指定您要合並的分支。 有關詳細信息,請參見git-pull(1)。

git pull <remote> <branch>

如果您希望為此分支機構設置跟蹤信息,可以使用以下方法:

git branch --set-upstream-to=origin/<branch> foobar

`

只有當我執行git pull origin foobar時,文件才會根據GitHub上的更新內容進行修改和更改。 為什么會這樣? 我在做git pull時哪里出錯了? AFAIK,我以為執行git pull會將當前分支更新為最新的代碼提交。

聽起來您已經創建了本地分支foobar並在存儲庫中分別創建了一個分支,也稱為foobar 盡管名稱相同,但這些分支尚未鏈接。

如果您沒有本地分支foobar ,則git checkout foobar變為git checkout -b foobar --track origin/foobar

第二部分( --track origin/foobar )是您要注意的部分。 這將為您的初始結帳操作設置遠程跟蹤。

要解決此問題,您可以執行被告知要運行的命令-事后將為您設置上游分支。 請注意,在大多數情況下,這是一個壞主意(因為原始checkout命令執行的操作)。 但是,在您的情況下,您似乎已經創建了兩個單獨的(但基本上是相同的)分支。

Git是一個功能強大的工具,它為用戶提供了大部分功能。 拉取=提取+合並。 git是否應該自動假設由於您在本地使用foobar (您簽出了本地分支foobar而不是remote ),並且如果有一個遠程應該從中退出呢? Git不會自動回答該問題。

根據我對git的經驗,除非您從它的GUI開始,例如sourcetree ,否則您會發現它令人沮喪。

總結一下,要從遠程拉出,您需要指定remote分支 ,而不是local,它將嘗試將其與您當前的本地工作分支合並。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM