我在运行Linux发行版的共享主机方案上使用git。由于它是共享的,我无权访问sudo
。该机器已安装/usr/bin/
安装git版本1.7.1
,但此版本在这一点上是史前。我已经使用make install
获得当前版本2.14.1
,这是~/git-2.14.1/
。正如this answer详细,我可以在命令行访问的git的正确版本,像这样:使用git快捷键换一个新版本,覆盖旧的
$ git --version
git version 2.14.1
这是一个简单的改变到$PATH
变量,在~/.bash_profile
,这样我就可以使用git就好了。
我在~/.gitconfig
文件的快捷方式,使git的更快,我使用的列表:
[alias]
co = checkout
st = status
ci = commit
... etc etc etc
当我调用这些(如git st
),我得到了错误版本的git的结果。它可以追溯到1.7.1
。如果我输入完整的命令(例如git status
),它将使用正确版本的git。
我也有我的~./bashrc
这些命令:
git() {
case "$*" in
st*) shift 1; command ~/git-2.14.1/git status "[email protected]" ;;
*) shift 1; command ~/git-2.14.1/git "[email protected]" ;;
esac
}
我把这种写作source
-ed。
我也曾尝试:
alias git="~/git-2.14.1/git"
无济于事。
有没有可以让我用我的首选版本的git使用这些快捷方式的解决方法?我想通过将指针重定向到不同的位置来隐藏配置文件的方法,但我不知道任何这样的指针的存在。
或者,有没有办法可以完全禁用以前版本的git而无需root
访问?
很好找'GIT_EXEC_PAT'(我在https://stackoverflow.com/a/43432410/6309中描述)。 +1 – VonC