根文件系统的git版本控制目录



我下载了一个tar文件,它是Linux示例根文件系统,并提取到一个目录中。我想在目录上使用git版本控制。但不知何故,文件大小异常。

目录的原始大小是3.6G,然后使用git来控制目录(git添加和提交(。然而,在签出HEAD后,它变成了3.8G。

我也尝试了git-lfs(大文件存储(,它不起作用。

我应该如何使用git来控制这样一个Linux示例根文件系统目录?任何信息,我都会非常感谢你的帮助。

tar -xf Tegra_Linux_Sample-Root-Filesystem_R32.2.1_aarch64.tbz2  -C rootfs/
root@richard-VMBox:/home/richard/Desktop/example# du -sh rootfs/
3.6G    rootfs/    ####The rootfs directory total size is 3.6G. 
List of each sub-directories size.
root@richard-VMBox:/home/richard/Desktop/example/rootfs# du -sh */
12M     bin/
80K     boot/
4.0K    dev/
12M     etc/
4.0K    home/
353M    lib/
4.0K    media/
4.0K    mnt/
4.0K    opt/
4.0K    proc/
12K     root/
132K    run/
11M     sbin/
4.0K    snap/
4.0K    srv/
4.0K    sys/
4.0K    tmp/
3.1G    usr/
134M    var/
  • git-add-rootfs/
  • git commit-m"添加rootfs/dir">

root@richard-VMBox:/home/rerichard/Desktop/example#rm-rf-rootfs/
root@richard-VMBox:/home/richard/Desktop/example# git reset --hard HEAD
...Checking out files: 100% (113421/113421), done.
HEAD is now at a65e1fe81 add rootfs dir

root@richard-VMBox:/home/richard/Desktop/example# du -sh rootfs/
3.8G    rootfs/           ###File size is bigger.
root@richard-VMBox:/home/richard/Desktop/example/rootfs# du -sh */
12M     bin/
80K     boot/
4.0K    dev/
12M     etc/
4.0K    home/
335M    lib/
4.0K    media/
4.0K    mnt/
4.0K    opt/
4.0K    proc/
12K     root/
132K    run/
11M     sbin/
4.0K    snap/
4.0K    srv/
4.0K    sys/
4.0K    tmp/
3.3G    usr/
134M    var/    

通常,对整个文件系统进行版本控制不是一个好主意。像Git这样的版本控制工具往往在文本文件上效果最好,不建议存储大型二进制文件。Git也不支持你想要的东西,比如硬链接、用户和组权限,或者644和755之外的任何权限。

如果你真的想这样做,你可能需要研究像pristine-tar这样的东西,它存储文件以及这些文件和tarball本身之间的区别。

您看到文件大小增加的原因是因为.git目录。当您将文件签入Git时,所有文件和目录的内容都被压缩存储在.git目录中。因此,额外的200MB可能来自所存储的数据。

最新更新