簡體   English   中英

使用 `git branch -a` 列出所有分支不顯示最近獲取的分支?

[英]List all branches with `git branch -a` does not show recently fetched branch?

我在控制台中有這段歷史:

Resolving deltas: 100% (58156/58156), completed with 1585 local objects.
From bitbucket.org:interos/datavana
 * branch                datavana.dev.py.3.7.3 -> FETCH_HEAD

$ git checkout datavana.dev.py.3.7.3
error: pathspec 'datavana.dev.py.3.7.3' did not match any file(s) known to git

$ git branch
* alex/dockerize
  master

$ git branch -a
* alex/dockerize
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

我在嘗試運行時注意到一個問題:

git checkout datavana.dev.py.3.7.3

因為正如您所看到的那樣沒有用,而且這個分支也沒有使用git branch -a列出,有人知道為什么我不能簽出這個分支嗎?

如果您查看問題的頂部,則會看到:

* branch                datavana.dev.py.3.7.3 -> FETCH_HEAD

這意味着遠程引用datavana.dev.py.3.7.3已本地存儲在FETCH_HEAD 沒有創建具有相同名稱的本地分支。

您可以通過運行以下datavana.dev.py.3.7.3 創建一個名為datavana.dev.py.3.7.3的本地分支:

git checkout -b datavana.dev.py.3.7.3 FETCH_HEAD

您可能運行了git fetch <remote> datavana.dev.py.3.7.3 ,在這種情況下,您看到的是預期的行為。 git-fetch手冊頁:

獲取的ref的名稱以及它們指向的對象名稱將寫入.git / FETCH_HEAD。 腳本或其他git命令(例如git-pull(1))可以使用此信息。

通常,您可以使用git checkout簽出遠程分支。

為什么它會執行FETCH_HEAD操作,以前從未見過?
我剛剛運行了git fetch

然后仔細檢查您的git config remote.origin.fetch設置:
默認的 refspec應該已經在獲取時為你創建了本地分支:

+refs/heads/*:refs/remotes/origin/*

但是如果你有一個不同的 refspec,那么遠程分支被獲取,它的引用存儲在 FETCH_HEAD 中

git fetch datavana.dev.py.3.7.3:datavana.dev.py.3.7.3也會在本地創建分支。

暫無
暫無

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

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