查找有关如何查看特定提交中的所有文件的信息并不难,但是我想反过来。 IOW,我想要一个文件夹中所有文件的列表以及将它们放到那里的提交。像这样:
File1.txt c7b1fd463f40b39d7f199ee650b58a8ba153b64a
File2.md d9e3ca571d40b38d7fab90cf50b48a82c1d3a32f
File3.c 3207cab3b49da7be5d9a7ef8594bef1935e15fd1
...
有没有办法做到这一点?
答案 0 :(得分:2)
假设您有兴趣知道什么是对文件的最新提交,此命令将为给定文件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 log --diff-filter=A --pretty=format:%H
替换git命令(请参见link )
如果您反复执行此操作,则可以将代码段放入Shell脚本中,然后添加到$ PATH中。
警告:如果文件太多,可能需要一段时间才能运行。您可以更改文件模式以限制它。