繁体   English   中英

Git忽略甚至不存在.gitignore`的文件夹

[英]Git Ignores Folder Without `.gitignore` Even Existing

我正在使用的存储库中没有.gitignore ,我的主目录中也没有。

我在这里没有使用git进行编程。 相反,我想弄清楚将它用于其他用途是否是一个好主意。 不幸的是,我遇到了一个问题,因为我签出了一个空的分支,但是在我的仓库中发现了文件/文件夹(除了$repo/.git ),所以才发现了这个问题。

现在,git遇到问题的文件位于一个非常可怕的命名目录中。 HTML表示法中的$repo/Google%20Photos/Hangout_%20Tauberfranken%20%ED%A0%BD%ED%B0%B847 6F 6F 67 6C 65 20 50 68 6F 74 6F 73 2F 48 61 6E 67 6F 75 74 5F 20 54 61 75 62 65 72 66 72 61 6E 6B 65 6E 20 ED A0 BD ED B0 B8以十六进制表示(为此省略$repo/ ),并且可能对所有编码的文本均无效。 请注意,那里没有2F也不是00 ,文件名的长度远离255且大于0,所以我绝对在ext4的规范内操作。

但是,这对于git来说应该不是问题,对于ext4来说当然也不是问题。 我正在使用SmartGit,甚至没有收到错误消息。 其中的文件将被忽略。

为什么会发生这种情况,应该避免使用哪些字符,这样就不再发生了? (是的,我知道它们可能至少应该是有效的UTF-8,但也许还有更多限制。)

该目录中可能没有文件-您能仔细检查一下吗? Git跟踪内容而不是目录。 如果没有要跟踪的文件,则git status将保持不变。

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)

现在我们添加了内容,git可以识别它并提示我们未跟踪的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM