如何检索所有更改了具有一种或两种扩展名的文件的提交?
How can I retrieve all commits that changed files with one or two kinds of extensions?
如何检索所有更改了具有一种或两种扩展名的文件的提交,例如“.YAML”和“.JSON”?
git log --no-merges --oneline --name-status -- :*.yaml :*.json
--oneline
和 --name-status
在这里基本上是养眼的。
--no-merges
的原因是,合并是合并历史记录中的所有更改,因此在该合并中更改的所有文件 来自任一父项 数数。但是由于您没有限制回溯,所以无论如何您都会看到最初进行这些更改的提交(并且 git log
知道这一点,并且通常不会显示合并提交的差异,因为它会重复并且随着历史越来越大,越来越糟糕而不是无用)。
使用选定路径的 --first-parent
而不是 --no-merges
会告诉您哪些文件通过(不再排除)合并仅相对于第一个父文件进行了更改;它不会向您显示更改了这些文件的单个合并提交,而是向您显示将这些更改带入您已签出的第一父历史记录的合并。
git log
带有路径,但 --first-parent
和 --no-merges
都证明仅作为取证查询有用。
如何检索所有更改了具有一种或两种扩展名的文件的提交,例如“.YAML”和“.JSON”?
git log --no-merges --oneline --name-status -- :*.yaml :*.json
--oneline
和 --name-status
在这里基本上是养眼的。
--no-merges
的原因是,合并是合并历史记录中的所有更改,因此在该合并中更改的所有文件 来自任一父项 数数。但是由于您没有限制回溯,所以无论如何您都会看到最初进行这些更改的提交(并且 git log
知道这一点,并且通常不会显示合并提交的差异,因为它会重复并且随着历史越来越大,越来越糟糕而不是无用)。
--first-parent
而不是 --no-merges
会告诉您哪些文件通过(不再排除)合并仅相对于第一个父文件进行了更改;它不会向您显示更改了这些文件的单个合并提交,而是向您显示将这些更改带入您已签出的第一父历史记录的合并。
git log
带有路径,但 --first-parent
和 --no-merges
都证明仅作为取证查询有用。