Git无法识别别名



我的.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.

为什么别名没有被识别?

编辑:我用的是Windows 7。.gitconfig文件在C:Users[myuserID].gitconfig 奇怪的是,我刚刚创建了另一个别名:
git config --global alias.st status

然后我跑了

git st

工作。但是当我打开C:Users[myuserID].gitconfig时,没有列出新的别名。也许全局配置文件在别的地方?

C:Program Files (x86)Gitetcprofile中,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%%HOMEPATHP:,当然,新的别名st = status在那里的.gitconfig文件中,但不是co = commit -am,这很奇怪,因为当我昨天创建co别名时,我能够成功调用它。

查看git bash中$HOME的值

如果它指的是C:Users[myuserID]那么您的别名将被识别。

还要确保您使用的是最新的bash(不是来自msysgit的旧版本):将PortableGit-2.6.2-64-bit.7z.exe解压到您想要的任何地方,并将C:pathtoPortableGit-2.6.2-64-bit添加到您的路径中。

然后拨打C:pathtoPortableGit-2.6.2-64-bitgit-bash.exe,你就可以走了

windows上的Bash几乎意味着您正在使用cygwin,对吗?

如果是这样,那么cygwin版本的git期望全局。gitconfig文件放在cygwin用户的主目录,例如c:cygwinhomeusername.gitconfig或cygwin安装的任何地方(运行echo $HOME/.gitconfig以获得确切的值)。

编辑:在C:Program Files (x86)Git的git安装路径上更新,它显然不是cygwin git,但正如你所发现的,它也使用环境变量HOME作为存储全局。gitconfig的目标,尽管值不同。

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

最新更新