Git:HEAD分离想要推动变革

时间:2014-01-20 00:46:24

标签: git

我在当地一家分公司工作,一直在推动我的改变。

我发现我犯了一个错误并检查了之前的提交。

然后我修复了我的错误,并希望推动我的更正。

当我执行git状态时,我收到以下消息:

C:\dev\ccr>git status
# HEAD detached from d6ddcfa

让我们说我正在开发branch1。

如果我想推动我的更改,请使用:     git push origin HEAD:branch_name

或:     git push origin branch1:branch_name

或者我应该做些什么?

3 个答案:

答案 0 :(得分:3)

您需要从分离的HEAD开始创建一个新分支。也就是说,从您的分离的HEAD,运行类似:

git checkout -b new_branch_name

现在您可以开始提交更改,它们将在分支new_branch_name上可见。如果您想将这些内容合并到master分支中,可以使用git merge命令:

git checkout master
git merge new_branch_name

有关分离头的更多信息:

......还有很多(很多!)其他文件在讨论这个问题。

答案 1 :(得分:0)

合并是一种选择(参见larsks的回答),但我可能只是将新的变化再次重新定位。我创建了一个分支,我在无头分支(git branch temp)上,然后再次在master(git rebase master)上重新绑定它,修复任何冲突。然后我切换到master(git checkout master),并将其重置为temp分支所在的位置(git reset --hard temp)。然后我会检查主分支(git checkout master)并删除临时分支(git branch -d temp)。

如果这个意外创建的分支是一个明智的分支,而不是应该与主分支一起发生的事情,那么我会选择larsks的答案。

答案 2 :(得分:0)

谢谢所有回复的人。

我尝试了你建议的方法,但是我不断收到另一个关于我的分支在原始/主人等身后的错误,而这只是失控的。

当我遇到类似的情况时,这个答案不是最正确或最好的,对于我自己的记录以供将来参考。

我是如何解决的是我创建了一个新的本地分支,通过以下方式合并了原始主文件:

git checkout -b some_branch origin / master

然后我在新的本地分支中进行了所有更改,然后再将其转移到新分支。