From d590c61a10be530a51e93a07924dbf653ca38193 Mon Sep 17 00:00:00 2001 From: zhouzhongping Date: Fri, 29 Dec 2023 11:21:57 +0800 Subject: [PATCH] =?UTF-8?q?Git=EF=BC=9A=E5=B8=B8=E7=94=A8=E6=8A=80?= =?UTF-8?q?=E5=B7=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tech/getting-started/Git/进阶/常用技巧.md | 49 +++++++++++++++++++---- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/Tech/getting-started/Git/进阶/常用技巧.md b/Tech/getting-started/Git/进阶/常用技巧.md index fb890ed4..c52649c4 100644 --- a/Tech/getting-started/Git/进阶/常用技巧.md +++ b/Tech/getting-started/Git/进阶/常用技巧.md @@ -22,14 +22,14 @@ git config --system user.name "用户名" git config --system user.email "邮箱地址"` ``` -2. **用户级**(~/.gitconfig):使用 **--global** 来进行配置,该配置**对当前用户上所有的仓库有效**。 +1. **用户级**(~/.gitconfig):使用 **--global** 来进行配置,该配置**对当前用户上所有的仓库有效**。 ```shell git config --global user.name "用户名" git config --global user.email "邮箱地址" ``` -3. **目录级**(.git/config):使用 **--local** 来进行配置,**只对当前仓库生效。** +1. **目录级**(.git/config):使用 **--local** 来进行配置,**只对当前仓库生效。** ```shell git config --local user.name "用户名" @@ -44,7 +44,7 @@ git config --local user.email "邮箱地址" git config --global init.defaultBranch <分支名称> ``` -## 多平台换行符问题(LF or CRLF) +## 多平台换行符问题 (LF or CRLF) **文本文件所使用的换行符,在不同的系统平台上是不一样的。**UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是 0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF) 作为换行符。 @@ -117,11 +117,11 @@ ssb cv25519/812B586FD245B560 2021-09-14 [E] gpg --armor --export 4AEA00A342C24CA3 ``` -2. 平台添加 GPG 公钥配置 +1. 平台添加 GPG 公钥配置 将 GPG 公钥添加到 git 托管平台,例如 Github、Gitlab、Gitee 等。 -3. 本地 Git 仓库关联 GPG 密钥 +1. 本地 Git 仓库关联 GPG 密钥 ```shell // 3.1 列出 GPG 密钥 @@ -137,7 +137,7 @@ ssb cv25519/812B586FD245B560 2021-09-14 [E] git config --global user.signingkey 4AEA00A342C24CA3 ``` -4. 签名 Git commit +1. 签名 Git commit 运行 Git commit 命令时需要用到 `-S` 参数,如果不希望每次都要输入 `-S` 标志,可以配置默认签名。 @@ -149,7 +149,7 @@ git commit -S -m "your_commit_message" git config --global commit.gpgsign true ``` -5. 验证签名 +1. 验证签名 最后可以推送签名提交到 git 托管平台,验证是否签名成功! @@ -192,3 +192,38 @@ git merge --squash 这样,你就可以在使用 Git 进行操作时记住密码了。请注意,**使用 store 凭据存储方式会将密码明文保存在磁盘上**,所以请确保你的机器是安全的,并且不要在共享或公共设备上使用该功能。 +## 全局的 Git 日志美化 + +可以使用 `git config --global format.pretty` 设置一个全局的 Git 日志格式化语句。 + +```bash +git config --global format.pretty "%C(red)%h%C(reset) - %C(yellow)%d%C(reset) %s %C(green)(%cr) %C(bold blue)<%an>%C(reset)" +``` + +常用的配置选项及其描述: + +| 配置选项 | 描述 | +| ------------ | --------------------------------------------- | +| `%H` | 提交的完整哈希字符串 | +| `%h` | 提交的简短哈希字符串 | +| `%T` | 树的完整哈希字符串 | +| `%t` | 树的简短哈希字符串 | +| `%P` | 父节点的完整哈希字符串 | +| `%p` | 父节点的简短哈希字符串 | +| `%an` | 作者的名字 | +| `%ae` | 作者的电子邮件地址 | +| `%ad` | 作者修订日期(可以用 --date=选项定制格式) | +| `%ar` | 作者修订日期,相对格式(例如,“2 weeks ago”) | +| `%cn` | 提交者的名字 | +| `%ce` | 提交者的电子邮件地址 | +| `%cd` | 提交日期 | +| `%cr` | 提交日期,相对格式 | +| `%s` | 提交信息标题 | +| `%b` | 提交信息正文 | +| `%Cred` | 文字颜色为红色 | +| `%Cgreen` | 文字颜色为绿色 | +| `%Cblue` | 文字颜色为蓝色 | +| `%Creset` | 重置前面设置的颜色 | +| `%C(yellow)` | 文字颜色为黄色 | +| `%d` | 修饰(比如分支名,标签名) | +| `%D` | 修饰的完整列表 |