我如何在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 "n 33[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