Git没有检测到文件,也没有.gitignore

jon*_*fer 59 git

我有一个名为"style.css"的文件,git没有检测到它.如果我删除它也不检测它,但它确实检测我是否更改了文件的名称.但我需要这个名字.该文件不在.gitignore文件中.这真让我抓狂!

我将不胜感激.

ken*_*orb 78

使用git check-ignore命令调试gitignore文件(排除文件).

例如:

$ git check-ignore -v config.php
.gitignore:2:src    config.php
Run Code Online (Sandbox Code Playgroud)

以上输出详细说明了每个给定路径名(包括行)的匹配模式(如果有).

所以也许你的文件扩展名不会被忽略,而是整个目录.

返回的格式为:

<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
Run Code Online (Sandbox Code Playgroud)

或使用以下命令打印您的.gitignorein user和repo文件夹:

cat ~/.gitignore $(git rev-parse --show-toplevel)/.gitignore $(git rev-parse --show-toplevel)/.git/info/exclude
Run Code Online (Sandbox Code Playgroud)

或者使用git add -f <path/file>允许添加否则忽略的文件.

请参阅:man gitignore,man git-check-ignore了解更多详情.

  • git add -f.在没有克隆存储库的情况下为我修复它. (7认同)
  • 这应该是公认的答案,因为它显示了问题实际所在. (3认同)

Bom*_*mbe 11

该文件也可以列在其中.git/info/exclude,也可以选择core.excludesfile观看.

  • 这个答案并没有真正解决问题.评论做了. (2认同)

Ice*_*141 9

另一个说明,可能是一个罕见的情况,但我有这个问题.我将一些已经绑定到repo的文件从一个目录移动到另一个目录,复制/粘贴样式.

随之而来的是.git文件夹,它阻止了git检测文件夹.

所以我的文件夹结构是这样的,即使为原始项目1设置了repo,git也没有检测到文件夹2:

--Original Project 1
    --.git
    --Folder 1
    --Folder 2
         --.git
         --Many other files/folders
Run Code Online (Sandbox Code Playgroud)

删除子.git文件夹解决了我的问题.

  • 谢谢你的提示! (2认同)

man*_*lds 7

除了gitignore和其他地方检查忽略模式,检查你是否已经运行git update-index --assume-unchangedgit update-index --skip-worktree.如果是这样,请取消它们.

确保所关注文件的repo或parent中没有一些奇怪的东西,它有.git自己的.

尝试克隆你的repo,看看你是否在克隆版中看到了相同的内容.如果是这样,请尝试克隆到其他计算机/ VM并检查.这会让你知道哪里出了问题.

  • 如何检查是否有人运行过这些命令? (4认同)