Git别名问题
我试图通过将以下行添加到我的Git别名问题,git,alias,Git,Alias,我试图通过将以下行添加到我的~/.gitconfig文件来设置一些git别名: [alias] st = status ci = commit br = branch 当我在终端中运行这些命令时:git-st,我得到以下错误fatal:cannotexec'git-st':不是目录。我不知道问题出在哪里,我在网上查过,也找不到它为什么这样做。我正在使用Git1.7.1运行MacOS10.6.4。谁来帮帮我。如果我不明白它为什么这么做,我会发疯的!谢谢 正确地指出了,其中指出: 基本
~/.gitconfig
文件来设置一些git别名:
[alias]
st = status
ci = commit
br = branch
当我在终端中运行这些命令时:git-st
,我得到以下错误fatal:cannotexec'git-st':不是目录
。我不知道问题出在哪里,我在网上查过,也找不到它为什么这样做。我正在使用Git1.7.1运行MacOS10.6.4。谁来帮帮我。如果我不明白它为什么这么做,我会发疯的!谢谢 正确地指出了,其中指出:
基本上,我的路径中有/root/bin
,没有该目录的权限
有趣的是,Git1.6.3没有问题,但1.7.0和1.7.1有问题
Astrace-f-eexecve git st 2>&1 | grep EACC
可以帮助查看问题所在的目录:
[pid 6469] execve("/usr/games/bin/git-st", ["git-st"], [/* 72 vars */]) = -1 EACCES
(在本例中,/usr/games/bin/
)
要找到有问题的路径,请执行以下操作:
echo $PATH |tr ':' '\n' |xargs ls -ld
我的一个无效项实际上是一个NFS挂载目录,我没有访问该目录的权限,因为我没有通过Kerberos对公司NFS服务器进行身份验证。从
路径
中删除这一项修复了问题,“git stat
”(我的状态别名)现在可以工作了
注释中提到您可能没有可用的
strace
(如Solaris中所述,详见“”),在这种情况下是一个很好的等价物
dtruss -f -t execve git st 2>&1 | grep EACC
我也有这个问题,但有一个微妙的不同原因: 在我的例子中,路径包含的条目是文件而不是目录。对文件本身及其目录的权限正常。加载新终端后,该文件可以在任何地方运行。然而,git给出了相同的错误消息
以及在不正确权限的路径上查找文件夹时,我建议任何有此问题的人也检查路径仅指向文件夹而不是文件。
在安装基础后在OSX中发现相同的问题。BasHyPrxult>强>中的违规行是一个畸形的基础导出路径< /强>。我没有删除行末尾的/foundation,因此它指向的是一个二进制文件,而不是文件夹
刚刚修复了它,重新加载了终端,一切都恢复了正常。我也遇到了同样的问题,这是一个格式错误的.bash\u配置文件行 当我安装WP_CLI时,它在我的.bash_配置文件中添加了以下行
export PATH=/root/.wp-cli/bin:$PATH
我不得不做一点小小的改变。我用CentOs来解决这个问题
export PATH=$PATH:/root/.wp-cli/bin
这解决了我的问题。Git还有一个内置的alias命令 别名命令示例:
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global alias.lola 'log --graph --decorate --pretty=oneline --abbrev-commit --all'
git status
工作正常,对吗?是的。所有正常命令都可以正常工作,只是别名提示了错误。git config alias.st
printstatus
?可能与此问题有关?在我的道路上有什么想法会与git相冲突?我的路径中基本上有macports、RVM(Ruby版本管理器)、my Ruby安装的路径和~/bin的路径,这是我存储二进制文件的自定义文件夹。这就解决了它!我在我的~/.bash_配置文件中查找路径中的一个迷路项目,找到了它,删除了它,它成功了。谢谢!如果您没有strace:dtruss-f-t execve git st 2>&1
@PeterT:good point。我在答案中加入了它以提高可视性。我不确定是否可以在这个评论中添加一个示例,但我与OP有相同的问题,但当我运行上面给出的所有3个命令时,没有弹出任何内容<代码> $BASH——版本& git——版本GNU BASH,版本3.2.25(1)-版本(X86YE64-RADHAT-LIUX-GNU)版权(C)2005免费软件基金会,GIT版本1.7.12< /代码>固定。我运行了echo$PATH | tr':''\n'| xargs ls-ld
并将一个特定条目显示为“非目录”。我从路径中删除了它,然后运行source~/.bashrc
。现在git alias正在工作。