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

时间:2019-10-24 07:25:22

标签: git

我已经下载了一个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/
  • git add rootfs /
  • git commit -m“添加rootfs /目录”

 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/

1 个答案:

答案 0 :(得分:1)

通常,对整个文件系统进行版本控制不是一个好主意。像Git这样的版本控制工具通常在文本文件上效果最好,建议不要存储较大的二进制文件。 Git还不支持您可能想要的功能,例如硬链接,用户和组权限,或644和755以外的任何权限。

如果您确实想执行此操作,则可能需要查看pristine-tar之类的东西,它存储文件以及这些文件与tarball本身之间的差异。

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