我将配置文件(~/.bashrc
、~/.emacs
、~/emacs
等)存储在 git 中。我配置它的方式只是在主目录中添加一个 git 存储库。
我发现这种方法有一些问题:
git gui
需要很长时间,因为它会递归扫描整个主目录。- 我有时会不小心将文件添加到应该转到新存储库的配置存储库(我创建了一个新项目,比如在
~/projects/foo
中,忘了它还没有 git repo 初始化,并在foo
目录中执行git add bar.xyz
。这会导致一个文件被添加到配置 repo)。
我不确定将 git 存储库嵌套在已有 git 存储库的目录下是否明智,尽管我还没有遇到任何基本问题。
是否有更好的方法,或者这是人们在 git 中存储本地配置文件的标准方式?
最佳答案
我正在使用 git repo 来管理点文件。它包含:
- 目录
dotfiles
,其中包含我要跟踪的实际点文件/dotdirs。 一个 shell 脚本,用于在
$HOME
中创建dotfiles/.*
的符号链接(symbolic link),例如for dotfile in dotfiles/.* ; do case $(basename $dotfile) in .) ;; ..) ;; *) ln -sv $(realpath dotfile) $HOME/$(basename $dotfile) ;; esac done
当我在 dotfiles
中添加新内容(通常是将 dotfile 移动到 repo 中)或在新的干净的 $HOME
中时,脚本会手动运行。
repo 可以驻留在任何地方。我在我使用的每台主机上的 $HOME
中都有一个克隆。
通过这种方式,我有一个更小且非嵌套的工作树,可以有选择地跟踪点文件。
附注您可能想将 dotfiles/.config/*
之类的条目添加到 .gitignore
,它包含许多我不想跟踪的文件。
关于git - 管理本地配置文件的 git 存储库的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17082038/