问题描述
我有一个处理git存储库的python服务器应用程序。它创建提交并切换分支以在本地应用更改,然后将其推送到远程存储库。
由于某些原因,在Mac中运行服务器的用户,其存储库以分离的头部状态结束。对于在Windows计算机上运行服务器的用户而言,这从未发生过。
该工具使用gitpython,没有服务可以对特定的提交sha进行检出,它只能切换到分支名称。它确实执行,拉--rebase和push。
所以问题是,是否有一种方法可以通过使用rebase,petchs或pushs进行拉动,或通过其他方法而不是对commit sha进行检出来终止于头状态?
解决方法
一个不完整的 变基-一种由于合并冲突而停止的变基,通常,尽管任何类型的错误(例如权限问题)也可以这样做-会使您处于中间位置重新设定基准。 Rebase本身使用分离式HEAD模式,因此这里将具有分离式HEAD。这是最有可能造成此问题的原因。
(作为eftshift0 noted in a comment,将标记名称传递给git checkout
或任何不是分支名称的名称,也会导致HEAD分离。)
看起来这个错误是由工作机器的 macOS 中默认没有安装 git-lfs 引起的。插件以某种方式失败并以分离的 HEAD 状态结束