配置一个高效快速的Git环境
可以直接修改~/.gitconfig
文件,也可以用命令配置一个可以实际使用的高效的Git环境。
username and email
这两项是必须的。
git config --global user.name gituser
git config --global user.email email@git.com
or
[user]
name = gituser
email = email@git.com
editor
git config --global core.editor "code -n -w"
or
[core]
editor = /usr/bin/code -n -w
指定外部编辑器用于编辑多行commit,比如vscode。
-n(new)
打开新窗口编辑commit-w(wait)
使git等待用户退出编辑器后才继续执行,以免执行git commit
之后出现Aborting commit due to empty commit message.
的错误
difftool and mergetool
using meld
, for ubuntu:
sudo apt install meld
git config --global diff.tool meld
git config --global merge.tool meld
git config --global mergetool.keepBackup false
or
[diff]
tool = meld
[merge]
tool = meld
[mergetool]
keepBackup = false
keepBackup = false
成功合并后可以自动删除备份文件。
alias
Git命令别名,更高效更快速更专业...a-ha......
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st "status --short"
- 以
co
作为checkout
的别名,以此类推 st
作为status --short
的别名,输出信息更精简(虽然不符合linux命令越短事越大的风格)
配置文件如下:
[alias]
br = branch
brd = branch -d
ck = checkout
ckb = checkout -b
ckf = checkout --
cm = commit
cmm = commit -m
df = diff
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
last = log -1 HEAD
mg = merge
ss = stash
st = status --short
stt = status
unstage = reset HEAD --
进一步,在linux的别名文件~/.bash_aliases
中定义如下别名,这样可以更快的执行命令:
# git
alias gg='gitg' # gitg
alias gadd='git add'
alias gbr='git br' # branch
alias gbrd='git brd' # branch -d
alias gck='git ck' # checkout
alias gckb='git ckb' # checkout -b
alias gckf='git ckf' # checkout --
alias gcm='git cm' # commit
alias gcmm='git cmm' # commit -m
alias gdf='git df' # diff
alias gdfa='git diffall' # git-diffall
alias gdfah='git diffall HEAD' # git-diffall
alias gdfal='git diffall HEAD HEAD^1'
alias glg='git lg' # colorful oneline git log
alias glast='git last' # log -1
alias gmg='git mg' # merge
alias gss='git ss' # stash
alias gst='git st' # status --short
alias gstt='git stt' # status