自动化git分期

时间:2014-09-08 19:46:31

标签: git

我使用了许多不同的CMS。我们经常需要升级组件。这样做时,我发现几乎所有文件都显示出更改,因为所有文件的版权都发生了变化。通常这可能是500-1000个不同的文件,我必须逐个和阶段。我想弄清楚的是,是否有方法可以说"如果只有一次改变而且它的第2行从2013年到2014年发生了变化 - 那么自动暂存这个文件"。然后我们可以通过,只需验证实际代码已更改的那些文件的更改。

我不确定这有多可能,但我想我会问。

1 个答案:

答案 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