以特殊格式收集存储库中所有分支的列表 [Git]

2024-03-01

有没有办法收集存储库中的分支列表以及最后提交日期?

换句话说,我想将这样的内容打印到标准输出:

branch_name_1 date1
branch_name_2 date2
branch_name_3 date3

是否可以?

EDIT:我尝试使用以下步骤:

  1. git log --pretty=format:"%ad:%an:%d:%B" --date=short --branches

  2. git branch -a

  3. git ls-remote –heads

它们中的每一个都给我当前所在存储库的分支。 但现在我想检查是否可以从每个目录(到特定的存储库)运行该命令。还可以以特殊格式打印。仍在尝试了解如何获取上次提交的日期。

另一种编辑: 我想了一下,这个最好用git ls-remote –heads因为我想检查非本地存储库。我如何检查每个分支机构的日期git ls-remote –heads output?


如果你的Git版本>=2.13,你可以使用相同的git branch命令来执行此操作。

它有一个--format您可以使用该参数根据需要格式化输出。只需像这样运行它即可获得您想要的输出。

git branch --format='%(refname:short)%09%(committerdate)' --sort=-committerdate

您可以添加一些颜色以使其清晰。

git branch --format='%(color:bold green) %(refname:short) %(color:white) %(committerdate)' --sort=-committerdate

Output:

Development  Fri Jun 29 10:32:43 2018 +0530  
feat-2180  Fri Jun 8 18:01:36 2018 +0530  
master  Wed May 16 17:19:21 2018 +0530

这是它支持的字段名称列表 -https://github.com/git/git/blob/v2.17.0/ref-filter.c#L328 https://github.com/git/git/blob/v2.17.0/ref-filter.c#L328

=================================================== ===================

Edit:

正如您在评论中提到的;我认为您无法使用以下命令获取提交详细信息ls-remote独自指挥。刚刚查看了命令的源代码,除了引用和提交哈希之外,它似乎没有返回任何其他值。所以我认为不可能使用这个(如果我错了,请纠正我)。

https://github.com/git/git/blob/maint/builtin/ls-remote.c https://github.com/git/git/blob/maint/builtin/ls-remote.c

如果您愿意进行临时克隆,我建议创建一个 shell 脚本或某种脚本来进行克隆并获取摘要。

这是一个例子:

#!/usr/bin/env bash

REMOTE_URL=$1

git clone -q --depth 1 --bare --no-single-branch $REMOTE_URL /tmp/temp-git-clone
cd /tmp/temp-git-clone
git branch --format='%(color:bold green) %(refname:short) %(color:white) %(committerdate)' --sort=-committerdate
rm -rf /tmp/temp-git-clone

我在中使用了以下参数clone命令使其更快一点。

--depth 1= 只会得到最后一次提交

--bare= 创建一个裸存储库,这意味着不会有 工作目录,它不会复制文件。

--no-single-branch= 需要这个来告诉克隆命令获取所有 分支机构

如果运行脚本:./summary.sh <your repo url>

它将如您所期望的那样向您显示摘要!

希望能帮助到你 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以特殊格式收集存储库中所有分支的列表 [Git] 的相关文章

  • 如何忽略Git中以数字开头的文件?

    在某个文件夹中 我有名为foo jpg bar png等等 我想将它们保留在版本控制中 除了那些命名为1 baz png 2 zaz jpg等 因为它们实际上是生成的 我应该添加什么条目 gitignore 正则表达式如 0 9 似乎不起作
  • 使用 Dropbox 作为跨多台机器的 git 工作目录 - 提交不能完美同步

    首先 我想强调这个问题与在 Dropbox 上托管我的中央存储库无关 而且我对使用 git 还很陌生 我能找到的其他涉及 Dropbox 和 git 的问题都没有真正回答我的问题 它们要么是关于使用 Dropbox 托管您的存储库 要么是关
  • git stash 和编辑帅哥

    我完全喜欢git add p and git stash但我偶尔会遇到以下问题 该问题是通过以下命令序列重现的 git add p my file 然后我手动编辑大块 using e 因为 git 建议的分割不适合我 git stash k
  • Git:由于看似随机的合并,更改不断丢失

    我有一种感觉 这将是一个显而易见的答案 但我似乎无法解决 似乎发生的情况是 我向服务器提交 推送了一些更改 并且我的副本上的一切都显示正常 然后 另一位开发人员从同一分支的服务器中拉取 据我所知 据称看到了我的更改 进行一些修改 将它们提交
  • 如何在 VS Code 中仅提交跟踪文件?

    git status 显示以下三个信息 要提交的变更 分阶段变更 未暂存提交的更改 未暂存更改 未跟踪的文件 我曾经git commit a 它提交 1 和 2 然而VS代码Commit All提交 1 2 和 3 Commit Stage
  • 如何为新的 eclipse (neon) java 项目初始化 git

    我安装了 eclipse Neon 的新副本 并在一个新的闪亮工作区中创建了一个新的 gradle java 项目 将 git 添加到聚会中的最佳实践是什么 我读到在项目目录中初始化 git 是真是个坏主意 https stackoverf
  • Git 子模块在 Windows 上更新缓慢

    Git 子模块在 Windows 上似乎非常慢 为了测试性能 我创建了 3 个裸存储库并向它们提交了 3 条独立消息 未存储文件 然后 我将每个裸存储库作为子模块添加到新的 git 存储库中 并执行子模块更新 花费了 5 秒多的时间 当使用
  • Sourcetree 2.1.2.5 - 显示“未提交的更改”,但没有任何待处理的内容

    我有一个以前没有遇到过的问题 即使我没有什么可提交的 并尝试将我的分支重置为 Sourcetree 显示的最新提交Uncommitted changes 根据 Atlassian 论坛的说法 通常有两个原因 您的工作目录中有很多很多未暂存的
  • Git:man 命令不起作用

    在 Git Bash 中 他们给了我一个error用于返回 man command man git bash man command not found 我的 Git 版本 git version git version 2 18 0 wi
  • git 提交消息的 vim 语法高亮显示 - 自定义 commentchar

    如上所述在这个答案中 https stackoverflow com a 14931661 835945 从 Git 1 8 2 开始你可以使用core commentchar配置值将提交消息注释更改为默认值以外的其他内容 哈希标记或哈希符
  • 由于合并而不允许 git revert 但未给出 -m 选项

    我正在尝试使用 revert 命令恢复到 git 中的某个 哈希 号 我正在使用以下命令 git revert c14609d74eec3ccebafc73fa875ec58445471765 但是 我得到以下返回 错误 提交 c14609
  • git:如何查明某个分支是否有拉取请求?

    我在 git 分支上 有没有办法查看该分支是否有拉取请求 在这种特殊情况下 Atlassian Stash 用于管理拉取请求 当然我可以使用Stash的Web界面来搜索拉取请求 但我也可以仅使用 git 命令行工具从脚本执行此操作吗 Cor
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位
  • 克隆存储库而不将其设为原始远程存储库

    我正在从一台将被擦除的计算机上克隆一个 git 存储库 是否可以在不创建原始存储库的情况下克隆存储库origin master 或者我是否需要克隆它 然后删除远程分支 这是通过git remote rm origin Edit 存储库只有一
  • Git:如何使外部存储库和嵌入式存储库作为通用/独立存储库工作?

    我有一个大项目 比方说A repo 其中有一个子文件夹来自B repo 当我提交时 我会遇到如下警告A repo warning adding embedded git repository extractor annotator serv
  • 如何查看上次提交和现在之间发生了什么变化(进行一些更改后)

    与此类似question https stackoverflow com questions 1552340 how to list the file names only that changed between two commits但
  • Git 命令显示我对给定远程的权限

    同事可以从远程存储库获取数据 但不能推送到远程存储库 我怀疑他对遥控器只有读权限而没有写权限 我可以通过多种方法来检查这一点 但我想不出他可以在 git 中使用的方法 是否有 git 命令可以显示给定远程存储库的权限 No Git 本身不处
  • 具有单独 work_tree 的 Git 子模块

    我按照本页上的教程使通过 Git 部署我的网站变得简单 http toroid org ams git website howto http toroid org ams git website howto 到目前为止一切都很好 但是我最近
  • 为什么cherry-pick总是会导致合并冲突?

    我正在从发布分支中挑选特定的提交到我的本地工作副本中 每次我从发布分支中挑选一个提交时 我都会遇到必须解决的合并冲突 即使更改看起来微不足道 例如 const char kApplicationVersion Develop const c
  • `git rm --cached` 和 `git update-index --assume-unchanged` 之间的区别?

    我不明白之间的区别git rm cached and git update index assume unchanged 我知道git rm cached

随机推荐

  • 当我们开始旋转设备时以及旋转完成后将调用什么方法

    我想以编程方式检测 ipad 上的旋转过程 在这种情况下 我想在旋转开始时将布尔值设置为 yes 并在旋转结束后将其设置为 false 是否有任何方法在旋转开始和旋转结束时调用 来自苹果文档 在用户界面开始旋转之前发送到视图控制器 void
  • Flex 项目未包装在列方向容器中

    我想用flex direction column对于特定的布局 我通常使用标准flex direction row 所以我在使用时遇到了一些问题column 我不太知道如何控制它 并且在谷歌上没有找到任何有用的东西 我有一个常规的UL列表
  • 从 picasso 获取图像 uri?

    我有一个相当大的图像 URL 列表 我用它来加载ViewPager使用毕加索 我需要能够通过意图为这些图像提供共享功能 最终通过共享操作提供者 http developer android com guide topics ui actio
  • 从扫描的 GS1 类型条形码中提取信息

    我还想从扫描的 GS1 条形码消息中确定产品信息 例如描述 制造商和有效期 我怎样才能做到这一点 获取以 GS1 应用标识符标准格式存储数据的 GS1 类型条形码所表示的信息涉及两个过程 萃取通过扫描符号获得的 GS1 结构数据中包含的数据
  • CSS Jquery 垂直导航菜单与水平子菜单

    我想创建一个像这样的导航菜单 main item1 main item2 sub item1 sub item2 sub item3 main item3 main item4 我现在看到的是这样的 main item1 main item
  • 在 ASP.NET Boilerplate 中上传图像

    发布图片时 HttpContext Current Request is null 有什么简单的方法可以实现这一目标吗 我在用dropzone js在客户端 项目是带有 Web API ASP NET Core 2 0 模板的 Angula
  • yii2 在 gridview 中更改控制器操作

    我有 ItemController 并在 actionView 中放置了 Itempicture 的 gridview 我希望当我单击图标视图时 更新和删除 然后转到 ItempictureController 那么如何使用不同的控制器更改
  • Unicode - VARCHAR 和 NVARCHAR

    Creating Table Create Table Test1 id Varchar 8000 Inserting a record Insert into Test1 Values 我們的鋁製車架採用最新的合金材料所製成 不但外型輕巧
  • 在浏览器中呈现终端输出

    我有一个文件 其中包含用以下命令捕获的一堆终端日志screen公用事业 这是一个片段 A 0m 27m 24m J 34m 39m base 38 5 242mbase 39m 35m 39m 133 B K 1l gt 2004l A 0
  • 使用 jQuery 离开页面

    我只有一个可用的相对链接 但我想使用 jQuery 导航到这个相对链接 我只在 jQuery 中看到 AJAX 功能 我如何使用 jQuery 或纯 HTML JavaScript 来做到这一点 window location href s
  • Xcode 脚本上的相对路径

    我正在尝试使用 Xcode 运行脚本 但有几个问题 1 Xcode 说将脚本拖放到运行脚本部分 但这会创建一个绝对路径 Users Me Desktop Project etc 如果其他人或 CI 机器检查了代码 这显然是没有用的 如何指定
  • C++ 开关仅适用于整型的理由是什么? [复制]

    这个问题在这里已经有答案了 我觉得C 应该允许switch 超过任何可以比较的类型 而不仅仅是整数类型 看起来很奇怪的是 switch myEnum case myEnumValue1 break case myEnumValue1 bre
  • 创建一个基于查询字符串重定向或使用 .htaccess 的 PHP 页面

    我购买了重力形式 WordPress 插件 但遇到了一个问题 它无法根据用户的输入将用户重定向到特定的 URL 然而 一位开发人员确实告诉我 它具有重定向到页面并根据输入引入查询字符串的功能 我需要做的就是在页面上使用 PHP 根据查询字符
  • 在 Chrome 中选择相同文件时,FileReader onload 不会被触发

    FileReader onload当用 Chrome 选择同一个文件时 第二次不会被触发 而 FireFox 总是会被触发 function uploadCover input if input files input files 0 va
  • 什么是带有 activesupport time_zone 的“循环参数引用”错误?

    我是 ruby on Rails 的新手 我正在尝试创建一个教程 我执行的时候遇到问题rake db migrate hugo ubuntu pin board rake db migrate home hugo rvm gems ruby
  • 如何将构建过程参数放入TFS中的类别中?

    当我打开构建定义时 我可以看到参数被分成带有数字前缀的部分 例如1 基本 2 其他等 但是 当我编辑 xaml 时 没有指示这些类别的定义位置 有人可以提供一些关于它们在参数列表中的位置的指导吗 这是一个类似的问题 只是发布者询问了基于构建
  • 如何以react hook形式验证密码并确认密码?反应钩子形式是否有任何验证属性和消息来显示错误?

    实际上 我尝试验证表单并卡住以验证密码并确认密码 中是否有任何属性useForm在最新版本中验证密码并以反应钩子形式显示消息 请帮忙 实际上 我尝试验证表单并卡住以验证密码并确认密码 中是否有任何属性useForm在最新版本中验证密码并以反
  • 如何读取 csv django http 响应

    在视图中 我使用简单的 csv writer 创建一个完全由 csv 组成的 Django HttpResponse 对象 response HttpResponse content type text csv response Conte
  • 为什么vite中不能使用reflect-metadata

    import reflect metadata function validate target any let paramtypes Reflect getMetadata design paramtypes target console
  • 以特殊格式收集存储库中所有分支的列表 [Git]

    有没有办法收集存储库中的分支列表以及最后提交日期 换句话说 我想将这样的内容打印到标准输出 branch name 1 date1 branch name 2 date2 branch name 3 date3 是否可以 EDIT 我尝试使