git - 按提交/merge 日期排序 git diff --name-only list

标签 git history git-diff

当我们使用时

git diff --name-only <first tag>..<second tag>

我们已经获得了已更改文件的列表,但按字母顺序排列。

我想要的是相同的列表,但按提交/merge 历史顺序排列,较旧的在顶部,最新的在底部。

是否有使用 git 命令/选项的 native 方法来执行此操作?

最诚挚的问候,

最佳答案

您可以使用git logformat选项不打印任何有关提交的信息,只打印文件名:

git log --format="" --name-only <first tag>..<second tag>

正如评论中所述,git log 有一个 --reverse 选项来列出从最旧到最新的提交:

git log --reverse --format="" --name-only <first tag>..<second tag>

您还可以使用 awk 对重复项进行排序,以便仅打印最新出现的内容(或者如果使用 --reverse 则最早出现的内容)

git log --format="" --name-only <first tag>..<second tag> | awk '!x[$0]++'

关于git - 按提交/merge 日期排序 git diff --name-only list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41739654/

相关文章:

http - ELM-LANG 如何在单击浏览器后退按钮时发出 http 请求

c - LP64、LLP64 和 IL32 转换

git - 无法将本地分支推送到远程 Git 存储库

git - 拥有一个个人提交甚至可能无法工作的开发分支是否可以?

database - 可以将某个人的 Skype 聊天日志从他们的应用程序数据中提取到我的中吗?

git - 如何总结 merge 以检测错误的 `git merge -s ours` ?

git diff 在文件相同时报告差异

git - 列出我已推送到远程 Git 存储库的所有文件

bash - Git 预提交 Hook : Unable to Run `dartfmt` (command not found) (Windows)

git - 无法连接到 github.com 端口 443 : Connection refused, 引导失败,Discourse Docker