将〜置于源代码管理之下的提示

Modified on: Sat, 30 Jun 2018 10:40:30 +0800

我想把我的主目录(〜)放在源代码控制下(在这种情况下是git),因为我有很多设置文件(.gitconfig,.gitignore,.emacs等),我想随身携带跨机器,并在Git中使用它们会使它很好地检索它们。

我的主机是我的MacBook,以及OS X的设置方式,我想忽略很多文件夹(Documents,Downloads,.ssh)。还有一些文件夹已经在使用Git(.emacs.d)。

我的想法是将所有这些目录添加到我的.gitignore文件中,但这看起来很无聊,并且可能会导致一些不可预见的后果。我的下一步想法是定期将我想要存储的文件复制到家中的某个文件夹中,然后提交该文件夹。问题是我必须记得在提交之前移动它们。

有干净的方法吗?

最佳答案

我在git下有$HOME。我的.gitignore文件的第一行是

/*

其余的是使用!修饰符不要忽略的模式。第一行表示默认是忽略我的主目录中的所有文件。我想要版本控制的那些文件进入.gitignore,如下所示:

!/.gitignore !/.profile [...]

我有一个棘手的模式:

!/.ssh /.ssh/* !/.ssh/config

也就是说,我只想版本.ssh/config - 我不希望我的密钥和.ssh中的其他文件进入git。以上是我如何实现这一目标。

编辑:添加斜杠以开始所有路径。这使得忽略模式从存储库($ HOME)的顶部而不是任何地方匹配。例如,如果!lib/是一个模式(不要忽略lib目录中的所有内容)并添加文件.gitignore,之前是模式(!.gitignore)与之匹配。使用前导斜杠(!/.gitignore),它只会匹配我的主目录中的.gitignore,而不会匹配任何子目录。

我没有看到一个与我的忽略列表有实际区别的情况,但在我看来它在技术上更准确。


相关问答

添加新评论