某个时间点后修改的所有文件名

某个时间点后修改的所有文件名

在合代码时候,为了防止漏合,通常会罗列出某个时间点后自己修改过的所有文件名,然后合并每个文件修改的内容。这里使用git log命令解决这个问题。

git log命令格式:

git log [<options>] [<revision range>] [[--] <path>…​]

常用选项

--since=<date>
--after=<date>

展示某个时间点后的提交。

--until=<date>
--before=<date>

展示某个时间点前的提交。

--author=<pattern>
--committer=<pattern>

限制输出提交者与指定模式(正则表达式)相匹配的提交。 如果有多个–author = ,则提交者与任意正则表达式匹配即可输出(多个–committer = 类似)。

--grep=<pattern>

限制输出提交日志与指定模式(正则表达式)匹配的提交。 如果使用多个–grep = ,则提交日志与任意正则表达式匹配即可。

--all-match

如果存在多个–grep = ,则提交日志需要与所有正则表达式匹配,而不是任意。

--decorate[=short|full|auto|no]

展示提交的ref名称。 如果指定为short,则不会展示ref名称的前缀refs/heads/,refs/tags/和refs/remotes/。 如果指定了full,则将打印完整的引用名称(包括前缀)。 如果指定了auto,如果输出将输出到终端,则同short,否则不显示引用名称。 默认选项是short。

--name-only

只展示修改文件名,不展示修改文件内容。

--oneline

将提交信息单行展示。

所以如果需要展示某个时间点后自己修改的所有文件名,则需要加–name-only限制只展示文件名,–since= 或者–after=限制修改的时间点,–author=限制提交者,–oneline 单行展示

 git log --name-only --since="2018-05-21 00:00:00" --author='u010141779' --oneline

这样的话还有一个问题,就是单行的提交信息会混杂在修改的文件名中,为了将提交信息和修改的文件名区分开,可以使用grep或者sed命令进行模式匹配。
这spring boot中,文件名肯定以项目名开始,所以使用grep可以匹配出文件名:

git log --name-only --since="2018-05-21 00:00:00" --author='u010141779' --oneline | grep '^项目名'

或者使用sed:

git log --name-only --since="2018-05-21 00:00:00" --author='u010141779' --oneline | sed -n '/^项目名/p' 

但是这样的话,还有一个问题,就是多次提交可能修改同一文件,这样的话会导致同一文件出现多次,可以考虑使用sort -u 去重。

git log --name-only --since="2018-05-21 00:00:00" --author='u010141779' --oneline | sed -n '/^项目名/p'  | sort -u
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值