我今天结束了一个分离的头,同样的问题描述:git推送说所有最新的,即使我有局部的变化
据我所知,我没有做任何不同寻常的事情,只是从本地回购中提交和推送。
那么,我是如何得到一个分离的头部的呢?
我今天结束了一个分离的头,同样的问题描述:git推送说所有最新的,即使我有局部的变化
据我所知,我没有做任何不同寻常的事情,只是从本地回购中提交和推送。
那么,我是如何得到一个分离的头部的呢?
当前回答
我刚才无意中重复了这句话:
列出远程分支 Git branch -r /功能/ f1234起源 来源/主 我想在本地签出一个,所以我剪切粘贴: git checkout origin/Feature/f1234 您看!分离HEAD状态 你处于“分离的头部”状态。[…])
解决方案1:
不包括起源/在我的分支规格前检查时:
git checkout Feature/f1234
解决方案2:
添加-b参数,用于从远程创建本地分支
git checkout -b origin/Feature/f1234或
git checkout -b Feature/f1234它会自动回到原点
其他回答
进入git分离头状态的另一种方法是尝试提交到远程分支。喜欢的东西:
git fetch
git checkout origin/foo
vi bar
git commit -a -m 'changed bar'
请注意,如果您这样做,任何进一步尝试签出origin/foo将使您回到分离的头部状态!
解决方案是创建自己的本地foo分支来跟踪origin/foo,然后可选地push。
这可能与您最初的问题无关,但该页在“git分离头”的谷歌次点击中排名靠前,这个场景的文档记录严重不足。
在我的案例中,情况是这样的:
创建一个新的分支(feb_debugging)。 运行git fetch 我看到新的分支(feb_debugging)被拉 现在,我使用git checkout origin/feb_debugging
在这里它让我到HEAD现在在....
我只需要再结账一次
Git签出feb_debugging 现在git说我在feb_debugging分支。
如果您有一个与分支同名的标记,就会发生这种情况。
例如:如果“release/0.1”是标签名,那么
git checkout release/0.1
在“release/0.1”处产生分离的HEAD。如果您期望release/0.1是一个分支名称,那么您会感到困惑。
try
git reflog
这给了你一个HEAD和分支指针的历史 哪里搬过去了。
例如:
88ea06b HEAD@{0}: checkout:从DEVELOPMENT移动到remotes/origin/SomeNiceFeature e47bf80 HEAD@{1}:拉动原点发展:快进
这个列表的顶部是一个原因,人们可能会遇到一个分离的头 状态……检查一个远程跟踪分支。
以下是VonC的评论,这是我如何解决这个“分离的头部”问题的简短版本。
在我的遥控器上创建了一个分支;来源/ dev /功能 在我的本地运行git fetch,所以现在我的本地将知道这个新的远程分支 现在运行git switch feature/dev,我们就完成了!