Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git别名问题_Git_Alias - Fatal编程技术网

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有问题

A
strace-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
print
status
?可能与此问题有关?在我的道路上有什么想法会与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正在工作。