记一个Github Bug
记一个Github Bug
记一个 Github Bug
在任何目录层级下,都不能有名字完全相同的两个文件夹或文件。
这个命题,相信小学二年级的同学都会认为它是对的,事实上它确实是对的。
但是,如下图
有人说,是不是这三个文件夹存在一些不可见的字符呢?
确实,第三个显而易见的有个空白字符 ᅟᅠ
。
但是,第一个和第二个究竟是什么情况 😨
接下来,打开这两个文件夹仔细观看:
从 GitHub 选中的文件路径上来看,这两个路径几乎是一模一样的,难道命题是错的?
其实,从两个图片中的 url
中可以分析到:其实有一张图片中的文件夹名称后面多了一个 ` ` aka %20
。
但是 Github 似乎不会渲染出来这个空格。
这个 B Bug 真的给我干无语了 😭
debug 过程中突然又想在本地 debug,遂直接 git clone
,然后直接发现了问题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Wizzy@Wizzy-R7000P MINGW64 ~/Desktop/WorkingSpace
$ git clone https://github.com/1Wizzy/1Wizzy.github.io.git
Cloning into '1Wizzy.github.io'...
remote: Enumerating objects: 673, done.
remote: Counting objects: 100% (102/102), done.
remote: Compressing objects: 100% (65/65), done.
remote: Total 673 (delta 72), reused 37 (delta 36), pack-reused 571 (from 1)
Receiving objects: 100% (673/673), 46.42 MiB | 15.05 MiB/s, done.
Resolving deltas: 100% (230/230), done.
error: invalid path '_data/locales /en.yml'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
显然由此得知,在 Windows 的文件系统不允许目录名以空格结尾 ❎
但是在 Linux/Unix 上,是完全没有问题的 ✅
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@Wizzy-R7000P:~# git clone https://github.com/1Wizzy/1Wizzy.github.io.git
Cloning into '1Wizzy.github.io'...
remote: Enumerating objects: 680, done.
remote: Counting objects: 100% (109/109), done.
remote: Compressing objects: 100% (71/71), done.
remote: Total 680 (delta 76), reused 37 (delta 36), pack-reused 571 (from 1)
Receiving objects: 100% (680/680), 46.42 MiB | 15.03 MiB/s, done.
Resolving deltas: 100% (234/234), done.
root@Wizzy-R7000P:~# ls
1Wizzy.github.io GethSpace asdas 'asdas ' competition feishu2md
root@Wizzy-R7000P:~# cd 1Wizzy.github.io/
root@Wizzy-R7000P:~/1Wizzy.github.io# ls
Gemfile LICENSE README.md _config.yml _data _plugins _posts _tabs assets feishu2md index.html static tools
root@Wizzy-R7000P:~/1Wizzy.github.io# cd _data/
root@Wizzy-R7000P:~/1Wizzy.github.io/_data# ls
contact.yml locales 'locales ' localesᅟᅠ share.yml
本文由作者按照 CC BY-NC-SA 4.0 进行授权。转载请注明出处,且不得用于商业用途,需以相同方式共享。