我已经下载了一个tar文件,它是Linux-Sample-Root-Filesystem并解压缩到一个目录中。我想在该目录上使用git版本控制,但不知何故文件大小不正确。
目录的原始大小为3.6G,然后使用git控制目录(添加和提交git),但是在检出HEAD后变为3.8G。
我也尝试git-lfs(大文件存储),它不起作用。
我应该如何使用git来控制这样的Linux-Sample-Root-Filesystem目录? 任何信息,我将非常感谢您的帮助。
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/
root@richard-VMBox:/home/richard/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/
答案 0 :(得分:1)
通常,对整个文件系统进行版本控制不是一个好主意。像Git这样的版本控制工具通常在文本文件上效果最好,建议不要存储较大的二进制文件。 Git还不支持您可能想要的功能,例如硬链接,用户和组权限,或644和755以外的任何权限。
如果您确实想执行此操作,则可能需要查看pristine-tar
之类的东西,它存储文件以及这些文件与tarball本身之间的差异。
您看到文件大小增加的原因是由于.git
目录。当您将文件检入Git时,所有文件和目录的内容都存储在.git
目录中压缩。结果,额外的200 MB可能来自于所存储的数据。