git - 如何列出自特定日期以来未更改的所有文件?

2024-04-03

我正在尝试获取存储库中自特定日期以来未曾触及的文件列表。

我试图利用git log --before="X months ago" --name-only然后将该列表与git log --after="X months ago" --name-only但我不确定是否有更简单的方法?

或者有没有办法获取每个文件的 HEAD 提交日期并过滤列表?我不确定最好的方法是什么。


您可以迭代每个文件并显示其修改时间,即:

git ls-tree -r --name-only HEAD | while read filename; do
  echo "$(git log -1 --format="%ad" -- $filename) $filename"
done

这将产生如下输出:

Fri Dec 23 19:01:01 2011 +0000 Config
Fri Dec 23 19:01:01 2011 +0000 Makefile

PS: 您还可以使用:--format="%ai"(我的偏好)而不是 --format="%ad" 以获得更好的可排序时间戳。

With --format="%ai",输出将如下:

2015-05-03 21:47:26 -0500 v1/ansible/runner/lookup_plugins/consul_kv.py
2015-05-03 21:47:26 -0500 v1/ansible/runner/lookup_plugins/csvfile.py
2015-05-03 21:47:26 -0500 v1/ansible/runner/lookup_plugins/dict.py
2015-05-03 21:47:26 -0500 v1/ansible/runner/lookup_plugins/dig.py
2015-05-04 01:33:10 -0500 lib/ansible/plugins/filter/__init__.py
2015-05-04 01:33:10 -0500 lib/ansible/plugins/filter/mathstuff.py
2015-05-05 15:24:36 +0200 docs/man/man1/ansible-playbook.1
2015-05-05 15:24:36 +0200 docs/man/man1/ansible-pull.1
2015-05-07 12:22:08 +0100 docsite/rst/playbooks_tags.rst
2015-05-07 22:24:33 +0000 ISSUE_TEMPLATE.md
2015-05-07 23:56:33 -0500 lib/ansible/plugins/cache/redis.py
2015-05-08 13:49:10 -0700 test/units/playbook/test_block.py
2015-05-11 08:06:21 -0400 lib/ansible/module_utils/openstack.py
2015-05-11 22:56:56 -0400 docsite/rst/playbooks_roles.rst
2015-05-12 12:18:55 -0400 v1/ansible/utils/module_docs_fragments
2015-05-12 12:24:57 -0500 test/units/executor/test_play_iterator.py
2015-05-12 12:24:57 -0500 test/units/playbook/test_play.py
2015-05-13 11:04:12 -0700 test/integration/roles/test_bad_parsing/tasks/scenario1.yml
2015-05-14 12:24:36 +0200 docsite/rst/intro_patterns.rst
2015-05-16 15:45:01 -0500 test/units/template/test_safe_eval.py
2015-05-16 15:45:01 -0500 test/units/template/test_vars.py
2015-05-17 01:29:40 -0500 test/units/module_utils/__init__.py
2015-05-17 01:29:40 -0500 test/units/module_utils/test_database.py
2015-05-18 17:26:59 -0700 test/units/plugins/action/__init__.py
2015-05-18 17:26:59 -0700 test/units/plugins/cache/__init__.py
2015-05-18 17:26:59 -0700 test/units/plugins/cache/test_cache.py
2015-05-18 22:44:29 +0200 test/integration/roles/test_cs_firewall/tasks/main.yml
2015-05-19 08:58:27 -0400 test/integration/cloudstack.yml
2015-05-19 15:37:47 -0500 test/integration/roles/test_rax_scaling_group/files/test.txt
2015-05-19 15:37:47 -0500 test/integration/roles/test_rax_scaling_group/meta/main.yml
2015-05-21 12:24:41 -0700 test/integration/roles/test_uri/files/testserver.py
2015-05-23 21:37:12 +0200 test/units/inventory_test_data/group_vars/noparse/all.yml~
2015-05-23 21:37:12 +0200 test/units/inventory_test_data/group_vars/noparse/file.txt
2015-05-23 21:37:12 +0200 test/units/inventory_test_data/group_vars/parse/all.yml
2015-05-27 13:39:09 -0700 test/integration/roles/test_mysql_db/tasks/main.yml
2015-05-28 15:26:03 -0500 hacking/module_formatter.py
2015-05-28 15:26:03 -0500 v1/tests/inventory_test_data/simple_hosts
2015-05-28 15:26:03 -0500 v1/tests/TestInventory.py
2015-05-29 21:49:52 -0400 docsite/rst/guide_aws.rst
2015-05-30 11:35:55 +0200 lib/ansible/utils/module_docs_fragments/cloudstack.py
2015-05-31 23:15:28 -0400 test/integration/roles/prepare_win_tests/meta/main.yml
2015-05-31 23:16:45 -0400 test/integration/test_winrm.yml
2015-06-01 16:41:52 -0500 lib/ansible/parsing/yaml/dumper.py
2015-06-01 21:53:49 +0100 test/integration/roles/test_win_copy/tasks/main.yml
2015-06-02 11:43:35 -0700 packaging/rpm/ansible.spec
2015-06-02 23:39:57 -0400 lib/ansible/utils/path.py
2015-06-02 23:42:00 -0400 lib/ansible/plugins/lookup/password.py
2015-06-03 13:27:31 -0700 lib/ansible/plugins/inventory/__init__.py
2015-06-03 21:19:11 +0200 lib/ansible/module_utils/f5.py
2015-06-03 22:19:26 -0400 hacking/templates/rst.j2
2015-06-04 11:34:56 -0500 v1/ansible/utils/module_docs.py
2015-06-04 15:43:07 -0400 lib/ansible/executor/module_common.py
2015-06-05 07:25:37 -0400 test/integration/roles/test_failed_when/tasks/main.yml
2015-06-05 15:34:37 -0500 test/units/module_utils/test_basic.py
2015-06-06 09:13:14 -0500 lib/ansible/playbook/helpers.py
2015-06-08 19:32:44 -0400 docsite/rst/playbooks_intro.rst
2015-06-09 11:45:53 -0400 lib/ansible/plugins/action/package.py
2015-06-10 15:42:30 +0200 README.md
2015-06-11 13:03:25 -0400 test/units/mock/loader.py
2015-06-11 13:43:47 -0400 lib/ansible/plugins/lookup/file.py
2015-06-12 12:32:02 -0700 lib/ansible/plugins/lookup/url.py
2015-06-15 17:42:40 -0400 test/integration/roles/test_lookups/vars/main.yml
2015-06-16 11:00:03 -0400 docsite/_themes/srtd/layout.html
2015-06-16 14:20:34 +0000 v1/ansible/module_utils/powershell.ps1
2015-06-17 23:31:31 -0400 lib/ansible/plugins/connections/paramiko_ssh.py
2015-06-19 23:04:35 -0400 lib/ansible/template/vars.py
2015-06-21 01:24:35 -0400 lib/ansible/plugins/connections/local.py
2015-06-21 01:51:28 -0400 lib/ansible/plugins/shell/sh.py
2015-06-22 01:17:09 -0400 lib/ansible/playbook/block.py
2015-06-22 02:06:07 -0400 lib/ansible/inventory/group.py
2015-06-23 08:52:57 -0700 docsite/rst/quickstart.rst
2015-06-23 10:19:50 -0400 lib/ansible/playbook/role/include.py
2015-06-23 12:12:38 -0400 lib/ansible/plugins/connections/ssh.py
2015-06-23 13:00:32 -0700 docsite/rst/intro_configuration.rst
2015-06-23 20:48:13 -0400 docsite/rst/faq.rst
2015-06-24 01:00:22 -0700 lib/ansible/plugins/connections/chroot.py
2015-06-26 23:38:06 -0700 docsite/rst/test_strategies.rst
2015-06-27 00:58:03 -0400 lib/ansible/playbook/task.py
2015-06-27 01:01:08 -0400 lib/ansible/playbook/attribute.py
2015-06-28 00:30:27 -0400 lib/ansible/playbook/conditional.py
2015-06-29 11:13:17 -0700 docsite/rst/playbooks_best_practices.rst
2015-06-30 09:38:12 -0500 test/integration/roles/test_rax_cbs_attachments/tasks/main.yml
2015-06-30 09:38:12 -0500 test/integration/roles/test_rax_cbs/tasks/main.yml
2015-06-30 16:08:46 -0400 lib/ansible/playbook/playbook_include.py
2015-07-01 01:48:19 -0400 test/units/playbook/test_playbook.py
2015-07-01 01:48:19 -0400 test/units/playbook/test_taggable.py
2015-07-01 07:23:26 -0700 .travis.yml
2015-07-01 15:10:25 -0400 lib/ansible/plugins/action/patch.py
2015-07-01 18:34:44 -0400 lib/ansible/plugins/filter/ipaddr.py
2015-07-02 14:37:51 +0100 v1/ansible/runner/filter_plugins/core.py
2015-07-02 18:59:58 +0000 hacking/test-module
2015-07-03 13:54:31 -0400 lib/ansible/plugins/lookup/sequence.py
2015-07-03 22:27:49 +0200 lib/ansible/template/__init__.py
2015-07-04 10:23:30 -0400 lib/ansible/cli/galaxy.py
2015-07-05 17:23:22 +0100 lib/ansible/module_utils/facts.py
2015-07-06 10:21:40 +0300 docsite/rst/intro_installation.rst
2015-07-06 13:15:11 -0700 lib/ansible/parsing/splitter.py
2015-07-07 11:28:20 +0200 docsite/rst/index.rst
2015-07-08 09:45:02 -0700 lib/ansible/module_utils/basic.py
2015-07-08 10:11:43 -0400 ticket_stubs/needs_template.md
2015-07-08 20:39:16 -0400 contrib/inventory/rax.py
2015-07-09 08:23:43 -0400 lib/ansible/inventory/host.py
2015-07-09 10:50:31 -0400 test/integration/credentials.template
2015-07-09 10:50:31 -0400 test/integration/roles/test_azure/tasks/main.yml
2015-07-10 01:53:59 -0400 test/integration/non_destructive.yml
2015-07-10 23:48:12 -0400 lib/ansible/plugins/callback/timer.py
2015-07-11 00:47:59 -0400 lib/ansible/plugins/callback/syslog_json.py
2015-07-11 15:01:50 -0400 lib/ansible/plugins/callback/default.py
2015-07-11 21:49:35 -0400 lib/ansible/playbook/role/__init__.py
2015-07-12 16:10:34 -0400 lib/ansible/plugins/callback/mail.py
2015-07-12 16:39:27 -0400 lib/ansible/parsing/__init__.py
2015-07-12 16:39:27 -0400 lib/ansible/playbook/role/definition.py
2015-07-12 16:39:27 -0400 lib/ansible/plugins/__init__.py
2015-07-13 10:34:44 -0400 lib/ansible/plugins/action/assemble.py
2015-07-13 11:06:03 -0400 lib/ansible/plugins/cache/jsonfile.py
2015-07-13 15:42:47 -0400 lib/ansible/cli/adhoc.py
2015-07-13 20:42:09 -0400 lib/ansible/plugins/action/raw.py
2015-07-14 00:23:17 -0400 test/integration/roles/test_command_shell/tasks/main.yml
2015-07-14 07:28:32 -0400 lib/ansible/module_utils/powershell.ps1
2015-07-14 08:05:57 -0400 test/integration/roles/test_good_parsing/tasks/main.yml
2015-07-14 10:07:46 -0400 lib/ansible/utils/module_docs.py
2015-07-14 15:59:00 -0400 test/units/executor/test_task_executor.py
2015-07-14 16:47:47 -0400 lib/ansible/modules/extras
2015-07-14 17:03:57 -0400 lib/ansible/modules/core
2015-07-14 17:33:27 -0400 lib/ansible/cli/doc.py
2015-07-15 01:55:45 -0400 lib/ansible/plugins/strategies/__init__.py
2015-07-15 15:11:46 -0400 lib/ansible/executor/task_executor.py

git命令的ls-tree优点是仅列出存储在存储库中的文件,跳过 .git 文件夹并忽略文件。

如果将上述操作的输出发送到 .txt 文件中,那么您可以排序(Linux 排序,看看 -n 选项是否有帮助),然后使用 BASH 命令/one-liner 来获取早于 a 的所有行给定日期/时间戳(如上面的输出所示)。

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

git - 如何列出自特定日期以来未更改的所有文件? 的相关文章

  • 是否存在比 SVN 更快的集中版本控制?

    我已经使用 SVN 很长时间了 现在我们正在尝试使用 Git 我在这里谈论的不是中心化 去中心化的争论 我唯一关心的是速度 后一个工具要快得多 但有时 我需要使用一种集中式方法 这种方法比分散式方法更简单 更简单 学习曲线非常快 这节省了大
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • 我可以通过链接分享我的私人 GitHub 存储库吗?

    我在 GitHub 上的私人存储库中有一个 Java 应用程序 我想与没有帐户的人共享它 我在网站上没有找到任何与此相关的选项 有没有办法做到这一点 协作者只能是 GitHub 用户 无法在非 Github 用户之间共享私有存储库 您需要
  • Git - 推送到远程存储库中的远程跟踪分支

    当简单地做git push到远程存储库 其master分支得到更新 对于非裸存储库来说 这是不希望出现的情况 最近的 Git 版本显示的警告消息清楚地表明了这一点 我希望能够推送到远程存储库 并拥有其之一远程追踪分支进行更新 稍后 当我登录
  • 如何查看上次提交和现在之间发生了什么变化(进行一些更改后)

    与此类似question https stackoverflow com questions 1552340 how to list the file names only that changed between two commits但
  • 具有单独 work_tree 的 Git 子模块

    我按照本页上的教程使通过 Git 部署我的网站变得简单 http toroid org ams git website howto http toroid org ams git website howto 到目前为止一切都很好 但是我最近
  • 节点项目的 Azure git 部署失败

    我正在尝试将我的项目部署到azure 它正在失败 这些是我采取的步骤 git init git config core longpaths true git add git commit m initial commit 所有这些都有效 我
  • Windows 版 GitKraken 中的文件名太长

    正如建议的Q22575737 https stackoverflow com a 22575737 6623589 我已经更新了我的注册表并设置了git config system core longpaths true在处理长路径时 问题
  • 如何修复树与树之间的 Git 错误断开链接?

    我的事务被中断 当我再次尝试时 我遇到了空或损坏的对象错误 在另一个问题之后 我删除了所有空文件 当我运行时 git fsck full 我收到这个错误 Checking object directories 100 256 256 don
  • 使用 TFS 个人访问令牌克隆 Git 存储库

    我正在尝试以编程方式克隆 git 存储库 我的 ASP NET MVC 应用程序正在创建并启动一个进程 处理进程的代码工作正常 但是当尝试使用本地 TFS PAT 克隆 git 存储库时 身份验证失败 我无法使用 NTLM 或要求用户输入凭
  • Git:如何变基到特定提交?

    我想变基到特定的提交 而不是另一个分支的 HEAD A B C master D topic to A B C master D topic 代替 A B C master D topic 我怎样才能做到这一点 您可以通过在您喜欢的提交上创
  • 无法使用 git 配置文件进行 ssh

    我知道它被问了很多次 但我无法得到我的问题的答案 我正在尝试使用配置文件 ssh 到系统 配置文件是 Host qa HostName 10 218 70 345 User user IdentityFile C Users bean ss
  • 推送时发生 Git 错误 - update_ref 失败

    当我尝试推送本地提交时遇到问题 这可能是在 Android Studio 崩溃时发生的 这是错误 update ref 引用 refs remotes origin master 失败 无法锁定 ref refs remotes origi
  • 如何将更改移出主分支

    基本问题 但这一直发生在我身上 进行更改working branch 切换到master git merge working branch git push cap deploy 到舞台 泡一杯新茶 然后我回来思考其他事情并开始做出一些改变
  • git 显示已添加到 gitignore 的文件中的更改?

    我已经将 log2 文件夹和 main js 文件添加到 gitignore 如屏幕截图所示 但即使执行后git rm cached r我仍然可以看到 git 正在检测 main js 和 log2 文件夹内文件的更改 怎么会 这些的常见问
  • Git:发送电子邮件而不提交

    我有一个项目 我做了更改 并想使用 git send email 功能将它们发送给另一个用户 我发现它可以通过发送补丁来工作 由git format patch每次提交 是否可以只发送diff的 我不想先提交 然后发送补丁 是否有gitfo
  • .gitconfig 别名函数调用

    我在 gitconfig 中定义了以下别名 alias teamcity tc tc是我在我的中定义的一个shell函数 bashrc文件 由于某种原因 我收到以下错误 aafghani 03 git workday amirafghani
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • 在 Azure DevOps 项目之间移动存储库时保留拉取请求

    我在同一帐户内有两个 Azure DevOps 项目 我想将存储库从一个项目移动到另一个项目 这一页探索如何在具有完全保真历史记录的团队项目之间移动 git 存储库 https learn microsoft com en us azure

随机推荐