Git出现问题 - 已添加但未添加的文件

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 

发生了什么事情?

3个回答

1
在您的分支beta中,您已将Documentation/packages/* 文件添加到您的.gitignore 列表中;这些文件存在,但不是此分支上存储库的一部分。
这可能发生在存储库根目录下的.gitignore文件、或者在您的Documentation/ `Documentation/packages/目录下的.gitignore文件中,或者通过本地忽略.git/info/exclude文件。
然而,在主分支中提交了相同的文件(内容相同/不同)。
因此,当您进行git checkout master时,git会抛出一个错误,因为它正在尝试覆盖现有的文件。
移动/重命名这些文件并进行检查,稍后再提交您需要的文件以解决此问题。

我检查了 .gitignore 文件,这些文件没有被添加到任何分支(master、beta 或 development)的忽略列表中。 - LogicLooking
@LogicLooking 你能同时检查一下.git/info/exclude吗?因为是否需要忽略Documentation/*目录或文件呢? - Anshul Goyal
@LogicLooking 请确认在您的beta分支上是否存在 Documentation/Packages/* 文件。 - Anshul Goyal
@LogicLooking 另外,请注意您可能在 Documentation/Documentation/Packages/ 目录中有一个 .gitignore 文件,因此也要检查它们。 - Anshul Goyal

1

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

然而,在master分支中,这两个文件虽然未跟踪且被忽略,但已被跟踪(Git不会忽略已跟踪的文件)。因此,检出master将覆盖您工作目录中未提交的内容,而Git也不会这样做。


0

这意味着你的文件系统中有一些文件(在当前分支中未被跟踪),但是在你要切换到的分支中存在。

请移除或删除它们。


对不起,什么?那没有意义吧?我在主分支中有未跟踪的文件?但是它不让我切换到主分支?如果我删除它们,beta就会抽风,说“你删除了这两个文件……”,而且这些特定的文件已经被推送到GitHub上了,所以我不确定它们为什么会是“未跟踪”的。 - LogicLooking
不,他说beta版中未被跟踪,这就是为什么git会报错的原因,否则他将覆盖他不知道的文件。虽然我不知道为什么它们在beta版中未被跟踪。 - François Moisan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接