我想知道如何让git列出所有已更改的文件
我将首先为我的问题列出一个示例情况。
说我更改了以下文件:
未提交的更改
/site/main.php
/site/main.html
/site/includes/lib.php
提交3
提交消息:“Bug xyz:做了一些改动”
/site/main.php
/site/main.html
/site/main.js
/test/test.php
/test/test.html
提交2
提交消息:“Bug xyz:做了一些更改”
/site/main.php
/site/main.html
/site/includes/include.php
提交1
提交消息:“Bug abc:请注意,这是另一个错误”
/site/login.php
说我还在研究bug xyz。现在我需要一个列表,列出目前在网站目录中已经更改的所有php文件。所以我需要以下列表作为输出:
/site/main.php
/site/includes/lib.php
/site/includes/include.php
什么命令可以做到这一点?
答案 0 :(得分:8)
这很接近:
git log --grep=xyz -- '*.php'
--grep
参数应用于提交消息。 files参数上的单引号可确保git
执行扩展。
测试:
ebg@ebg(328)$ git log --oneline
f687708 bar x, y, not a
dfb4b96 foo d, e, f
df18118 foo a, b, c
ebg@ebg(329)$ git log --oneline --grep=a
f687708 bar x, y, not a
df18118 foo a, b, c
ebg@ebg(330)$ git log --oneline --grep=a -- 'a.*'
df18118 foo a, b, c
文件扩展可能需要处理子目录。排序:
git log --oneline --grep=a -- '*/a.*' 'a.*'