我在当地一家分公司工作,一直在推动我的改变。
我发现我犯了一个错误并检查了之前的提交。
然后我修复了我的错误,并希望推动我的更正。
当我执行git状态时,我收到以下消息:
C:\dev\ccr>git status
# HEAD detached from d6ddcfa
让我们说我正在开发branch1。
如果我想推动我的更改,请使用: git push origin HEAD:branch_name
或: git push origin branch1:branch_name
或者我应该做些什么?
答案 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
然后我在新的本地分支中进行了所有更改,然后再将其转移到新分支。