如何查看 git 上创建多个文件的日期?

2024-01-11

我想查看指定目录上所有文件的 git 创建日期(添加它们的首次提交日期)。


我将把我的解决方案分成几个步骤。

获取存储库中所有文件的列表

$ git ls-files

这将返回存储库中所有文件的相对路径列表。

获取给定文件第一次提交的 SHA-1:

$ git rev-list HEAD <file> | tail -n 1

这将按时间倒序返回给定文件的所有无父提交的列表。最后一个是给定文件第一次提交的 SHA-1 哈希值。

您可以通过运行来验证这一点git log --raw <hash>。您应该看到类似以下内容:

commit <commit_hash>
Author: Susy Q <[email protected] /cdn-cgi/l/email-protection>
Date:   Wed Aug 24 12:36:34 2011 -0400

    Add new module 'example.py'

:000000 100644 0000000... <hash>... A  example.py

显示给定提交的日期

$ git show -s --format="%ci" <hash>

将所有内容整合到一个 bash 脚本中:

#!/bin/bash
for file in $(git ls-files)
do
    HASH=$(git rev-list HEAD "$file" | tail -n 1)
    DATE=$(git show -s --format="%ci" $HASH --)
    printf "%-35s %s\n  %s\n" "$file" $HASH: "$DATE"
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何查看 git 上创建多个文件的日期? 的相关文章

  • 来自 eclipse 的部分 git 提交 (egit)

    假设我有一个有 2 个更改的文件 如何使用 egit 只提交其中之一 命令行版本可以在以下位置找到this https stackoverflow com questions 1085162 commit only part of a fi
  • 如何使用 libgit2 创建空提交?

    我一直在寻找libgit2 C API 参考 https libgit2 org libgit2 但我不知道如何模仿git commit allow empty libgit2 是否有内置方法来创建空提交 如果没有 git 如何在底层创建一
  • 将 svn 存储库添加到现有的 git 存储库中?

    我知道你可以使用 git svn init 来跟踪 svn 存储库 但这是为了你想创建一个全新的存储库 我的情况是 我目前已经有一个现有的 git 存储库 并且希望通过将 svn 存储库设为我当前 git 存储库中的远程分支来跟踪 svn
  • 如何获取第一次提交的 Git diff?

    我创建了一个存储库 在其中创建了一个文件 在文件中放入了一些内容 然后提交了该文件 现在 我想查看该提交的差异 理想情况下应该显示添加的文件以及添加到其中的行 然而 git diff HEAD HEAD回报fatal ambiguous a
  • web2py git 集成 - localhost 和 pythonanywhere

    我完全不知道如何将 Github 集成到 web2py 中 我在 USB 上安装了 web2py任何地方的Python http www pythonanywhere com web2py概述文档chapter3http web2py co
  • Python 无法在 git bash 命令行中工作

    Python 不会在 git bash Windows 中运行 当我在命令行中输入 python 时 它会将我带到一个空行 而不会像在 Powershell 中一样显示它已输入 python 2 7 10 它没有给我错误消息 但 pytho
  • 主存储库和本地存储库在同一台机器上

    我是 Git 新手 我已经在 Linux 服务器中创建了一个主存储库 同一个服务器将由 5 组 每组 3 个用户 使用 我想为每个组创建一个本地存储库 小组成员又应该为每个人创建一个本地存储库 使用内容并将修改提交到小组的本地存储库 我该怎
  • 由于不存在大文件而导致 git Push 错误

    当尝试推送到 git 时 我不断得到相同的结果 Counting objects 78 done Delta compression using up to 4 threads Compressing objects 100 67 67 d
  • 本地git,推送到tfs远程repo

    我厌倦了向我的队友解释使用 DVCS 相对于 CVCS 的好处 他们中的一些人害怕学习曲线 另一些人则看不出任何原因 因为对他们来说 这都是一样的 就我个人而言 我对 TFS 及其问题感到非常厌倦 每当我需要进行一些小的 修复 时 我都必须
  • 无法将 git add origin git@anything 与新的 git 目录一起使用

    我有一个项目 我正在生成许多提交 因此它占用的空间正在快速增长 由于我有一个 gitlab 页面来推送提交 因此我决定最好删除本地 git 目录中的这些旧提交 因为我始终可以从 gitlab 获取它们 为此 我只需删除本地 git 目录 然
  • 为什么在 Eclipse 中对 Egit 管理的项目禁用合并工具?

    根据Egit 用户指南 http wiki eclipse org EGit User Guide Using Merge Tool 要使用合并工具 应右键单击存在合并冲突的资源 然后选择Team gt 合并工具 但是 当我执行此操作时 合
  • 在 GitHub 上执行拉取请求时避免不需要的合并提交和其他提交

    我在 Github 上分叉了一个项目 令远程上游为upstream我的远程存储库是origin 我当地的master分支设置为跟踪远程master分支 然后我在本地添加了一些东西master 时不时与上游汇合 直到今天我想发出pull re
  • Git 在推送代码时返回错误 403 [重复]

    这个问题在这里已经有答案了 一切都工作正常 直到我创建了一个新的 GitHub 帐户 当我尝试使用新帐户第一次将代码推送到 github 服务器时 出现以下错误 remote Permission to NEW USER NEW REPO
  • Git 中的合并冲突是由什么构成的?

    git 如何确定特定合并存在冲突以及冲突是什么 我的猜测是这样的 如果正在合并的两个提交有一个共同的父提交 并且如果它们都更改了父提交的 X 行 那就是冲突 让我的理解变得复杂的是 更改 X 行 可能意味着用几行新行替换它 但这仍然显示为一
  • 通过链接进入 git-repo,无需冗长的对话框

    In a directory I have symbolic links into a git administered directory all under Linux Every time I want to e dit such a
  • 如何使用 vim 作为“git show”编辑器?

    全部如所述如何使用 vim 作为 git log 编辑器 https stackoverflow com questions 16666009 how do i use vim as git log editor不适用于 git show
  • gitlab 上的权限被拒绝(公钥)

    我的问题是我无法从 GitLab 推送或获取 不过 我可以克隆 通过 HTTP 或通过 SSH 当我尝试推送时出现此错误 权限被拒绝 公钥 致命 无法从远程存储库读取 从我看过的所有线程中 这是我所做的 在我的计算机上设置 SSH 密钥并将
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • 如何使用 GitHub API 一次检索多个用户?

    我能够获取单个用户 或自某个时间戳以来创建的所有用户 或者与 GitHub API 进行某些搜索匹配的位置 https developer github com v3 users get a single user https develo
  • 致命:无法将 HEAD 解析为有效引用

    我正进入 状态fatal Failed to resolve HEAD as a valid ref 每当我尝试承诺时 我努力了 echo ref refs heads master gt git HEAD 但它不起作用 也尝试过 git

随机推荐

  • 是否可以在 Windows 7 上构建 WinRT 应用程序?

    使用 Visual Studio 11 是否可以在 Windows 7 上构建 WinRT 应用程序 不 WinRT 仅适用于 Windows 8 据我所知 目前还没有任何消息表明它们将在 Win7 中提供 在 BUILD 上 他们特别表示
  • 如何在Hibernate中设置只读列?

    我不知道如何在 Hibernate 中强制只读列 我想将 idgroup 设置为只读列 即使我设置了insertable false and updatable false 在 hibernate SQL 中我可以读到 Hibernate
  • Firebird 全局临时表(GTT),触摸其他表吗?

    我有一个 Firebird 数据库 v 2 5 由于失去支持 我不允许在数据库中创建过程 视图或表 我的观点太长了 Too many Contexts of Relation Procedure Views Maximum allowed
  • 将 WebGL 非连续线渲染为单个对象

    我有多个 WebGL 线要渲染 它们都具有相同的渲染风格 因此 为了提高性能 我想在一次绘制调用中将它们全部渲染为单个对象 但问题是这些线路并不全部相互连接 请参阅此处的示例 http jsfiddle net b6jgS 6 http j
  • 在 C++ 中打包嵌套结构

    使用 Visual Studio 2017 以下给出 struct AAA 15 bytes double d short s char a1 char a2 char a3 char s4 char s5 struct BBB AAA d
  • 为什么异常处理不好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Google 的 Go 语言没有例外作为设计选择 而 Linux 名人 Linus 则称例外为垃圾 为什么 异常使编写代码变得非常容易 其中抛出
  • 如何在 C# 中获取下一个(或上一个)枚举值

    我有一个枚举 其定义如下 public enum eRat A 0 B 3 C 5 D 8 所以给定值eRat B 我想要得到下一个 即eRat C 我看到的解决方案是 没有范围检查 Array a Enum GetValues typeo
  • 如何使用 Salt Stack 执行多个命令?

    我尝试添加 mypack pkg installed pkgs mercurial git cmd run name mkdir p opt mypack cmd run hg pull u R opt mypack hg clone R
  • 为什么 FileInfo 显示额外的文件扩展名?

    我在为下载器创建文件下载列表时遇到问题 并且收到无法解释的 文件不存在 返回 我的 avi 文件返回 但 exe 和 txt 文件不存在 现在 通过拉入整个目录并检查文件内容 我发现我的 exe 文件显示 exe exe 我的 txt 文件
  • 检测 gtk.treeview 中的列何时调整大小

    当列的大小发生变化时 我可以捕获什么信号来检测gtk TreeView 我似乎无法在文档中找到它 gtk TreeViewColumn http library gnome org devel pygtk stable class gtkt
  • aarch64 是否有不可缓存(=缓存旁路)加载或存储指令?

    在sparc架构中 有一个ASI 地址空间指示符 被传递给加载 存储指令 因此如果ASI为0x20 则像IO访问一样绕过缓存 即使内存范围在页表中设置为可缓存 缓存也会被绕过 这有时非常方便 例如使用变量在核心之间同步时等 aarch64架
  • 用 R 绘制漂亮的饼图

    假设我有这个简单的数据 mydata lt data frame group c A B 0 AB FR c 20 32 32 16 如果我想从此数据框创建饼图 我可以这样做 with mydata pie FR labels paste0
  • 如何在rmarkdown上添加水印图片?

    我正在搜索并尝试将图像作为水印添加到 rmarkdown pdf 我正在使用render函数生成 PDF 并看到 usepackage draftwatermark 和这个问题 rmarkdown 中的水印 https stackoverf
  • 是否有适用于 .NET Compact Framework(Windows Mobile 6.1、SQLServerCE)的免费 ORM?

    看来我找到了一个不错的商业变体 http www llblgen com defaultgeneric aspx 但我正在寻找免费的 有人知道一些吗 怎么样OpenNETCF ORM http orm codeplex com 它是免费的
  • 如何在移动设备上强制桌面视图?

    如何使用 Bootstrap 在移动设备上强制显示桌面视图 我已经尝试修复viewport宽度为1024 但仍然不起作用 有什么建议吗 您只需要设置Viewport 而不是这个 响应式版本 看看这里 应该可以解决你的问题 SO bootst
  • 使用 Bash 将一大块文本回显到文件中 [重复]

    这个问题在这里已经有答案了 我需要运行一个 Bash 脚本 该脚本可以将 300 行 Groovy 脚本回显到 tmp 文件 最好的方法是什么 我当前的解决方法是将脚本文件放在网上并下载 使用heredoc语法将其他脚本嵌入到shell脚本
  • 为什么我的 rvm 不允许我切换到替代 Ruby?

    Ubuntu 已经安装了 Ruby 1 8 7 然后我安装了rvm并用它安装了Ruby 1 9 2 这是我想要使用的版本 但是 ruby v 始终返回 1 8 7 如何让 rvm 使用 Ruby 1 9 2 bxu vm bxu rvm u
  • 强类型枚举中范围解析背后的基本原理

    在强类型枚举中无条件要求显式范围解析背后的基本原理是什么 N2347 解释了与老式枚举的区别 老式枚举缺乏隐式转换 指定存储类型的能力 并且没有在周围范围内注入名称 如 C 03 它继承了 C 换句话说 写enum E1 a b c 正如C
  • 调用 LoadLibrary() 时静默捕获窗口错误弹出窗口

    调用 LoadLibrary 时是否可以静默捕获诸如 无法在动态链接库 xxx 中找到过程入口点 xxx 之类的错误弹出窗口 您可以通过调用来抑制错误弹出窗口设置错误模式 http msdn microsoft com en us libr
  • 如何查看 git 上创建多个文件的日期?

    我想查看指定目录上所有文件的 git 创建日期 添加它们的首次提交日期 我将把我的解决方案分成几个步骤 获取存储库中所有文件的列表 git ls files 这将返回存储库中所有文件的相对路径列表 获取给定文件第一次提交的 SHA 1 gi