检查文件选择是否有更改

3

好的,我在使用 git。我注意到我的网页布局错乱了。该项目有许多 *.css 文件(共计 8 个,分别位于同一存储库的不同位置)。我想检查最近两周在我所在分支上对这些文件进行的所有提交记录。

这可行吗?

我知道针对单个文件我可以执行以下操作:

git log -p ./reports/my.css

如何针对不同目录下的所有CSS文件执行最佳操作?目前我想到的最好方法是执行以下操作:

git log --since=2.weeks --name-status | grep -B 8 "css"
即我从最近两周的日志中搜索并提取前8行,以确保获取文件和提交信息。 谢谢。

只需列出它们所有。您可能会运用'*.css'(请注意引号)。 - knittl
2个回答

2
这是对另一个答案的补充,该答案提到git log确实可以接受多个文件参数,并且可以显示涉及这些文件的所有提交记录的日志。
如果您希望在一步中调用该命令时发现所有*.css文件,则使用以下find调用: find . -iname'*.css' -exec git log --since=2.weeks --name-status {} + 简单来说,此命令会在当前工作目录和所有子目录中查找以.css结尾的所有文件,忽略大小写,并执行git log--since=2.weeks --name-status,将找到的所有文件名作为参数传递。

超级的。只是想知道你能解释一下语句中的 {} 和 + 代表什么吗? - More Than Five
1
从find手册中... -exec command {} + 这个-exec选项的变体会在所选文件上运行指定的命令,但是命令行是通过将每个选择的文件名附加到末尾来构建的;执行命令的总次数将远远少于匹配的文件数。命令行的构建方式与xargs构建其命令行的方式非常相似。命令中只允许一个'{}'实例。该命令在起始目录中执行。 - whaley

1

git log 可以接收文件列表,因此只需将所有相关文件作为参数输入:

git log -p ./reports/my.css ./anotherdir/his.css ./thirddir/their.css

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接