Git将文件标记为已删除,但也标记为未跟踪

时间:2016-06-29 01:24:19

标签: git github

在存储库的功能分支中,我从git获取混合消息:

λ git status
On branch feature/****
Your branch is up-to-date with 'origin/feature/****'.
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)

        deleted:    path/to/file/abc.tf

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        path/to/file/abc.tf

no changes added to commit (use "git add" and/or "git commit -a")

远程存储库跟踪(并且应该)该文件。

如何解决这些消息,以便git status不会给我任何更改或未跟踪的文件?

  • 我试过git pull - &gt;没有任何反应。
  • 我尝试过全面安装git clone - &gt;相同的消息
  • 我尝试从目录中删除abc.tf,然后git checkout -f - &gt;回到我开始的地方。
  • 我试过git reset --hard HEAD - &gt;没有任何反应。
  • 我有尝试再次提交该文件,因为如果我能在localy中解析,我宁愿不这样做。但也许这是唯一的解决方案?
  • abc.tf不在我的.gitignore

我通常在linux上工作,这些消息不会显示在那里,只在Windows上显示(虽然我没有在Linux上尝试过干净安装)。

如果你能告诉我为什么会发生这种情况以及如何避免它,那么可以获得奖励。

2 个答案:

答案 0 :(得分:1)

您没有发布真实的文件名,但我怀疑发生的事情是文件只有大小写(即大写/小写)。 I've seen this kind of problem before on Windows,因为Git将不同文件区别的文件视为不同的文件,但Windows不会。

如果可能的话,一件事就是在该文件存在之前检查项目的版本,然后检查当前版本(在更改外壳之后)。

答案 1 :(得分:0)

我仍然不知道为什么会发生这种情况,但据说远程分支已经被破坏了,这就是我解决它的方法:

  1. 从存储库中删除abc.tf。
  2. int(x[0]) < y 暂存删除。
  3. 把abc.tf放回原处。
  4. git add -u,现在git状态表示我已将abc.tf重命名为完全相同的名称。
  5. git add .