如何以自定义 git 日志格式显示标签?

2024-01-08

情况

我正在使用 git log 和自定义--pretty:format:

 git --no-pager log --pretty=format:"%C(yellow)%h%Creset %s %Cgreen(%cr) %Cblue<%an>%Creset" -5

产生这样的输出

7224466 update version (4 days ago) <Xerus>
3f00703 improve stuff (9 days ago) <Xerus>

Problem

我还想查看提交的标签(如果它有任何关联),例如选项--decorate,但我在格式化文档中找不到任何关于标签的提及。


您可以使用%d or %D,正如在git 文档用于漂亮的格式设置 https://git-scm.com/docs/pretty-formats。它们将显示引用名称,即与相应提交关联的分支和标签的名称。

您可能想要使用小写 d,因为它会自动正确格式化 ref 以便在控制台中漂亮地显示,以及%C(auto),它会自动按照您习惯的方式为其着色。

将它们放在一起,您可以将命令修改为:

 git --no-pager log --pretty=format:"%C(auto)%h%d - %s %Cgreen(%cr) %Cblue<%an>%Creset" -5

这将导致这样的输出

a2b8f3c (HEAD -> master, origin/master) - refactor: rename variable snackbarTextCache (8 weeks ago) <Xerus>
51a90be (tag: dev116-51a90be) - Fix connect.sid instructions (3 months ago) <Xerus>
fc372c3 - Update dependencies (3 months ago) <Xerus>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以自定义 git 日志格式显示标签? 的相关文章

  • 解决方案具有位于解决方案文件夹外部的项目

    我尝试通过选择将我的解决方案添加到本地存储库File 添加到源代码管理 但我收到以下消息 源代码控制 Git当前解决方案包含位于解决方案文件夹外部的项目 这些项目不会在 Git 存储库中进行源代码控制 要将所有项目添加到单个 Git 存储库
  • 当 git 说它正在“解决增量”时,它在做什么?

    在存储库的第一次克隆期间 git 首先接收对象 然后花费大约相同的时间 解析增量 在克隆的这个阶段实际上发生了什么 的阶段git clone are 接收存储库数据库中所有对象的 pack 文件 为收到的包创建索引文件 查看头部修订版 显然
  • Git 提交到公共子模块(主分支)

    我有两个或更多项目 我们称它们为Foo项目 and 项目栏 有一些通用代码我放入了一个子模块 我的理解是 如果我从内部提交对子模块的更改Foo项目它将在一个超然的头脑中 只有所有Foo项目克隆人可以看到 master cd ProjectF
  • Git - “非单调索引”

    我正在本地电脑上克隆 git 存储库 在此过程中 该命令会输出大量以下错误消息 error non monotonic index git objects pack pack idx 例如 该消息保留在拉动或分支交换机上 但一切似乎都有效
  • Git 命令以编程方式将文件的一系列行添加到索引?

    我想要一个命令可以让我做类似的事情 git manual add some file txt 10 20 这相当于 git add p some file txt 并说y仅包含第 10 行到第 20 行的大块 是否有内部 git 命令可以让
  • Git分支切换不会改变代码文件夹文件

    这是后续this https stackoverflow com questions 9406651 code base for git master feature branch问题 我使用克隆了远程主项目文件夹git clone ema
  • 版本控制 rpm 规范文件

    我正在配置一台构建机器来为大量非常相似的项目生成 rpm 每个项目的规范文件在名称上以及有时在依赖项和其他属性上都略有不同 每个项目都有自己的 git 存储库 其中包含项目文件 这些规范文件仅存在并且实际上仅对构建系统本身有用 每个项目都可
  • 可以使用 git 项目并在 VS2013 中查看 TFS 工作项吗?

    所以我升级到了VS2013 希望能顺利进行所有开发 不过有一件事确实让我很恼火 我的团队使用 TFS 而我更喜欢 git 因此我使用 git tfs 来桥接两者以进行源代码控制 我们使用 TFS 工作项来跟踪错误和故事等 如果重要的话 我也
  • Git merge --squash 可以保留提交注释吗?

    有没有一种方法可以自动添加压缩后的所有提交注释mybranch执行时提交 git merge squash mybranch 这样单个提交包含所有提交注释的串联mybranch 我认为这就是 git merge squash 自动执行的操作
  • VS Code / Bitbucket / SSH - 权限被拒绝(公钥)

    我试图通过 ssh 从 vscode 访问 bitbucket 但总是得到权限被拒绝 公钥 SSH 密钥位于 ssh 公钥已正确设置在bitbucket settings security sshkeys 按键已经过测试并且可以工作 启动后
  • 如何给 Git 控制台着色?

    我最近看到gitWindows 中的控制台是彩色的 例如绿色表示添加 红色表示删除等 我如何为我的颜色上色git这样的控制台 为了安装它 我使用了以下命令 sudo apt get install git core As noted htt
  • 在大型团队中使用 git VS Mercurial 和 Xcode 进行 iOS 开发有何优缺点?

    我们希望在一个项目上一起工作 签出 签入文件 一些开发人员推荐 git 其他开发人员更喜欢 Mercurial 有没有人对这两者都有经验 并且能告诉我为什么我应该花时间在不与 Xcode 集成的 Mercurial 上 而不是只使用集成的
  • Git 从不同的存储库中提取分支

    我当前的存储库中只有几个文件 我想合并来自不同存储库的远程分支 从中拉出并合并一个分支github com username code git 分支装载机 然后从中拉出并合并一个分支github com username code git
  • 分支和文件夹的 gitolite 权限

    在 gitolite 我想要 developers能够推送到除以下之外的任何分支master I want user1能够推送到任何分支 包括master 除了不是某个目录master 我该怎么做呢 这应该解决以下两个问题 repo are
  • 尽管存在但未找到 Git https:// 存储库

    我在 github 上有一个私人仓库 它的位置被改变了 我尝试更换遥控器 但无法再按了 ls remote https github com xxxxx xxxxx git 给了我这个 远程 未找到存储库 致命 存储库 https gith
  • 是否可以在不从 git 克隆或拉取的情况下获取分支名称?

    我想获取 git 存储库的所有分支名称 目前 我克隆存储库 然后将它们获取到本地计算机上 这是低效的 因为我所需要的只是名称而不是其他 我想知道是否可以这样做 如果是这样 我可以使用什么命令 在本地 无需克隆 您可以键入 使用 gitls
  • Git fetch 在 for-each-ref 中不显示远程分支

    我有一个远程分支feature test2 我想把它拿过来 我跑 git fetch origin feature test2 我得到 From
  • 空提交的 Git 补丁

    我创建一个空提交 git commit allow empty m something important 有时它很有用 例如协调 2 个 或更多 不同的 git 树 然而 当我 git format patch 空提交被省略 因为它们不与
  • 如何在git中定义ESC字符?

    我想在 git 输出中使用着色 例如 git log decorate color 当我发出这个命令时 我得到的输出看起来像ESC 1 32m where ESC是反色的 在我看来 这是一个有效的转义序列 除了 033必须发送而不是字符E
  • 有没有办法显示 Visual Studio 执行的 Git 命令? [复制]

    这个问题在这里已经有答案了 在 Visual Studio Code 中 有一个 显示 Git 输出 菜单项 显示最近运行的 Git 命令 有关其外观的示例 请参阅3 35 在这个视频中 https code visualstudio co

随机推荐