基本上,您只需要向~/.gitconfig
[alias]
st = status
ci = commit -v
或者,您可以使用 git config alias 命令:
$ git config --global alias.st status
在 UNIX 上,如果别名有空格,请使用单引号:
$ git config --global alias.ci 'commit -v'
在 Windows 上,如果别名包含空格或命令行参数,请使用双引号:
c:\dev> git config --global alias.ci "commit -v"
alias 命令甚至接受函数作为参数。看看别名。
正如其他人所说,添加 git 别名的适当方法是通过编辑~/.gitconfig
或使用.gitconfig
git config --global alias.<alias> <git-command>
命令
~/.gitconfig
文件的别名部分的副本:
[alias]
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD
另外,如果您使用的是 bash,我建议通过将git-completion.bash
复制到主目录并从~/.bashrc
采购来设置 bash 的完成。 (我相信我是从Pro Git 的在线书中学到的。)在 Mac OS X 上,我使用以下命令完成了此操作:
# Copy git-completion.bash to home directory
cp usr/local/git/contrib/completion/git-completion.bash ~/
# Add the following lines to ~/.bashrc
if [ -x /usr/local/git/bin/git ]; then
source ~/.git-completion.bash
fi
注意: bash 完成不仅适用于标准 git 命令,而且适用于您的 git 别名。
最后,为减少击键次数,我在~/.bash_aliases
文件中添加了以下内容,该文件来自~/.bashrc
:
alias gst='git status'
alias gl='git pull'
alias gp='git push'
alias gd='git diff | mate'
alias gau='git add --update'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gcot='git checkout -t'
alias gcotb='git checkout --track -b'
alias glog='git log'
alias glogp='git log --pretty=format:"%h %s" --graph'
我认为最有用的 gitconfig 是这样的,我们总是在 git 中使用 20%的功能,您可以尝试使用 “g ll”,这很了不起,详细信息:
[user]
name = my name
email = [email protected]
[core]
editor = vi
[alias]
aa = add --all
bv = branch -vv
ba = branch -ra
bd = branch -d
ca = commit --amend
cb = checkout -b
cm = commit -a --amend -C HEAD
ci = commit -a -v
co = checkout
di = diff
ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
ld = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short --graph
ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
mm = merge --no-ff
st = status --short --branch
tg = tag -a
pu = push --tags
un = reset --hard HEAD
uh = reset --hard HEAD^
[color]
diff = auto
status = auto
branch = auto
[branch]
autosetuprebase = always