我有~/bin/git-continue
and~/bin/git-abort
脚本,看起来像这样:
#!/bin/bash
repo_path=$(git rev-parse --git-dir)
if [ $? -ne 0 ]; then
exit $?
fi
if [ -d "${repo_path}/rebase-merge" ]; then
git rebase --continue
elif [ -d "${repo_path}/rebase-apply" ]; then
git rebase --continue
elif [ -f "${repo_path}/MERGE_HEAD" ]; then
git merge --continue
elif [ -f "${repo_path}/CHERRY_PICK_HEAD" ]; then
git cherry-pick --continue
elif [ -f "${repo_path}/REVERT_HEAD" ]; then
git revert --continue
else
echo "No something in progress?"
fi
我也把目录~/bin
来PATH
将这个标签来~/.bashrc
:
[[ ":$PATH:" != *":~/bin:"* ]] && PATH="~/bin:${PATH}"
export PATH
因此,我检查了它是否$ git-continue
正常,但是git continue
输出以下错误:git: 'continue' is not a git command. See 'git --help'.
我该如何寻找此错误的可能原因?
您的PATH
内容未展开~/bin
。您的shell知道什么~/
意思,但git
显然不知道。你应该包括完整路径~/bin
在您的PATH
。
如果您使用PATH=~/"bin:${PATH}"
而不是PATH="~/bin:${PATH}"
,则将发生波浪号扩展,并PATH
存储扩展的路径。但是:~/bin:
inside存在问题[[ ]]
。不引用波浪号不是唯一的条件(请参阅参考资料中的“波浪扩展” man 1 bash
),这使扩展:~/bin:
变得困难。而且,您需要对其进行扩展以针对中的完整路径进行测试PATH
。
更容易使用$HOME
:
[[ ":$PATH:" != *":$HOME/bin:"* ]] && PATH="$HOME/bin:${PATH}"
export PATH
$HOME
在将整个字符串分配给PATH
变量之前进行扩展。这意味着PATH
现在包含您的的完整路径$HOME/bin
。git
会明白这条路。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句