git alias
其实之前就用过一些 alias,比如说 git reflog show
就是 git log -g --abbrev-commit --pretty=oneline
的 alias,一般 alias 可以存储到 git 的 config 文件,repo 等级的在 .git
下,global 的一般在 ~/.gitconfig
或者 ~/.config/git/config
下,我的文件就在 ~/.gitconfig
下:
❯ cat ~/.gitconfig
[user]
email = XXX@YYY.ZZZ
name = GA
[core]
editor = code --wait
[diff]
tool = diffmerge
[difftool "diffmerge"]
cmd = /usr/local/bin/diffmerge \"$LOCAL\" \"$REMOTE\"
[merge]
tool = diffmerge
[mergetool "diffmerge"]
trustExitCode = true
cmd = /usr/local/bin/diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
设置 alias 的方法如下:
-
直接修改文件
[alias] s = status
❯ git s On branch main nothing to commit, working tree clean
-
从命令行修改
❯ git config --global alias.l log
终端的修改也会被保存到文件中去。
命令行中其他的内容也会被加到 alias 后面,如 设置了 cm = commit -m
,那么运行 git cm "commit messate"
会被处理成 git commit -m "commit messate"
。
下面会贴一些一些还挺有意思的 alias:
-
ls
以 short format 查看 commit 信息,包括 hash、message、作者、tag:
ls = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate
-
ll
查看修改的文件:
-
lds
查看 commit 时间:
-
ld
使用相对时间查看 commit:
-
…
我也在找比较好用的 alias(主要 regex 用的不是很熟),主要就是想找一些 diff ,或者是从 branch 当中获取名字加到 commit 里(这个应该研究一下 grep 的用法?)相关的功能了
reference
- Must Have Git Aliases: Advanced Examples
- Git Alias
- The Ultimate Git Alias Setup