常用的.gitconfig 配置
背景
每次重新开始一个新电脑环境都必须配置一下,总结了下面长用的git别名。
[alias]s = statusci = commitco = checkoutb = branchm = mergef = fetch# 经常使用 git remote -v 产看仓库 URL,故设置remote别名r = remoterf = remote update origin --prune# p 就不表示 pull 了,很少用 pull,都被上面的 rf 替代了,况且还可以用 fetch+merge 替代,再不济输入全称p = pushrs = restore# 【注意】在 Windows 里不支持 %-m 和 %-d 带有减号的,macos支持,为了通用性,这里删除掉# 只显示当前分支的 commit(如要还时区和星期几,%z 和 %a)# 加上 --graph 能看到当前分支Git 会以 ASCII 图形(如 *, |, /, \ 等字符)显示分支和合并的拓扑结构,但是注意依然是仅仅列出当前分支的提交记录,移除掉之后会非常整齐,但也丧失# 加上 onlyCurGr 表示当前分支且显示graph,onlyCur 表示仅仅显示当前分支但无图形lo = log --pretty=format:'%C(green)[%h] %C(yellow)[%ad]%C(reset) onlyCurGr %C(red){%an} %C(bold black)%s %C(blue)%d' --date=format:'%Y/%m/%d %H:%M:%S' --graphl = log --pretty=format:'%C(green)[%h] %C(yellow)[%ad]%C(reset) onlyCur %C(red){%an} %C(bold black)%s %C(blue)%d' --date=format:'%Y/%m/%d %H:%M:%S'# 展示所有分支的 commit(如要还时区和星期几,%z 和 %a),加上 all-BR 表示所有分支的提交l2 = log --graph --all --oneline --decorate --pretty=format:'%C(green)%h %C(yellow)[%ad]%C(reset) all-BR %C(red){%an} %C(bold black)%s %C(blue)%d' --date=format:'%Y/%m/%d %H:%M:%S'# 【配置格式相关知识】# C(yellow) 表示颜色,C 是 Color,cyan有点像蓝色的颜色# %Creset 这个表示重置颜色,重置颜色意思就是回到默认的颜色(一般是终端的前景色,前景色说白点就是字体颜色,一般是黑色或白色, 白底黑字或黑底白字等等)。想要用回终端的默认前景色就重置# %C(reset) 跟 %Creset 等价# %h 是短哈希值,7 位,如 0f23af4# %d 是引用装饰 (ref decorations),如 (HEAD -> main, origin/main, tag: v1.0)# %s 表示主题,即提交信息的第一行(如果提交信息带有换行,也只显示第一行)。前后有个空格,有空格就是实际会有个空格# %an 作者姓名;# %ar 作者时间(author date),说人话就是何时提交的,是一个相对时间,比如 “2 hours ago”。# %ad 作者时间,绝对时间。输出的时间格式会受到下面的[log]配置的影响# %ai 作者时间,ISO 8601 format,类似 2025-07-09 20:47:20 +0800# %z 时区,比如 +0800# %a 星期几,比如 Tue# %m 月份,始终显示两位数# %-m 月份,如果是单位数的月份显示为单位数【注意】在 Windows 里不支持 %-m 和 %-d 带有减号的# %d 日期,始终双位数# %-d 日期,如果是单位数的日期显示为单位数【注意】在 Windows 里不支持 %-m 和 %-d 带有减号的# %Y 年份,四位数# %H 小时,24 小时计时法# %M 分钟# %S 秒# --decorate 这个参数不加效果也一样,原因就是某个版本之后的 git 把它作为了默认值,继续保留着,已保证更好的兼容性# 配置日期,会影响到 git log 等一系列日期的格式显示(如需要配置时区和星期几,加上 %z %a)【注意】在 Windows 里不支持 %-m 和 %-d 带有减号的
[log]date = format:%Y/%m/%d %H:%M:%S