MS Windows上便携式git文件中父目录的相对路径'/etc/profile'



我如何在Git的/etc/profile文件中指定相对路径(具体来说,是调用Git .exe的父目录的相对路径)?


的背景

我非常喜欢让你的开发架构尽可能便携——这里的便携指的是"跨MS Windows机器的便携"而不是"跨操作系统的便携"。

同时,我开始喜欢上Git和它的MS Windows兄弟mysysgit,多亏了这篇文章,我也能够改变Git的默认HOME (C:/users/<username>)目录,以促进整个东西的真正可移植性(我的开发工具位于闪存驱动器上,我的便携式"HOME"目录也是如此)。

然而,我还没有完全做到:

  • 假设一个可移植Git的版本位于F:/apps/git/<gitversion>
  • 上面的文章建议把Git查找的HOME目录在上面目录的正下方( F:/apps/git/<gitversion>/home).
  • 然而,我希望它是在F:/apps/git/home
  • 因此,我想这样的东西可能会把我带到那里:HOME="/../home"HOME="../home",但是Git一直抱怨它找不到目录。所以我一定是做错了什么;-)

在以下代码下面(或在处理$HOME的任何代码之后)

if [ ! -d "$HOME" ]; then
    printf "n33[31mERROR: HOME directory '$HOME' doesn't exist!33[mnn"
    echo "This is an error which might be related to msysGit issue 108."
    echo "You might want to set the environment variable HOME explicitly."
    printf "nFalling back to 33[31m/ ($(cd / && pwd -W))33[m.nn"
    HOME=/
fi

指定路径,您需要相对于pwd

# normalize HOME to unix path
# HOME="/Home/Edward" relative to git-bash
HOME="$(pwd -W)/../home"
HOME="$(cd "$HOME" ; pwd)"

您可以在配置文件末尾添加cd $HOME以启动工作目录HOME

最新更新