簡體   English   中英

是否有可能以 git 分離頭從 pull、push、fetch 或 rebase 中結束?

[英]Is it possible to end in git detached head from pull, push, fetch or rebase?

我有一個處理 git 存儲庫的 python 服務器應用程序。 它創建提交和切換分支以在本地應用更改,然后將它們推送到遠程存儲庫。

出於某種原因,在 Mac 上運行服務器的用戶會看到他們的存儲庫最終處於detached HEAD狀態。 對於在 Windows 機器上運行服務器的用戶來說,這從未發生過。

該工具使用 GitPython,並且沒有對特定提交 SHA 進行檢出的服務,它僅切換到分支名稱。 它確實執行git pull --rebasegit push

有沒有辦法通過使用 rebase、fetch 或 push 執行拉取或任何其他不是檢查提交 SHA 的方式來結束detached HEAD狀態?

一個不完整的變基——由於合並沖突而停止,通常,盡管任何類型的錯誤,比如權限問題,也會這樣做——會讓你處於變基的中間。 Rebase 本身使用 detached-HEAD 模式,因此您將在這里擁有一個 detached HEAD。 這是最有可能的問題根源。

(正如eftshift0 在評論中指出的那樣,將標簽名稱傳遞給git checkout或任何不是分支名稱的名稱,也會導致分離的 HEAD。)

看起來該錯誤是由工作機器的 macOS 中默認未安裝 git-lfs 引起的。 插件以某種方式失敗並以分離的 HEAD 狀態結束

暫無
暫無

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

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