首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法硬链接gitconfig文件

无法硬链接gitconfig文件
EN

Stack Overflow用户
提问于 2012-08-03 06:16:58
回答 4查看 1.2K关注 0票数 7

我正在尝试创建一个git存储库来存储我所有的dotfile和config文件。我的想法是简单地创建到我关心的所有文件的硬链接,并将这些链接存储在它们自己的目录中,我可以将这些目录转换为存储库。

不过,我的~/.gitconfig文件遇到了一点小问题。似乎每当我运行'git config‘命令时,我创建的链接不再指向正确的位置,例如,存储库中的文件不再正确更新。

下面是一个使用shell和交互式ruby来确定文件链接状态的示例。

代码语言:javascript
复制
# 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文件的方式有关。有没有人知道为什么会发生这种情况,或者有什么创造性的解决办法?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-03 07:52:08

http://www.xxeo.com/archives/2010/02/16/dotfiles-in-git-finally-did-it.html的评论中尝试Eli Barzilay的解决方案

所以我终于找到了一个两者兼而有之的解决方案:将存储库放在一个子目录中,而不是符号链接,添加一个配置选项“core.worktree”作为您的主目录。现在,当您在您的主目录中时,您不在git代码库中(所以第一个问题已经解决了),并且您不需要像在第二个案例中那样处理脆弱的符号链接。你仍然有排除那些你不想版本化的路径的小麻烦(例如,“.git/info/exclude”技巧中的“*”),但这并不是新的。

票数 6
EN

Stack Overflow用户

发布于 2012-08-03 06:21:09

这是完全正常的,实际上也是覆盖配置文件的推荐方式。Git创建一个临时文件,写出配置,然后将新文件移到旧文件上。这样,即使Git中断,也不会得到不完整的配置文件(数据丢失)。

您可以随时编写脚本,将配置文件复制或链接到中央存储库。

票数 2
EN

Stack Overflow用户

发布于 2012-08-03 06:23:05

看看这个答案,也许会对你有所帮助:

https://stackoverflow.com/a/3731139/1431696

同时,你有没有考虑过反向链接呢?创建充满配置文件等的存储库,然后在您实际使用文件的位置,创建到“真正”文件的硬链接,该文件位于存储库中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11786623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档