不难找到有关如何查看特定提交中所有文件的信息,但我希望相反。 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 "$filet$log"
done
..它只是循环访问当前文件夹中的文件并执行 git 命令,仅提取 SHA。
如果您对将文件放在那里的第一个提交而不是接触文件的最后一个提交感兴趣,请将 git 命令替换为git log --diff-filter=A --pretty=format:%H
(请参阅链接(
如果您反复执行此操作,则可以将代码片段放入 shell 脚本中并添加到您的$PATH中。
警告:如果文件过多,可能需要一段时间才能运行。如果可能,您可以更改文件模式以限制它。