避免初始完整目录提交,而是在修改文件之前将文件添加到 VCS?

避免初始完整目录提交,而是在修改文件之前将文件添加到 VCS?

我是否可以只在“修改”某个文件时将其放入某些 VCS(如 git/subversion/etc)中。因此,我首先放入未修改的版本,然后放入修改后的版本。我希望只在需要时将文件放入 VCS,而不是进行初始完整目录提交。这可能吗?

我想对我在 ubuntu 服务器上修改的一些配置文件进行版本控制,但我不想进行初始的完整目录提交,而是希望了解是否可以在我修改文件之前将文件添加到 VCS。我该如何实现呢?

我知道 etckeeper,但它仅适用于 /etc 并且它会进行初始完整目录提交?我为什么要这样做?我宁愿只保留我修改和手动管理的文件,而不是在每次安装时自动提交。

答案1

如果我理解正确的话,你想做的事情可以通过 Bazaar(也可能是其他版本控制系统)来实现。运行:

bzr init /path/to/dir
cd /path/to/dir
bzr ignore "*"
bzr ci -m "Initial commit."

这会将目录放入版本控制中,但不会版本化任何实际文件。稍后,当你想将特定文件添加到存储库时,请运行bzr add file

这是什么我已经完成了我的主目录

答案2

您需要在文件更改之前触发触发器。也就是在打开文件进行写入之前。如果这是可能的,那么通知才是解决之道。但从手册页,我只看到IN_OPEN,这对于目的来说似乎太通用了,所以我真的不知道如何让它发挥作用。

为什么你如此强烈反对提交完整目录?内容将以压缩文件形式存储,并且你的配置不应该太大。你还可以通过将部分配置文件标记为忽略来排除它们。或者你可以默认排除所有内容,仅包含特定文件。

相关内容