我正在把头撞到墙上,寻找一种简单的方法来完成此操作,但是却无法在网上找到任何东西,所以我想我会分享我想出的解决方案。
当您需要拆分特定的差异文件时,这很有用。
答案 0 :(得分:0)
因此,当我在一个较大的公司项目中工作时,该问题需要分解为多个票证,尽管我正在同一个分支中使用多个文件,但我发现自己需要为每个票证创建单独的diff / patch文件。变化。每个补丁文件只需要包含特定文件的差异即可,您可以执行以下操作:
git diff master FILENAME_X FILENAME_Y FILENAME_Z (etc.)
但是,每次我需要生成补丁时,手动对每个文件进行操作都非常耗时,而且还包括我每次都忘记文件的可能性。
以下命令将创建包含在不同补丁文件中的所有文件的差异/补丁文件:
`cat NAME_OF_INPUT_DIFF.diff | grep "+++" | awk -F "+++ b/" '{if (NR == 1)printf "git diff master " $2; else printf " " $2}'` > NAME_OF_OUTPUT_DIFF.diff
cat NAME_OF_INPUT_DIFF.diff | grep "+++"
将前一个差异仅分为带有已添加/修改的文件名的行,然后awk -F "+++ b/"
将其仅分为已解析文件的名称,并去除前面的字符。其余的创建冗长的git命令以生成特定文件的差异,并将其全部包装在反引号中,以使其在执行时进行评估。然后> NAME_OF_OUTPUT_DIFF.diff
将产生的差异输出到文件。
无论如何,我希望这对像我这样的人有所帮助!相当节省时间。