簡體   English   中英

Git結帳標記導致“當前不在任何分支上”

[英]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定位到標記。 你不再是一個分支。 如果您不打算進行任何更改,這無關緊要

如果您需要進行更改,我會看到兩個選項:

  1. 您希望在應用標記時繼續處理您所在的分支。 然后你應該檢查那個分支。

  2. 您需要根據您創建的標記執行修復,並且該修復不能位於您最初用於創建標記的分支上。 然后,您需要從該標記開始創建一個新分支。 該命令將是:

    git checkout -b new-branch標簽

接受的答案是正確的(我已經投了贊成票)。 要詳細說明最后一點 - 一個Git,一個非常古老的1.7,只是說你有一個獨立的HEAD,但是更現代的一個,2.13,說你有一個detached at v1.0.0的HEAD -the git status命令多年來,這兩個版本之間的功能得到了許多非常有用和重要的推動。

目前尚不清楚“代碼分離后”代碼何時進入,因為發布說明中沒有列出,但這里是有用項目的清單:

  • 1.7.1:了解了關於子模塊的git status
  • 1.7.2: git status可以在-s -b輸出中包含分支名稱
  • 1.7.3.5:git git status學習引用路徑名中不可打印的字符
  • 1.7.6: git status -z fixes(如果你在腳本中使用它很重要)
  • 1.7.10.13:更多git status --porcelaingit status -z fixes(再次,對於腳本)
  • 1.7.11.3:git git status (和git diff本身)修復為處理名為的文件-
  • 1.8.2:在這些操作期間,學習了git status以說明哪個分支正在被分割或重新分配
  • 1.8.3:學習git status以報告在git revert中間
  • 1.8.4: git status學習配置選項status.branchstatus.short
  • 1.8.5: git status改進了幾個報告:子模塊,cherry-picks和當前分支的狀態(如果有的話)相對於它的上游
  • 2.4.0: git status learn -v -v ,其detached at / detached from改進並與git branch同步
  • 2.5.0: git status更多地講述了正在進行的交互式rebase
  • 2.6.2: 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.

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