多年来,我将我的主目录设置为git repo:
~ $ ls -a .git/ .vim/ code/ .bash_history .bashrc .gitconfig .gitignore .vimrc
我小心不要提交包含敏感信息的文件(例如我的私人ssh密钥).事实上,我忽略了除了几个文件之外的所有内容:
~ $ cat .gitignore # ignore everything * # except these !.bashrc !.gitignore !.vimrc
通常,我有几个项目code/
与他们自己的git回购:
~ $ ls -a code/ ctest/ cpptest/ dwm/ ~ $ ls -a code/ctest/ .git/ pointers pointers.c strings strings.c
我从未想过,直到一位同事对此表示担忧,这才是奇怪的.我通过这种方式设置我的主目录以某种方式滥用git?尝试使用我的点文件的程序是否会导致问题?
把你的dotfiles放在git中绝对不是疯狂的.我这样做,以便我可以轻松地在多台机器之间同步我的配置,我并不孤单.
也就是说,在你的主目录中有一个git存储库然后在它下面有其他的存储库是不好的形式.
有些人通过将他们的dotfiles repo签出到子目录中$HOME
然后将这些文件符号化为home来解决这个问题.(有一些脚本可以帮助管理这个:https://dotfiles.github.io.
就个人而言,我不喜欢符号链接,而是在一个非.git
(例如:)的目录中创建我的dotfiles repo .dotfiles.git
.您只需将.git
文件夹重命名为.dotfiles.git
.然后你可以:
git checkout --git-dir=.dotfiles.git checkout .profile
我不认为你的想法是从根本上滥用Git的概念.Git实际上是一个版本控制文件系统.从Git文档:
首先,如果还不清楚,Git基本上是一个内容可寻址的文件系统,其上面有一个VCS用户界面.
实际上,这已经通过类似的项目正式制作gitfs
,允许您安装git repo而不是克隆它.
我不确定你对dotfiles有什么问题.Git处理它们就像任何其他文件类型一样.同事也是如此.除非有具体的东西,否则它们可能没有根据.所有git真正做的是将.git文件夹添加到您的主目录.除非您正在运行git命令,否则此文件夹不会对您的其他文件执行任何操作.Git通常不会破坏事物,除非你非常具体地告诉它,所以这也不应该成为一个主要问题.
总而言之,你的想法并不疯狂.它正在利用Git设计的意图,不应该导致任何问题本身.