不难找到有关如何查看特定提交中的所有文件的信息,但我想要相反的信息。 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/