Git忽略没有“.gitignore”甚至不存在的文件夹
在我使用的存储库中没有Git忽略没有“.gitignore”甚至不存在的文件夹,git,smartgit,Git,Smartgit,在我使用的存储库中没有.gitignore,在我的主目录中也没有 我不是在用git编程。相反,我想弄清楚将其用于其他用途是否是个好主意。不幸的是,我遇到了一个问题,我之所以发现这个问题,是因为我签出了一个空分支,但在我的repo中发现了文件/文件夹(而不是$repo/.git) 现在,git遇到问题的文件位于一个非常糟糕的命名目录中。它是HTML符号的$repo/Google%20Photos/Hangout\u%20Tauberfranken%20%ED%A0%BD%ED%B0%B8和47 6
.gitignore
,在我的主目录中也没有
我不是在用git编程。相反,我想弄清楚将其用于其他用途是否是个好主意。不幸的是,我遇到了一个问题,我之所以发现这个问题,是因为我签出了一个空分支,但在我的repo中发现了文件/文件夹(而不是$repo/.git
)
现在,git遇到问题的文件位于一个非常糟糕的命名目录中。它是HTML符号的$repo/Google%20Photos/Hangout\u%20Tauberfranken%20%ED%A0%BD%ED%B0%B8
和47 6F 6F 67 6C 65 20 50 68 6F 74 6F 73 2F 48 61 6E 67 6F 75 74 5F 20 54 61 62 65 72 72 61 6E 6E 65 6E 20 ED A0 BD ED B0 B0 B0 B8
(省略$repo//code>)而且可能在任何文本编码中都是无效的。请注意,这里没有2F
也没有00
,文件名长度远离255且大于0,因此我肯定在ext4的规范范围内操作
然而,这对git来说应该不是问题,对ext4来说当然也不是问题。我正在使用SmartGit,甚至没有收到错误消息。其中的文件将被忽略
为什么会发生这种情况?我应该避免哪些角色,这样就不会再发生这种情况了?(是的,我知道它们可能至少应该是有效的UTF-8,但可能有更多的限制。)该目录中可能没有文件-请仔细检查一下好吗?Git跟踪的是内容而不是目录。如果没有要跟踪的文件,git状态将不会显示任何更改
cd ~
mkdir repo
cd repo
mkdir -p Google%20Photos/Hangout_%20Tauberfranken%20%ED%A0%BD%ED%B0%B8
git init
Initialized empty Git repository in
git status
On branch master
Initial commit
nothing to commit (create/copy files and use "git add" to track)
请注意,即使我们有一个用HTML编码创建的目录,git也只是沿着它的快乐之路前进,忽略了那些曾经存在的目录。它正在寻找要跟踪的内容(例如,文件中的文本、文件中的二进制数据等)。由于没有可跟踪的文件/内容,git选择忽略目录的存在
cd Google%20Photos/Hangout_%20Tauberfranken%20%ED%A0%BD%ED%B0%B8/
vim test.txt
(wrote something in test.txt and saved it)
cd ~/repo
git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
Google%20Photos/
nothing added to commit but untracked files present (use "git add" to track)
cd谷歌%20照片/闲逛区\u%20Tauberfranken%20%ED%A0%BD%ED%B0%B8/
vim test.txt
(在test.txt中编写了一些内容并保存了它)
cd~/回购
git状态
论分行行长
初始提交
未跟踪的文件:
(使用“git add…”包含在将提交的内容中)
谷歌%20张照片/
提交时未添加任何内容,但存在未跟踪的文件(使用“git add”跟踪)
现在我们添加了内容,git正在识别它并提示我们未跟踪的文件。它与命令行客户端一起工作吗?当我重新阅读您的问题时,您的文件似乎位于名称可怕的目录中。你能把cd
放进那个目录并显示ls-l
的部分输出吗?当您在该目录中时,是否可以执行git status
并从命令行添加输出?@RyanO'Hara谢谢!如果我在命令行上使用git,我可以暂存并提交此文件夹中的文件。但在我随后发布SmartGit之后,事情变得更加奇怪。现在SmartGit向我展示了这些文件(过去它对这些文件一无所知)据称丢失了。它们肯定在文件系统中,git给了我一个很好的“无需提交,工作目录干净”。repo是否在一个特殊的位置(如Windows\System32?)或程序文件中?@M.M如果我是Windows用户,我可以使用这样的文件名吗?;-)(或者说ext4)我认为问题不在于git。git可能工作得很好,问题是SmartGit。我的猜测是,它修改了从git repo或FS读取的字符串,然后在下次查找时找不到这些文件,因此它不会将它们列为未跟踪,也不会在提交所有内容时添加它们。这也解释了为什么在我使用git在控制台上添加它们之后,它会将它们列为缺失。