![](/img/trans.png)
[英]Why does Git tell me “Not currently on any branch” after I run “git checkout origin/<branch>”?
[英]Git checkout tag leads to “Not currently on any branch”
我通過標簽結帳遇到了一個非常奇怪的問題。 在將最新的更改從開發合並到master之后,我從master創建了一個標記並推送到遠程。 然后生產拉動成功,但當我簽出標簽並運行git狀態我得到
目前不在任何分支機構
在我的本地計算機上,git status正確顯示頭部在特定標記處分離,例如1.0.0
git branch -v
* (no branch) ca992e2 Example commit message
develop e945a50 Example commit message
master ca992e2 Example commit message
有小費嗎?
這是一種“正常”行為。 通過簽出標記,可以將本地存儲庫的HEAD定位到標記。 你不再是一個分支。 如果您不打算進行任何更改,這無關緊要
如果您需要進行更改,我會看到兩個選項:
您希望在應用標記時繼續處理您所在的分支。 然后你應該檢查那個分支。
您需要根據您創建的標記執行修復,並且該修復不能位於您最初用於創建標記的分支上。 然后,您需要從該標記開始創建一個新分支。 該命令將是:
git checkout -b new-branch標簽
接受的答案是正確的(我已經投了贊成票)。 要詳細說明最后一點 - 一個Git,一個非常古老的1.7,只是說你有一個獨立的HEAD,但是更現代的一個,2.13,說你有一個detached at v1.0.0
的HEAD -the git status
命令多年來,這兩個版本之間的功能得到了許多非常有用和重要的推動。
目前尚不清楚“代碼分離后”代碼何時進入,因為發布說明中沒有列出,但這里是有用項目的清單:
git status
git status
可以在-s -b
輸出中包含分支名稱 git status
學習引用路徑名中不可打印的字符 git status -z
fixes(如果你在腳本中使用它很重要) git status --porcelain
和git status -z
fixes(再次,對於腳本) git status
(和git diff
本身)修復為處理名為的文件-
git status
以說明哪個分支正在被分割或重新分配 git status
以報告在git revert
中間 git status
學習配置選項status.branch
和status.short
git status
改進了幾個報告:子模塊,cherry-picks和當前分支的狀態(如果有的話)相對於它的上游 git status
learn -v -v
,其detached at
/ detached from
改進並與git branch
同步 git status
更多地講述了正在進行的交互式rebase git status
不再說HEAD detached at HEAD
上沒用的HEAD detached at HEAD
通過掃描HEAD
的reflog來計算“detached at”或“detached from”狀態,因此它不是100%可靠的,這取決於你被困在reflog中的內容。 它仍然非常有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.