我使用了许多不同的CMS。我们经常需要升级组件。这样做时,我发现几乎所有文件都显示出更改,因为所有文件的版权都发生了变化。通常这可能是500-1000个不同的文件,我必须逐个和阶段。我想弄清楚的是,是否有方法可以说"如果只有一次改变而且它的第2行从2013年到2014年发生了变化 - 那么自动暂存这个文件"。然后我们可以通过,只需验证实际代码已更改的那些文件的更改。
我不确定这有多可能,但我想我会问。
答案 0 :(得分:0)
您可以逐个浏览一个文件,然后分析' git diff'的输出。为每个文件查看它们是否符合您的标准,并且只对那些文件进行分级。 Git diff使用" +"在每个添加的文件的开头,所以检查和计数将给你修改的行数。确保只修改了一行,并确保其中包含单词"版权所有"在它。
for modifiedFile in $(git ls-files --modified)
do
linesModified=$(git diff ${modifiedFile} | grep ^\+\ | wc -l)
if [ ${linesModified} -eq 1 ]
then
copyrightOnly=$(git diff ${modifiedFile} | grep ^\+\ | grep Copyright | wc -1)
if [ ${copyrightOnly} -eq 1 ]
then
git add ${modifiedFile}
fi
fi
done