在一个名为“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
怎么回事?
答案 0 :(得分:1)
在你的beta
列表中,您的Documentation/packages/*
列表中添加了.gitignore
个文件。这些文件存在,但不是该分支上的回购的一部分。
这可能发生在您的repo根目录中的.gitignore
文件中,或.gitignore
或Documentation/
目录中的`Documentation/packages/
文件中,或通过{{1文件。
但是,在主分支中提交相同的文件(具有相同/不同的内容)。
因此,当您执行git checkout master时,git会因为尝试覆盖现有文件而引发错误。
移动/重命名这些文件并进行结帐,然后提交您稍后需要的文件来解决问题。
答案 1 :(得分:1)
您工作树中所有未跟踪的文件都与.gitignore
模式匹配,因此git status
会忽略它们。
在分支master
上,会跟踪这两个文件,这些文件在当前工作树中未跟踪和忽略。 (Git不会忽略跟踪的文件)。因此,检出master
会扼杀工作树中未提交的内容,而git也不会这样做。
答案 2 :(得分:0)
这意味着您的文件系统上有文件(在当前分支中未跟踪),该文件存在于您要检查的分支中。
删除或删除它们。