将 repo 之外的符号链接提交到 git

将 repo 之外的符号链接提交到 git

我有一个存储库,里面有各种配置文件的备份。我希望存储库只包含指向真实配置文件(存储库之外)的符号链接,这样一旦发生任何更改,我就不需要手动将配置复制到存储库。

当我尝试推送符号链接时,该文件在 git 或其他文件系统上自然无法读取。有没有办法强制 git 始终遵循链接并推送原始文件,或者还有其他方法吗?

答案1

我能想到两个解决方案:

反转符号链接的方向

将配置文件放入您的 Git 存储库,并创建指向该文件的符号链接作为实际使用的配置。

使用硬链接

如果 Git 存储库与配置位置位于同一个文件系统,则ln -s使用而不是ln来创建硬链接,以便使用的配置和 Git 工作目录文件引用同一个文件。

答案2

此答案基于此很棒的教程

诀窍是使用存储库。这样,你可以将点文件保留在它们所属的位置,同时使用 git 跟踪它们:

# Init repo
git init --bare ${HOME}/.config.git

# Create a config alias for interacting with this repo and
# add it to your .bashrc for convenience
echo "alias config='/usr/bin/git --git-dir=${HOME}/.config.git/ --work-tree=${HOME}'" >> ${HOME}/.bashrc && source ${HOME}/.bashrc

# Ignore all files except the ones you want to track
config config --local status.showUntrackedFiles no

# Start using your repo to track your dotfiles
config add ~/.bashrc ~/.vimrc ...

前往https://dotfiles.github.io/了解更多信息。

相关内容