2015-10-20 51 views
2

.gitconfig文件如下:混帳不承認別名

[user] 
    name = myname 
    email = [email protected] 
[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)\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%%HOMEPATHP:\,果然,新別名st = status處於.gitconfig文件存在,但不是co = commit -am,這很奇怪,因爲當我昨天創建了co別名時,我能夠成功地調用它。

+1

嘗試編輯P:\中的.gitconfig並重新啓動git。在命令行上創建別名時,會在該會話中記住它。命令行環境不會更新.gitconfig文件。 –

+0

@WalterA,編輯'P:\ .gitconfig'的確允許我在隨後的git會話中運行該別名。在我看來,命令行昨天更新了'.gitconfig'的'C:\'版本,但今天它更新了'P:\'版本,這似乎很奇怪。 – sigil

+0

你可以檢查(計算機圖標/選擇屬性/高級)環境變量嗎? HOMEDRIVE和HOMEPATH是否設置在USER或SYSTEM變量中?並且你是否以同樣的方式啓動了命令行窗口(右鍵bash-here/start-run cmd)? –

回答

1

窗戶上的撞擊幾乎意味着你正在使用cygwin,對吧?

如果是這樣,那麼cygwin版本的git需要將全局.gitconfig文件放置在cygwin用戶的主目錄,例如, c:\cygwin\home\username\.gitconfig或cygwin的安裝位置(運行echo $HOME/.gitconfig以獲取確切值)。

編輯:隨着C:\Program Files (x86)\Git Git的安裝路徑上的更新它顯然不是Cygwin的混帳,但正如你已經想通了,它也使用環境變量HOME爲目標,爲全球的.gitconfig的存儲空間,但用不同的值。

關於當我昨天創建別名時,我能夠成功地調用它,是否可以將該別名添加到存儲庫中的.gitconfig文件?

+0

我想到了這一點,但我記得當我創建別名時運行'git config --global';實際上,我的'C:\ Users \ [myuserID] \。bash_history'日誌(包含昨天的所有bash命令)包括'git config --global alias.co'commit -am''。而且我昨天在repos的'config'文件中都沒有這個別名,它只在'C:\ Users \ [myuserID] \。gitconfig'中。 – sigil

1

只需在你的git bash中檢查$HOME的值。

如果它指的是C:\Users\[myuserID],然後您的別名將被識別。

另外請確保您使用的是最新的bash(not the old one from msysgit):將您想要的任何地方解壓PortableGit-2.6.2-64-bit.7z.exe,並將C:\path\to\PortableGit-2.6.2-64-bit添加到您的路徑。

然後打電話C:\path\to\PortableGit-2.6.2-64-bit\git-bash.exe,你很好走。