Git 更新项目中已更改文件的版权标题
我在一个项目中工作,其中版权标题是强制性的。所有文件都有这些标题,但最近标题的指导方针发生了变化,因此需要更新。我在Linux平台上工作(但也可以通过Windows访问文件)。有些文件有新的标题(但需要在“年份”字段中更新),有些文件有旧的标题,有些文件的标题非常粗糙,不符合标准(是的,他们不幸通过了审查),有些文件根本没有(是的,这些文件也通过了审查) 因此,我有三个要求:Git 更新项目中已更改文件的版权标题,git,copyright-display,Git,Copyright Display,我在一个项目中工作,其中版权标题是强制性的。所有文件都有这些标题,但最近标题的指导方针发生了变化,因此需要更新。我在Linux平台上工作(但也可以通过Windows访问文件)。有些文件有新的标题(但需要在“年份”字段中更新),有些文件有旧的标题,有些文件的标题非常粗糙,不符合标准(是的,他们不幸通过了审查),有些文件根本没有(是的,这些文件也通过了审查) 因此,我有三个要求: 将旧标题与更新年份一起更改为更新标题 对于具有新标题的邮件,需要更新其日期(更准确地说是年份) 将标题添加到没有任何标题
编辑:我接受了@Hoall的答案,并手动操作,因为使用sed现在看起来太麻烦了 在linux下,您可以执行以下操作:
for i in `git diff --name-only --cached`; do echo $i; done
用sed、awk等替换echo命令,以替换文件中的完整头
编辑:
有关sed部分,请参见谢谢。这让我领先了一步。现在转到sed/awk部分。谢谢你的链接,但是没有什么帮助。该链接也处理具有替换文本的标准格式的文件。我需要一些有条件地修改文本的东西(我列出的条件)。根据文件的数量,使用模板手动修改会更快。也许在for循环中有一个垃圾箱。很好,luckWell,我正在使用您的答案并手动执行:(因为我已经承诺了这么做)git reset HEAD^为I in
git diff--name only
;做vim$i;完成git提交--重用消息=HEAD@{1}