3

因此,在名为“beta”的分支上执行以下操作:

$ git checkout master
error: The following untracked working tree files would be overwritten by checko
ut:
        Documentation/packages/CoreTheme_Template_helpers.html
        Documentation/packages/default.html
Please move or remove them before you can switch branches.
Aborting

好的,

$ git status
# On branch beta
nothing to commit, working directory clean 

这是怎么回事?

4

3 回答 3

1

似乎在您的分支上beta,您已将这些Documentation/packages/*文件添加到.gitignore列表中;这些文件存在,但不是该分支上的 repo 的一部分。

这可能发生在.gitignore您的 repo 根目录中的.gitignore文件中,或者您的Documentation/or`Documentation/packages/目录中的文件中,或者通过文件本地忽略.git/info/exclude

但是,在 master 分支中提交了相同的文件(具有相同/不同的内容)。

因此,当您执行 git checkout master 时,git 会抛出错误,因为它试图覆盖现有文件。

移动/重命名这些文件并进行检查,然后提交您稍后需要的文件以解决问题。

于 2013-10-04T18:43:08.073 回答
1

工作树中所有未跟踪的文件都与.gitignore模式匹配,因此git status忽略它们。

但是,在 branchmaster上,将跟踪在当前工作树中存在且未跟踪和忽略的这两个文件。(Git 不会忽略跟踪的文件)。因此,签出master会踩踏工作树中未提交的内容,而 git 也不会这样做。

于 2013-10-06T01:01:04.903 回答
0

这意味着您的文件系统上有文件(在当前分支中未跟踪),这些文件存在于您要签出的分支中。

删除或删除它们。

于 2013-10-04T18:41:52.780 回答