如何使用 git 跟踪 $HOME

Fra*_*sco 10 version-control git home-folder

我想用 git 跟踪我的 $HOME 目录。我在其他子目录(例如 $HOME/projects/repo_1 等)中有许多其他 git repos,它们不应该被跟踪,因为它们已经是。

我找到了git-home-history,但从档案中可以看出该项目不再积极开发。

你推荐什么方法?ghh够成熟吗?

我在 Mac 上,但我也对跨平台解决方案感兴趣。

谢谢

ps:我看过但没有找到重复的,如果已经讨论过,请指出。

int*_*ted 5

我已经使用 git 这样做了一段时间。我不跟踪整个主目录,只跟踪我正在积极更改的部分。这包括我的 home/bin 目录,其中包含许多小脚本、我的 .vim 目录和其他目录中的一些较大的项目。还有一些终端和 openbox 的配置,以及各种其他应用程序,添加到了 repo 中。

这很有效,因为所有这些东西都有相同的权限集,我不关心原始时间戳。到了我打算使用git filter-branch. 这有点棘手,因为不同子目录中的文件之间存在相互依赖关系(例如,某些 .vim 脚本可能会从我的 bin 目录中调用脚本……这不是一个很好的例子,但希望你明白这一点)。

我还没有找到任何更全面的解决方案,但也没有真正研究过任何解决方案,包括 git-home-history。将整个主目录置于修订控制之下似乎非常复杂,并且会有很多变量。例如,如果您将您的 Firefox 配置文件置于修订控制之下,您最终会堆积大量的二进制差异。还有一些东西,比如 ssh 密钥,丢失比复制好。

如果您确实想跟踪权限(除了 git 已经跟踪的可执行位之外),显然有一个钩子可以做到这一点。在这个 serverfault thread 中提到了它。