如何使用 git 跟踪我的 Linux 发行版的变化?

tib*_*ibo 5 linux git mercurial debian dvcs

我正在试验一些 linux 配置并且我想跟踪我的更改?我当然不想将整个操作系统置于版本控制之下?

有没有办法(使用 git、mercurial 或任何 VCS)在不存储整个操作系统的情况下跟踪更改?

这是我的想象:

  1. 我做了一种 git init -> 所有文件的所有哈希都被存储,但不是文件的内容
  2. 我对文件系统进行了一些更改 -> git 检测到此文件的哈希值已更改
  3. 我提交 -> 文件的内容被存储(或者更好的是原始文件和差异被存储!我知道,这是不可能的......)

可能的?不可能的?变通办法?

编辑:我关心的只是最小化存储库的大小并拥有一个仅包含我的更改的存储库。将所有文件放在我的存储库中与我无关。例如,如果我推送到 github,我只希望它只包含已更改的文件。

jth*_*ill 1

您想要的是git update-index --info-only... --index-info,来自手册页:“ --info-only 用于注册文件而不将它们放入对象数据库中。这对于仅状态存储库很有用。”。 --index-info是其工业规模的表亲。

对要跟​​踪的文件执行此操作,write-tree将索引结构写入对象数据库commit-tree,然后update-ref更新分支。

要获取对象名称,请使用git hash-objectfilename.