git 为啥不把目录当成文件, Linux 哲学不是 everything is a file 么?

2019-02-02 09:49:04 +08:00
 gouchaoer2

git 有时候会有一些问题,比如刚 check out 一个带有 lfs 的很大的 repo 的时候,出来一堆 untracked files (之前也遇到很多次)。。。然后打算先 git clean -f,然后 git reset --hard,结果发现 untracked files 还有许多目录没有办法清理,我顿时就不明白了。。。你说你不负责管理一个空目录,里面必须加一个.gitkeep 或者空的.gitignore 我也就忍了,可是有时候你又不认,你 everything is a file 的设计哲学呢?你的 consistent 呢?

4035 次点击
所在节点    程序员
22 条回复
lululau
2019-02-02 09:52:49 +08:00
除了是一个爸爸之外,这俩还有啥关心?
lululau
2019-02-02 09:52:54 +08:00
关系
secondwtq
2019-02-02 09:53:00 +08:00
那是 unix 哲学,不是 linux 哲学
tempdban
2019-02-02 09:53:55 +08:00
git clean -df
gouchaoer2
2019-02-02 09:55:42 +08:00
@tempdban 这个管用,3q
tempdban
2019-02-02 09:58:09 +08:00
@gouchaoer2 不是你连 help 都不看的么,上来就怼?
gouchaoer2
2019-02-02 10:05:29 +08:00
@tempdban 我错了还不行么?
gouchaoer2
2019-02-02 10:06:07 +08:00
一个 lfs 特性都做不好,每次 check out 都出问题我也很无奈啊
frylkrttj
2019-02-02 10:06:13 +08:00
比我还菜系列
gouchaoer2
2019-02-02 10:06:55 +08:00
@frylkrttj 是的,在用 git 上比你菜,但不是所有的事情都比你菜哦
frylkrttj
2019-02-02 10:10:37 +08:00
@frylkrttj 不服看看我刚发的帖子。百度都被我翻烂了都没找到我要得。
newmind
2019-02-02 10:17:44 +08:00
这一点有的时候会坑人
本机目录是存在的
同步到其他机器上运行提示目录不存在
那么多空目录需要添加.gitkeep
麻烦
sdijeenx
2019-02-02 11:08:05 +08:00
"Everything is a file" describes one of the defining features of Unix, and its derivatives — that a wide range of input/output resources such as documents, directories, hard-drives, modems, keyboards, printers and even some inter-process and network communications are simple streams of bytes exposed through the filesystem name space.
https://en.wikipedia.org/wiki/Everything_is_a_file

"Everything is a file"是 UNIX like 系统把一切硬件都当成文件,总结一下就是"Everything is a file"。

UNIX 哲学:
1.小即是美;
2.每一个程序只做好一件事;
3.尽快建立设计原型;
4.舍去效率换取可移植性;
5.使用纯文本来存储数据;
6.充分利用软件的杠杆效应;
7.使用 Shell 脚本提高杠杆效应和可移植性;
8.避免强制用户界面;
9.让每一个程序都成为过滤器。

UNIX 哲学不代表 UNIX 系统:
未来某一天 Linux 可能会见证到自身被一个较新的系统所取代,以一种我们想象不到的方式。这其实没什么大不了的,当这种情况发生时,那些早就知道该如何“像 UNIX 那样思考”的人们会为此做好准备。

让我们继续,做一件事情并把它做好,最后你的辛苦必将获得回报。
sdijeenx
2019-02-02 11:16:50 +08:00
junjieyuanxiling
2019-02-02 13:17:23 +08:00
Linus 的哲学是实用……
junjieyuanxiling
2019-02-02 13:43:03 +08:00
@gouchaoer2 lfs 是 git 的扩展,git 本质上是个源代码管理软件。要管理二进制大文件可以用 OSTree。
reus
2019-02-02 13:53:16 +08:00
无能狂怒
reus
2019-02-02 13:54:34 +08:00
何况 lfs 又不是 git 官方的,是 github 开发的扩展,这都能怼到 linux 头上,不知所谓。
loading
2019-02-02 14:00:40 +08:00
建议提 pr,看他爸爸能不能把你喷飞。
gouchaoer2
2019-02-02 14:23:51 +08:00
@reus 我怎么这么菜呢?气死我了!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/532582

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX