Windows的Git Bash中的git commit -F-使用“标准输入模式”有什么用?

用户名

我了解以下命令将从标准输入中获取文本,并将其用作提交日志的消息:

echo "hello world" | git commit -F -

但是,如果您只是拥有它,git commit -F -那么它将带您进入所谓的“标准输入模式”,在该模式下,Git Bash将显示消息(reading log message from standard input)并等待某种输入...我想。我的问题是这种模式到底是什么,可以完全使用吗?我已经输入的文本,并退出使用ctrl-zctrl-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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

什么是git boundary commit

在git commit中警告

从git的CLI中清除Windows的bash的所有git凭据

如何使用Windows版Git在Git Bash中更改目录?

在Vim上使用git commit -a

使用 sudo 进行 git commit

什么是在输出中具有“ tree”的git commit?

如何从Windows cmd保存git commit消息?

git commit命令的分段错误(Windows)

Windows 10 cmd中的“ git commit --amend”打开的编辑器是什么,我该如何使用它?

为什么 Git Windows 在合并时提交,即使使用 merge.commit=no?

-CHEAD 在 git commit 中是什么意思?

git中的commit命令的确切含义是什么

在插入模式下使git commit打开vim

“ git commit”和“ git push”之间有什么区别?

git commit 中没有添加点的文件夹

使用JGit在Jenkins管道中获取git commit SHA

为什么在使用git commit -a时需要git add

如何在Windows上使用“ tree / F”命令进行git-bash?

我在做什么git commit

git commit的--date参数的格式是什么

Git Bash(Windows)中的条件提示,带有miniconda

git merge --ff <commit>和git reset <commit> --mixed有什么区别

git commit的父级是什么?git commit如何有多个父项?

git commit和git commit-tree有什么区别

在Windows中如何在git bash中使用%LocalAppData%?

如何使用名称启动git-bash中的Windows进程

使用Windows Terminal在Git Bash中设置背景图像

如何退出我的git commit消息?我不在VIM中,我使用了“ commit -m”命令