GitHub:如何显示文件夹中所有文件的提交

标签 git github git-commit

不难找到有关如何查看特定提交中的所有文件的信息,但我想要相反的信息。 IOW,我想要一个文件夹中所有文件的列表以及将它们放在那里的提交。像这样的东西:

File1.txt   c7b1fd463f40b39d7f199ee650b58a8ba153b64a
File2.md    d9e3ca571d40b38d7fab90cf50b48a82c1d3a32f
File3.c     3207cab3b49da7be5d9a7ef8594bef1935e15fd1
...

有什么办法吗?

最佳答案

假设您有兴趣知道文件的最新提交是什么,此命令将为给定文件提供:git log -n 1 -- <your_filename> . 要按照您的意愿生成输出,您可以使用此代码段:

for file in *; do 
  log=$(git log -n 1 --pretty=format:%H -- $file)
  echo -e "$file\t$log"
done

..这只是循环遍历当前文件夹中的文件并执行 git 命令,仅提取 SHA。

如果您对将文件放在那里的第一个 提交感兴趣,而不是对最后一次接触文件的提交感兴趣,请将 git 命令替换为 git log --diff-filter=A --pretty=format:%H (参见 link)

如果您重复执行此操作,您可以将代码片段放入 shell 脚本中并添加到 $PATH。

警告:如果文件太多,运行可能需要一段时间。如果可能,您可以更改文件模式以限制它。

关于GitHub:如何显示文件夹中所有文件的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52760904/

相关文章:

GITLAB Web IDE更改默认选项-创建新分支

java - eclipse - 如何为多个开发人员创建一个java项目(github)

git - 如何转到git中的特定提交

git - 使用 composer 加载自定义 git 存储库

git - "git push"和 "git push --tags"在同一命令中?

github - 如何将参数化 secret 传递给可重用的 GitHub Action 工作流程?

由于 Chrome 与 Chromedriver 版本不匹配,Angular e2e 测试在 GitHub 操作中失败

git - 如何使 commitizen 覆盖默认的 git commit 命令

ruby-on-rails - 管理 Git 操作创建的 schema.rb 中的冲突

git - Grails和.gitignore