Git格式补丁不适用于某些变量

时间:2015-09-23 04:30:12

标签: git bash sed

我想使用脚本创建所有提交的补丁,但git format-patch在脚本中显示fatal: bad revision错误。当我使用sed的输出时它不起作用但是当我手动操作或手动设置变量时,git格式工作得很好。我在mac终端上。

请帮忙。

Screenshot of my terminal

git format-patch -1 `git log -1 --pretty=oneline | sed 's/ .*//'` --也会显示错误。 Screenshot 2

1 个答案:

答案 0 :(得分:2)

难以阅读图像(点击时没那么糟糕),但真正的赠品就是颜色。当你这样做时:

echo $a

c4e13开头的输出为黄色。如果你写了:

echo c4e13

输出为白色。

修辞/苏格拉底问题:为什么?什么是导致SHA-1为黄色的$a

答案:它包含一些嵌入式颜色切换ASCII控制代码(可能是转义,左括号,数字,字母-m)。这些不是SHA-1的一部分;它们是由你的git log生成的,因为你强迫它产生颜色,即使输出是管道。 (默认情况下,git在管道时停止着色输出。)

确保在编写脚本时(即使是像这样的简单的脚本)捕获ANSI终端控制序列。另请注意,如果要获取与HEAD关联的SHA-1,请使用" git plumbing命令" (用于编写脚本)执行此操作的是git rev-parse HEAD