1

我在 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 它说有一些变化,我怎样才能删除它们?

$ 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
4

3 回答 3

5

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

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'

所以,你现在在master 分支上。

您的分支落后于 'origin/master' 6 次提交,

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

并且可以快进。

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

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

git merge origin/master

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

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

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

于 2012-05-08T11:02:39.600 回答
0

你可以stash改变你的工作目录,相对于分离的头,干净,所以你应该能够签出你想要的分支。

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

于 2012-05-08T17:11:39.467 回答
0

做一个git status看看你是否改变了任何文件。然后git checkout .删除任何已更改的文件,然后您应该就可以git checkout MyBranch搞定了。

于 2012-05-08T17:46:17.190 回答