繁体   English   中英

git中的分离头

[英]Detached head in git

我在git中有一个独立的头 我无意进行任何提交或保存任何更改,我只想转到分支的开头位置。 我已经尝试过他的命令,但是它不起作用:

 git checkout MyBranch

有什么帮助吗?

----更新

当我尝试结帐时,收到以下消息:

 $ git checkout -f master
 Switched to branch 'master'
 Your branch is behind 'origin/master' by 6 commits, and can be fast-forwarded.

--- update 2它说thetre是一些更改,如何删除它们?

$ git merge origin/master
Updating fb5972a..28c2849
error: The following untracked working tree files would be overwritten by merge:
  ---
Please move or remove them before you can merge.
Aborting

我该如何丢弃它们?

这些命令不起作用:

$ git checkout -- .


$ git stash save --keep-index
No local changes to save

这可能是因为您对分离的头部进行了更改。
尝试强制签出,这将放弃所做的更改,因为您提到您并不在乎那些。

git checkout -f MyBranch

git help checkout手册页:

  -f, --force When switching branches, proceed even if the index or the working tree differs from HEAD. This is used to throw away local changes. When checking out paths from the index, do not fail upon unmerged entries; instead, unmerged entries are ignored. 

切换到分支“主人”

所以,您现在在master分支上

您的分支落后“起源/母版” 6次提交,

这意味着远程主分支具有更新,并且您可能要更新本地分支以匹配远程。 您已经获取了origin / master分支,因此git知道您的本地分支位于远程分支之后。

并且可以快速转发。

这意味着远程分支对其进行了线性更改,并且在合并/更新本地分支时不会有冲突。

要更新本地分支,只需将origin / master分支合并到该分支即可。

git merge origin/master

错误:以下未跟踪的工作树文件将被合并覆盖:

这意味着您在本地拥有一些文件,这些文件没有被跟踪(从未进行过git add和提交),新更改(合并)将添加到要监视和跟踪的git文件列表中。 因此,将要添加的新文件与存储库上的本地未跟踪文件杂乱无章。

要解决此问题,请删除这些本地文件,或者重命名它们,或者将它们移到另一个位置,然后尝试再次合并远程分支。

您可以stash所做的更改,使您的工作目录(相对于分离的头部)保持干净,因此您应该可以签出所需的分支。

进入所需分支后,您可以stash pop以使这些更改恢复stash pop 手册中有很多选项;-)

执行git status来查看是否更改了任何文件。 然后进行git checkout . 删除所有更改的文件,那么您应该可以git checkout MyBranch来解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM