我了解以下命令将从标准输入中获取文本,并将其用作提交日志的消息:
echo "hello world" | git commit -F -
但是,如果您只是拥有它,git commit -F -
那么它将带您进入所谓的“标准输入模式”,在该模式下,Git Bash将显示消息(reading log message from standard input)
并等待某种输入...我想。我的问题是这种模式到底是什么,可以完全使用吗?我已经输入的文本,并退出使用ctrl-z
和ctrl-c
,但曾在其提交成功后运行没有运气。这将使我回到提示中。
问题:在“标准输入模式”下实际发生了什么,可以将其成功用于输入提交日志消息吗?
编辑:我已经尝试过ctrl-d
,但没有任何变化。我正在使用Windows 10。
当在命令中使用-时,它会告诉应用程序从STDIN中读取。Git注意到STDIN为空(除非您先回声和管道),因此它开始侦听输入。键入消息后,您必须通过发送EOF消息告诉您已完成操作。
当您运行echo hello | git commit -F-您正在将文本传递到git中,因此它使用了管道消息。
〜块循环
为了git commit -F -
在Windows上的Git Bash控制台中使用,必须将命令附加winpty
为:
winpty git commit -F -
之后,您将按预期进入“标准输入模式”。而不是像在Linux和Mac上那样使用CTRL+ D,而是按CTRL+ Z,然后ENTER换行。这将指示EOF并保存提交日志消息。
如果在消息的同一行上按CTRL+ Z,则将在消息^Z
旁边将其输入为文本,并且不会发生其他任何事情。您需要按CTRL+ Z,然后ENTER在单独的空白行上。
因此,要编辑blockloop的示例:
winpty git commit -F -
my message blah blah<enter>
<CTRL-Z><enter>
资料来源:Github
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句