git中的分离头
我有一个分离头在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.
---更新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.
Switched to branch 'master'
所以,你是主分支现在。
Your branch is behind 'origin/master' by 6 commits,
这意味着远程主分支已更新,并且您可能想要更新本地分支以匹配远程。您已经获取了origin/master分支,因此git知道您的本地分支在远程分支后面。
and can be fast-forwarded.
这意味着远程分支对它进行了线性更改,并且在合并/更新本地分支时不会发生冲突。
要更新本地分支,只需将原始/主分支合并到它。
git merge origin/master
error: The following untracked working tree files would be overwritten by merge:
,这意味着你有一些本地的文件,这是不被跟踪(从未混帐add'ed和COMMITED)的新变化(合并)将要加入要观看和跟踪的git文件列表。因此,将要添加的新文件与回购站上的本地未跟踪文件混杂在一起。
要解决该问题,请删除这些本地文件或重命名它们,或将它们移动到其他位置并尝试再次合并远程分支。
您可以stash
您的更改,这使您的工作目录,相对于分离的头,干净,所以你应该能够检查你想要的分支。
一旦在所需的分支上,您可以stash pop
带回这些更改。手册中有很多选项;-)
执行git status
以查看是否更改了任何文件。 然后一个git checkout .
删除任何更改的文件,那么你应该能够git checkout MyBranch
傀儡头。
当你说“'git checkout MyBranch'不起作用时,”你是什么意思?它是否失败,如果是这样,如何? –
另请参阅[修复Git分离头?](http://stackoverflow.com/q/10228760/456814)。 – 2014-05-30 05:16:40