git 无法添加设备文件?

c2h*_*2h2 2 linux git

git 无法提交设备文件吗?Linux系统下。

例如:

git clone blah@blah.com:/blah.git
cd blah 
sudo cp -af /dev/ttyS0 .
git add .
git commit
Run Code Online (Sandbox Code Playgroud)

git 消息:

# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

ls -ashl结果:

   0 crw-rw----  1 c2h2 c2h2 4, 64 Jun 24 14:23 ttyS0
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?

Mat*_*Mat 5

不,Git 根本不会跟踪设备文件(目前)。dir.c这是来自read_directory_recursive (v1.7.8.5) 函数的评论,当您这样做时会使用该函数git add .

 * Read a directory tree. We currently ignore anything but
 * directories, regular files and symlinks. That's because git
 * doesn't handle them at all yet. Maybe that will change some
 * day.
Run Code Online (Sandbox Code Playgroud)

Git 跟踪内容,而不是文件。因此,试图让它跟踪设备文件并不真正适合——它们实际上并不具有传统意义上的内容。

一种有效的方法是创建一个脚本来创建/“安装”您的应用程序/项目所需的设备文件(包括 fifos 或您可能需要的任何其他文件)。Git 可以非常有效地跟踪它,对于安装程序(或使用您的树的其他人)来说,这是一种方便的形式。