Git无法识别别名

Git无法识别别名,git,bash,alias,Git,Bash,Alias,我的.gitconfig文件如下: [user] name = myname email = asdf@xyz.com [alias] co = commit -am 当我在Git Bash中时,我输入: git co "Macro changes" 我收到以下错误消息: git: 'co' is not a git command. 为什么无法识别别名 编辑:我正在运行Windows7。.gitconfig文件位于C:\Users\[myuserID]\.gitc

我的
.gitconfig
文件如下:

[user]
    name = myname
    email = asdf@xyz.com
[alias]
    co = commit -am
当我在Git Bash中时,我输入:

git co "Macro changes"
我收到以下错误消息:

git: 'co' is not a git command.
为什么无法识别别名

编辑:我正在运行Windows7。
.gitconfig
文件位于
C:\Users\[myuserID]\.gitconfig

奇怪的是,我刚刚创建了另一个别名:

git config --global alias.st status
然后我跑了

git st
这起作用了。但是当我打开
C:\Users\[myuserID]\.gitconfig
时,新的别名没有列在那里。那么,全局配置文件可能在其他地方

C:\ProgramFiles(x86)\Git\etc\profile
中,有
HOME
的定义:

# Set up USER's home directory
if [ -z "$HOME" -o ! -d "$HOME" ]; then
  HOME="$HOMEDRIVE$HOMEPATH"
  if [ -z "$HOME" -o ! -d "$HOME" ]; then
    HOME="$USERPROFILE"
  fi
fi

Windows命令提示符告诉我
%HOMEDRIVE%%HOMEPATH
p:\
,果然,新别名
st=status
.gitconfig
文件中,但不是
co=commit-am
,这很奇怪,因为我昨天创建
co
别名时,我成功地调用了它。

windows上的Bash几乎暗示您正在使用cygwin,对吗

如果是这样,那么cygwin版本的git希望全局.gitconfig文件放在cygwin用户的主目录中,例如
c:\cygwin\home\username\.gitconfig
或安装cygwin的任何位置(运行
echo$home/.gitconfig
,以获得准确的值)

编辑:随着git安装路径
C:\Program Files(x86)\git
的更新,它显然不是cygwin git,但正如您所了解的,它还使用环境变量HOME作为global.gitconfig的目标存储,尽管其值不同


关于我昨天创建协同别名的时间,我能够成功地调用它,是不是您将该别名添加到了存储库中的.gitconfig文件中?

只需在git bash中检查
$HOME
的值

如果它指的是
C:\Users\[myuserID]
,则会识别您的别名

另外,请确保您使用的是最新的bash():解压缩到您想要的任何位置,并将
C:\path\to\PortableGit-2.6.2-64位
添加到您的路径中


然后调用
C:\path\to\PortableGit-2.6.2-64位\git bash.exe
,就可以开始了。

尝试在p:\中编辑.gitconfig并重新启动git。在命令行上创建别名时,该别名将在该会话中被记住。命令行环境不会更新.gitconfig文件。@WalterA,编辑
P:\.gitconfig
允许我在后续git会话中运行该别名。我觉得奇怪的是,命令行昨天更新了
C:\
版本的
.gitconfig
,但今天它更新了
P:\
版本。您能检查(计算机图标/选择属性/高级)环境变量吗?HOMEDRIVE和HOMEPATH是在用户变量中还是在系统变量中设置的?您是否以相同的方式启动了两次命令行窗口(鼠标右键单击此处/开始运行cmd)?@WalterA,它们不是在用户或系统中设置的;在所有情况下,我都是使用右键单击->Git Bash启动命令行窗口的。我能看到的唯一解释是,当当前驱动器是P:today和C:today时,您在资源管理器中右键单击。在接下来的几天里,在创建命令行窗口后检查%HOMEDRIVE%的值;事实上,我的
C:\Users\[myuserID]\.bash\u历史记录(包含昨天的所有bash命令)包括
git config--global alias.co'commit-am'
。我昨天工作的repos中的
config
文件都没有别名,它只在
C:\Users\[myuserID]\.gitconfig
中。