【问题标题】:Version control of dotfiles with machine-specific changesets具有机器特定变更集的点文件的版本控制
【发布时间】:2013-03-18 14:38:47
【问题描述】:

我将点文件存储在 git 存储库中,但我确实对 .gitconfig 有不同的本地更改集(受版本控制) - 它可能是不同的环境(autocrlf true)或不同的用户名。

现在每次我结帐我去的回购:

git stash save && git pull && git stash apply

这对我来说似乎不是最佳做法。我应该如何在不同的机器上进行不同的本地更改集?什么是最干净和最明确的方式?还是我一开始就解决了错误的问题?

【问题讨论】:

  • 看看这个问题(来自我之前)我现在用 shell 脚本做的。 stackoverflow.com/questions/14364444/…
  • @Kent 我可以看到如何将其应用于常规 bash 配置,但我认为不能将相同的方法应用于.gitconfig...
  • 是否可以使用全局~/.gitconfig 文件进行通用设置,并使用存储库本地配置进行用户特定设置?
  • @AndrewMyers 我正在寻找对版本控制的~/.gitconfig 的机器特定更改,其中~ 是一个点文件存储库。我不认为更改机器上每个本地仓库的设置是非常可扩展的
  • @rosipov 这就是我想知道的。我的大多数存储库中都有一些不变的东西,偶尔会被存储库配置文件覆盖。不过,这听起来对你不起作用。

标签: git bash git-config dotfiles


【解决方案1】:

您可能希望将特定于主机的设置拆分为非跟踪文件。 include-statement 在 git>=1.7.10 中可用。

以下内容可以解决问题:

 [include]
 path = ~/.gitconfig.local

我猜,真正漂亮的应该是这样的:

 [include]
 path = ~/.gitconfig.${HOSTNAME}.local

然后在存储库中同时跟踪.gitconfig.foo.local.gitconfig.bar.local,但前者在主机foo 上使用,后者在主机bar 上使用。不幸的是,目前不支持变量扩展。


或者,您可以将 GIT_CONFIG 环境变量设置为 .bash_profile/.profile/.bashrc 中的系统特定值


最后,git 使用${prefix}/etc/gitconfig 进行主机范围的配置,也许你可以将它用于主机范围的配置。

【讨论】:

    猜你喜欢
    • 2012-01-08
    • 2011-08-12
    • 2012-09-19
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多