在git中分离头

时间:2012-05-08 10:52:27

标签: 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 它说这是一些变化,我怎么能删除它们?

$ 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

3 个答案:

答案 0 :(得分:6)

这可能是因为您对分离的头部进行了更改 尝试强制结帐,这会丢弃更改,正如您所提到的那样,您不关心这些更改。

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”,

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

  

可以快进。

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

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

git merge origin/master

  

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

这意味着你有一些本地的文件,没有被跟踪(从未被git添加和提交)新的更改(合并)将添加到要监视和跟踪的文件的git列表。因此,将要添加的新文件与repo上的本地未跟踪文件混杂在一起。

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

答案 1 :(得分:0)

你可以stash你的更改,这使你工作目录,相对于分离的头,干净,所以你应该能够检查你想要的分支。

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

答案 2 :(得分:0)

执行git status以查看您是否更改了任何文件。 然后使用git checkout .删除所有已更改的文件,然后您应该能够git checkout MyBranch