我想使用 github 备份和同步我的点文件。由于所有点文件默认位于 $home 中,我应该只将其放在git init
我的 $home 文件夹中吗?或者这是个坏主意?
在 $home 中执行之后git init
,我的想法是 .gitignore 所有非点文件和非点文件夹。
答案1
创建一个“裸” git 存储库:
cd $HOME
git init --bare .dotfiles
该
--bare
标志创建一个没有工作目录的存储库,从而无法编辑文件和提交该存储库中的更改。
创建一个别名来管理我们刚刚创建的存储库:
alias dotfiles="/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME"
忽略未被跟踪的文件git status
:
dotfiles config --local status.showUntrackedFiles no
添加您想要的文件:
dotfiles add .bash_aliases
犯罪。
dotfiles commit -m 'Add .bash_aliases'
现在使用存储库后,您的目录中bare
就没有目录了;因此在使用时不会引入任何意外。.git
$HOME
git
这就是我管理自己的方式dotfiles
。我第一次读到这里几年前。
答案2
这是个很好的做法,但你应该默认忽略所有文件,只添加你需要的文件。下面是一个例子.gitignore
:
# ignore all
*
# include dot files (including .gitignore)
!.*
您还可以通过在 .gitignore 末尾添加其他行来排除其他文件:
# ignore all
*
# include dot files (including .gitignore)
!.*
.ssh
答案3
如果您对于在主文件夹中拥有 git 存储库感到有点不安(我会这样),您可以考虑这个想法:
- 在其他地方创建一个 git 存储库,例如,
~/src/configuration
或者~/etc
任何您喜欢的地方。 - 将所有配置文件放入其中。
- 将您的配置文件(在正常路径)用符号链接替换到此存储库中。
- 也许可以编写一个简单的 shell 脚本来检查符号链接是否指向您期望的位置,然后在 cron 作业中每天运行它。
计算中的每个问题都可以通过额外的间接层来解决;-)
答案4
你可以看看雅德,它主要做这个,但我猜它更安全,设置可能更容易。我认为它一开始只是 git 的一个包装器(但它确实有更多功能),这意味着你可以使用通常的 git 命令替换git
(yadm
如 yadm add/clone/status 等)。
我与 yadm 没有任何关系,只是一个快乐的用户。