【问题标题】:Single Git install, multiple environments (msys, cygwin, SourceTree, etc.)单个 Git 安装,多个环境(msys、cygwin、SourceTree 等)
【发布时间】:2013-12-23 00:24:14
【问题描述】:

我已将 Git 安装到 Program Files (x86) 中。关于全局配置文件位置的标准答案是 C:\Users[username].gitconfig。但是,我正在使用多个环境,例如 MinGW/MSys、cygwin 甚至 Opscode Chef MSys。 Git 尊重每个 $HOME 设置并在不同位置查找 .gitconfig。

如何为 Git 配置定义真正固定的位置?

【问题讨论】:

标签: git windows


【解决方案1】:

您可以创建从真正的 Git 配置文件到您的各种工具预期的每个位置的符号链接。

  • 在 Cygwin 或 MSys 上,您应该能够使用 ln -s /path/to/real/config /file /path/to/expected/file/location
  • 对于 Windows 路径,您可能必须使用 the NTFS mklink command

我相信 SourceTree 能够使用自己的内部 Git 命令,或者安装在其他地方的命令。调整此设置也可能有所帮助。

【讨论】:

    【解决方案2】:

    我在我目前正在进行的项目中解决这个问题的方式如下:

    我的 *nix 环境在虚拟机上的 VM 下运行,我在这个 VM 中有我的项目的实际存储库,我用通常的嫌疑人设置了这个存储库,推送到 github、本地主机等。

    我的虚拟机中也安装了 samba,我通过 samba 导出了 repo 文件夹,这又显示在我正在运行虚拟机的 windows 主机下,在我的 windows 主机上我运行 TortoiseGit用于导出的文件夹,请参阅 .git 文件夹并按预期工作。

    我确实遇到的一件事是行尾。

    确保您的 git 配置已设置好,以便所有行尾都转换为单一类型(通常只是简单的换行符),当我第一次设置时,这真的让我很反感,因为我签入了一些来自 windows 的文件,我不知道我的编辑器已全部更改为 windows 行尾(代码 13,代码 10),然后当我后来从 VM 内部进行拉取时,我得到了很多我没想到的更改,其中转实际上导致我消除了一些早期的变化。

    让两个主人控制一个奴隶从来都不是一个特别好的主意,但只要你小心行事,它就可以工作。

    【讨论】:

    • 关于行尾的好点,虽然我从来没有让 Git 为我修改它们的运气。相反,我确保我的编辑器都配置为使用一种类型(通常是 Unix 风格)。
    • 是的,我花了一些时间才弄明白,但一旦我把它整理好并不管它,之后一切都很顺利。很长一段时间以来,我一直想知道谁一直在更改我没有碰过的文件,这一切的答案都在 .git 中的 git config 文件中:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2014-08-10
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    相关资源
    最近更新 更多