【问题标题】:unable to switch branches because of already added files由于已添加文件,无法切换分支
【发布时间】:2013-01-26 00:41:51
【问题描述】:

在我的 gits 中有一个奇怪的问题。没有什么要添加的,但它不会让我切换或添加建议添加的文件。

git status
# On branch oop
nothing to commit (working directory clean)

git checkout LIVE
error: The following untracked working tree files would be overwritten by checkout:
    folder/file.js
    folder/file2.js
Please move or remove them before you can switch branches.
Aborting

即使在执行git add folder/file.js;git add folder/file2.js 之后,也会出现相同的结果。

有人知道发生了什么吗?没有.gitignore文件...

奇怪的是,之前我无法添加这些文件,所以我不得不重命名、添加、重命名它们才能将它们放入 repo(如 this answer 所建议的那样。

这可能与这个文件夹曾经是这个 repo 中它自己的 repo 的事实有关吗?我删除了此文件夹中的所有隐藏文件夹(如 .git)。

【问题讨论】:

  • 它们很可能是您当前分支的.gitignore 的一部分,但不会在 LIVE 分支上被忽略。
  • 我检查了 repo 文件夹中的 .gitignore 文件,以及我的主文件夹,它们都是空的。
  • 您可以使用git status --ignored 包含被忽略的文件。如果他们出现在那里,他们就会被某处忽略。
  • 好主意,但使用--ignored 也没有任何显示:/

标签: git


【解决方案1】:

不确定是什么问题,但我做了以下修复:

  • 删除了文件夹(并保存了备份)
  • git add -u; // 暂存已删除的文件
  • git commit -m '...'
  • 将备份文件复制到 repo 的文件夹中
  • git add . // 暂存新文件
  • git commit -m '...'

在两个分支中都这样做了,到目前为止它似乎已经解决了..

【讨论】:

    【解决方案2】:

    也可能有子模块和其他 .gitignore 文件。如果您也使用排除文件,请仔细检查您的排除文件。

    在本地克隆这个 repo。查看结帐是否适用于克隆。

    【讨论】:

    • 嘿,这一切都是在克隆上完成的。一旦我注意到问题,我删除了所有内容并克隆了它以重试。 git status --ignored 没有返回任何东西。很奇怪的问题
    【解决方案3】:

    请记住,添加文件只会暂存文件。它不会将它们提交给 repo。使用git add 后,您还需要执行git commit 来提交更改。

    【讨论】:

      猜你喜欢
      • 2019-10-20
      • 2015-08-14
      • 2017-04-30
      • 1970-01-01
      • 2020-08-05
      • 2018-12-19
      • 2015-06-15
      • 2020-04-08
      • 2018-01-23
      相关资源
      最近更新 更多