我正在尝试创建一个git仓库来存储所有的点文件和配置文件。我的想法是简单地创建硬链接到我关心的所有文件,并将这些链接存储在它们自己的目录中,以便我可以将其转换为仓库。
然而,我遇到了一个小问题,就是我的~/.gitconfig文件。似乎每当我运行'git config'命令时,我创建的链接就不再指向正确的位置,例如,仓库中的文件不再正确更新。
以下是一个示例,使用shell和交互式ruby来确定文件的链接状态。
我猜这与git编写.gitconfig文件的方式有关。有人知道为什么会发生这种情况吗?或者有没有创意的解决方法?
然而,我遇到了一个小问题,就是我的~/.gitconfig文件。似乎每当我运行'git config'命令时,我创建的链接就不再指向正确的位置,例如,仓库中的文件不再正确更新。
以下是一个示例,使用shell和交互式ruby来确定文件的链接状态。
# Create the link
$ ln .gitconfig .conf_files/gitconfig # Create the link
# The files are in fact linked
[1] pry(main)> File.identical?('.gitconfig', '.conf_files/gitconfig')
=> true
# Update the gitconfig file by running a 'git config' command
$ git config --global alias.last 'log -1 HEAD'
# The files are no longer linked.
[2] pry(main)> File.identical?('.gitconfig', '.conf_files/gitconfig')
=> false
我猜这与git编写.gitconfig文件的方式有关。有人知道为什么会发生这种情况吗?或者有没有创意的解决方法?
git config
命令时,git将简单地覆盖它,就像使用硬链接一样。 - Matt Garriottgit diff
显示了更新。然后你可以提交更改。@Dietrich,git永远不会知道软链接的存在。 git看到的是该文件的硬链接(可能是唯一的链接),但当git读取/.gitconfig或bash读取/.bashrc时,它们会跟随到仓库中的文件。 - William Pursell