我有一个名为“style.css”的文件,但是git没有检测到它。如果我删除它,它也不会检测到,但如果我更改文件名,则会检测到。但我需要保留那个名称。
该文件未在.gitignore文件中。这让我疯狂!
我需要一些帮助。
我有一个名为“style.css”的文件,但是git没有检测到它。如果我删除它,它也不会检测到,但如果我更改文件名,则会检测到。但我需要保留那个名称。
该文件未在.gitignore文件中。这让我疯狂!
我需要一些帮助。
使用git check-ignore
命令调试你的.gitignore文件(排除文件)。
例如:
$ git check-ignore -v config.php
.gitignore:2:src config.php
上述输出详细说明了每个给定路径名(包括行号)的匹配模式(如果有的话)。
因此,也许不是忽略了您的文件扩展名,而是整个目录被忽略了。
返回的格式为:
<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
或者使用以下命令在用户和仓库文件夹中打印你的.gitignore
:
cat ~/.gitignore $(git rev-parse --show-toplevel)/.gitignore $(git rev-parse --show-toplevel)/.git/info/exclude
或者使用 git add -f <path/file>
,这可以添加被忽略的文件。
更多详情请参阅:man gitignore
,man git-check-ignore
。
.git
文件夹并重新初始化git即可。 - andhogit add -f %relativepath%
。例如:git add -f folder\file.xml
,以更明确地说明。 - Graviton另外需要注意的是,虽然这种情况比较罕见,但我曾经遇到过这个问题。我将一些已经与仓库相关联的文件从一个目录复制/粘贴到另一个目录。
但同时也复制了.git文件夹,这导致git无法检测到该文件夹。
因此,我的文件夹结构如下,即使设置了Original Project 1仓库,git仍无法检测到Folder 2:
--Original Project 1
--.git
--Folder 1
--Folder 2
--.git
--Many other files/folders
删除子文件夹.git解决了我的问题。
这个文件也可以列在.git/info/exclude
中,还有一个选项core.excludesfile
也要注意。
git update-index --assume-unchanged
或git update-index --skip-worktree
。如果是,请将其取消设置。.git
。git ls-files -v <file>
命令。任何小写字母表示应用了--assume-unchanged
; S
表示应用了--skip-worktree
, 而s
表示两者都应用了。尝试通过这些选项在代码库中进行搜索;我曾经处理过脚本运行--assume-unchanged
以防止用户检查配置文件的更新,非常烦人。 - jjlin我遇到了相同的问题(某种原因导致components/dashboard/js-dev/training/index.js
没有被跟踪),所以我做了以下操作:
$ git check-ignore -v components/dashboard/js-dev/training/index.js
$ (gave me nothing)
$ git check-ignore -v components/dashboard/js-dev/training/
$ /Users/User/.config/git/ignore:23: components/dashboard/js-dev/training/
无论如何,我发现这很奇怪,于是我查看了这个文件/Users/User/.config/git/ignore
,它长这样:
(this is line 1)
# Automatically created by GitHub for Mac
# To make edits, delete these initial comments, or else your changes may be lost!
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
事实证明,第23行实际上是在.com.apple.timemachine.donotpresent
和# Directories potentially created on remote AFP share
之间的那一行,换句话说,它是一行完全空白的行!
我尝试删除所有额外的换行符,使我的文件看起来像这样:
# Automatically created by GitHub for Mac
# To make edits, delete these initial comments, or else your changes may be lost!
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
git status
,发现它现在正在检测components/dashboard/js-dev/training/
。我运行git add components/dashboard/js-dev/training/
,然后一切都正常了。我曾遇到类似问题并已解决。
在运行git add
命令时,我遇到了以下错误信息:
The following paths are ignored by one of your .gitignore files:
<file>
Use -f if you really want to add them.
fatal: no files added
因此,我尝试通过在git add
命令中添加-f
来强制Git为我解决问题。这通常会强制Git调整.gitignore
文件,然后您将能够看到所需的更改或有问题的设置。
在我的特定情况下,.gitignore
文件末尾的换行符似乎存在一些奇怪的问题。以下是Git如何解决问题:
-RemoteSystemsTempFiles
+RemoteSystemsTempFiles
\ No newline at end of file
.gitignore_global
文件。在我的情况下,它是由 Sourcetree
应用程序自动创建的,当我忽略文件时。它位于我的用户路径下 (/Users/user_name/.gitignore_global
)。额外说明,我遇到了这个问题,并发现对文件的更改没有被添加到提交中。除了右键单击项目并执行以下操作之外,似乎什么都不起作用:
团队 > 高级 > 不假设未更改