我正在使用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是否必须以不同的方式设置?
答案 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 .'