我的.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%%HOMEPATH
是P:
,当然,新的别名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文件中?