Cygwin git没有拿起别名

时间:2013-01-07 21:10:21

标签: git cygwin msysgit

我正在使用Cygwin和默认附带的git(v1.7.9)(/ usr / bin / git)。我也安装了msysgit(v1.7.11.msysgit.0)。在我的.bashrc中,我做

export GIT_CONFIG=path_to_.gitconfig

当我运行git config --list时,我会收到.gitconfig的内容(相关摘录如下):

 ...
 alias.co=checkout
 alias.br=branch
 alias.ci=commit
 alias.st=status
 alias.logp=log --pretty=format:"%h - %an, %ar : %s"
 alias.logl=log --pretty=oneline
 alias.graph=log --pretty=format:"%h - %an : %s" --graph
 ...

但是,如果我运行git ci -m "this is a test",我会

 git: 'ci' is not a git command. See 'git --help'.

 Did you mean one of these?
    am
    citool
    commit
    config
    diff
    fsck
    gc
    init
    mv
    rm

cygwin附带的git是否必须以不同的方式设置?

2 个答案:

答案 0 :(得分:1)

想想,当别名新命令时,git会尝试写入它正在加载的.gitconfig文件,因此我运行了git config --global alias.testalias random_git_command。然后从我的主目录

 grepc -R testalias ./

我能够确定它正在使用~/.gitconfig。所以解决方案是在我的主目录中创建一个符号链接ln -s [path_to_desired_.gitconfig] .gitconfig

当我运行git config --list时,我仍然发现奇怪的是,我可以看到别名列表,但是当我尝试运行它们时,git不会将它们识别为有效的别名......

答案 1 :(得分:0)

我通过在.bash_profile中包含带alias命令的git别名来解决这个问题:

alias gch='git checkout'
alias br='git branch'
alias ci='git commit'
alias gs='git status'
alias gcd='git checkout develop'
alias gcm='git checkout master'
alias gph='git push'
alias gpl='git pull'
alias unstage='git reset HEAD --'
alias ga='git add -u .'