【问题标题】:How to have multiple ~/.gitconfig instances under one user account?如何在一个用户帐户下拥有多个 ~/.gitconfig 实例?
【发布时间】:2014-06-16 19:56:52
【问题描述】:

我需要在我的系统上安装 git,其中 GitHub 和 TortoiseGit 都有自己独立的 ~/.gitconfig AKA global .gitconfig 文件。由于 git 的工作方式,似乎没有办法做到这一点?

基本上我需要 GitHub 默认查看一个 .gitconfig 文件,这与我的实际 GitHub 帐户的信息相同,然后 TortoiseGit 以某种方式默认为一个完全独立的 .gitconfig 文件,完全独立于 GitHubs 的 @987654325 @文件。

如果这可以通过其他方式实现,例如使用 TortoiseGit 替代品,那也可以,只要它的成本与 TortoiseGit 相同(免费)。

【问题讨论】:

  • 也许你可以解释一下你的实际目标。例如,您是否尝试在一台机器上同时进行个人和职业发展?
  • 这基本上就是它的要点。我想我的问题可以概括一点,试图忽略特定的 git 应用程序,并基本上改写为你怎么能有两个全局 .gitconfig 实例,它们根本不相互混合?使用 SVN 或不同的 VCS 提供程序来处理一种类型的工作,而 git 用于转到 GitHub 的工作显然是一种解决方案,但它并不理想。所以想看看如何用git做到这一点。我不介意解决任何其他问题,两个实例之间的零交互。
  • 这两个配置文件有什么区别?
  • @FatherTimeWarner,我假设您知道您可以通过省略 --global 标志来获得每个存储库的值?
  • @Chris,是的。但是,当您使用 Git Gui 打开 .git 文件并转到编辑 > 选项时,全局(所有存储库)用户名和电子邮件地址字段仍会填充其他作品信息。或者在 Git Bash 中打开 .git 文件并转到 $ git config --global --list 您也会看到其他工作区的信息。这就是我试图解决的问题,使其他工作区的信息不显示。

标签: git github version-control environment-variables tortoisegit


【解决方案1】:

最新版本的 git 将在读取 ~/.gitconfig 之前读取文件 $XDG_CONFIG_HOME/git/config - 请参阅 manpage of git-config。

您可以在 ~/project-bla/git/config 下进行单独的 git 配置,并在一个终端会话中运行 export XDG_CONFIG_HOME=~/project-bla/。然后该会话将始终使用该配置。请注意,~/.gitconfig 中的设置将覆盖这些设置,因此该文件应仅包含适用于任何地方的设置。

但是,这仅适用于命令行 git;我认为 TortoiseGit 没有这样的选择。


但是,最简单的解决方案是在特定于存储库的配置文件(mygitrepository1/.git/config 下)中配置所有内容。这些设置不会相互干扰。

唯一的缺点是您不能在某些(但不是所有)存储库之间共享设置 - ~/.gitconfig 中的设置适用于所有存储库,并且一个 repo 配置是only 用于该存储库。如果你想要一个用于 repos a、b、c 的配置和另一个用于 repos c、d、e 的配置,那么你需要像我上面概述的解决方案一样破解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2018-08-17
    • 2010-12-25
    • 1970-01-01
    • 2010-10-08
    • 2018-10-25
    • 2022-01-17
    相关资源
    最近更新 更多