Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git编辑器提交错误_Git_Sublimetext - Fatal编程技术网

Git编辑器提交错误

Git编辑器提交错误,git,sublimetext,Git,Sublimetext,我将core.editor设置为升华文本。但是,我的所有提交都会自动失败,我得到以下信息: 由于提交消息为空,正在中止提交 即使它打开了崇高的文本。我还需要做些什么来防止这种情况发生,还是升华就不能解决这个问题 请注意,我是在终端上完成这些操作的。如果您在退出时没有更改消息,您应该知道您实际上必须键入一些内容 对于gedit,同样的事情也会发生在我身上,如果我没有在注释行的上方输入内容,那么它以合并开始是可以的,因为它们会自动将非注释合并a添加到类似b的文本中 但是,如果您的编辑器实际上正在启动

我将core.editor设置为升华文本。但是,我的所有提交都会自动失败,我得到以下信息:

由于提交消息为空,正在中止提交

即使它打开了崇高的文本。我还需要做些什么来防止这种情况发生,还是升华就不能解决这个问题


请注意,我是在终端上完成这些操作的。

如果您在退出时没有更改消息,您应该知道您实际上必须键入一些内容

对于gedit,同样的事情也会发生在我身上,如果我没有在注释行的上方输入内容,那么它以合并开始是可以的,因为它们会自动将非注释合并a添加到类似b的文本中

但是,如果您的编辑器实际上正在启动,但git commit在打开时仍在继续,那么编辑器的启动方式就会出现问题

升华文本存在一个已知的问题,即启动它的程序无法始终正确地识别它是否仍在运行。我认为这可能是因为命令行工具只是告诉GUI程序打开文件,如果需要,首先启动它,然后命令行工具将退出

因此,git将假定它已经完成,并且由于文件在那一点上没有被更改,它将向您提供错误消息

就解决这个问题而言,我相信Sublime文本添加了a-w标志以确保不会发生这种情况

在任何情况下,我更喜欢在命令行上显式输入消息,例如:

git commit -m 'fixed my earlier screw-up'

这样我就不必担心编辑之类的问题了。

如果您在退出时没有更改消息,您应该知道您实际上必须键入一些内容

对于gedit,同样的事情也会发生在我身上,如果我没有在注释行的上方输入内容,那么它以合并开始是可以的,因为它们会自动将非注释合并a添加到类似b的文本中

但是,如果您的编辑器实际上正在启动,但git commit在打开时仍在继续,那么编辑器的启动方式就会出现问题

升华文本存在一个已知的问题,即启动它的程序无法始终正确地识别它是否仍在运行。我认为这可能是因为命令行工具只是告诉GUI程序打开文件,如果需要,首先启动它,然后命令行工具将退出

因此,git将假定它已经完成,并且由于文件在那一点上没有被更改,它将向您提供错误消息

就解决这个问题而言,我相信Sublime文本添加了a-w标志以确保不会发生这种情况

在任何情况下,我更喜欢在命令行上显式输入消息,例如:

git commit -m 'fixed my earlier screw-up'

因此,我不必担心编辑器之类的问题。

问题是,默认情况下,升华文本命令行工具会告诉升华文本GUI打开一个文件,然后立即退出,即使GUI仍然打开该文件。不过,有一个选项会告诉命令行工具等待GUI中的文件关闭。该选项为-wait或简称-w。因此,如果我尝试以下方法:

: $; git config core.editor subl
: $; git commit
。。。我得到以下信息-第一行显示简短,然后被删除并替换为第二行:

hint: Waiting for your editor to close the file... 
Aborting commit due to empty commit message.
您可能会看到,也可能不会看到第一行,因为这一切都发生在升华文本GUI变为可见,并打开提交消息文件的同时。当你回到终点站时,你只会看到第二行

但是如果我添加了等待选项,它就可以工作了。因此,我将编辑器更改为:

: $; git config core.editor 'subl -w'
然后,如果我执行git提交,并在不关闭提交消息文件的情况下从升华文本切换到终端,我会看到:

: $; git commit
hint: Waiting for your editor to close the file... 
然后,如果我在写入一些文本并保存后返回并关闭文件,我会回来查看:

: $; git commit
[master 79d5a7b] Commit message I typed in Sublime Text GUI.
 1 file changed, 1 insertion(+), 1 deletion(-)

问题在于,默认情况下,升华文本命令行工具会告诉升华文本GUI打开一个文件,然后立即退出,即使GUI仍然打开该文件。不过,有一个选项会告诉命令行工具等待GUI中的文件关闭。该选项为-wait或简称-w。因此,如果我尝试以下方法:

: $; git config core.editor subl
: $; git commit
。。。我得到以下信息-第一行显示简短,然后被删除并替换为第二行:

hint: Waiting for your editor to close the file... 
Aborting commit due to empty commit message.
您可能会看到,也可能不会看到第一行,因为这一切都发生在升华文本GUI变为可见,并打开提交消息文件的同时。当你回到终点站时,你只会看到第二行

但是如果我添加了等待选项,它就可以工作了。因此,我将编辑器更改为:

: $; git config core.editor 'subl -w'
然后,如果我执行git提交,并在不关闭提交消息文件的情况下从升华文本切换到终端,我会看到:

: $; git commit
hint: Waiting for your editor to close the file... 
然后,如果我在写入一些文本并保存后返回并关闭文件,我会回来查看:

: $; git commit
[master 79d5a7b] Commit message I typed in Sublime Text GUI.
 1 file changed, 1 insertion(+), 1 deletion(-)
在我看来,升华的-w/-wait标志是回答问题的关键——而不是输入somet
hing-in也可以创建中止,但我怀疑这是怎么回事。此外,虽然在许多情况下使用-m是完全合理且常见的做法,但使用成熟编辑器的一个好处是可以有多行提交消息;特别适用于进行复杂更改或复杂合并等的提交@lindes,我相信中间部分足够清楚地说明了这种情况。最后一节简单地说明了我们是如何做到的,这与问题是相切的。因为我们实际上有在git旁边使用JIRA的优势,所以我们在提交文本中也包含了JIRA问题,而JIRA问题本身详细说明了对给定问题所做更改背后的所有原因-git只包含一个简短的描述符。在我看来,升华的-w/-wait标志是,回答这个问题的关键是——不输入某些内容也可能导致中止,但我怀疑这是怎么回事。此外,尽管在许多情况下使用-m是完全合理且常见的做法,但使用成熟编辑器的一个好处是,可以有多行提交消息;特别适用于进行复杂更改或复杂合并等的提交@lindes,我相信中间部分足够清楚地说明了这种情况。最后一节简单地说明了我们是如何做到的,这与问题是相切的。因为我们实际上有在git旁边使用JIRA的优势,所以我们在提交文本中也包含了JIRA问题,并且JIRA问题本身详细说明了对给定问题所做更改背后的所有原因-git只包含一个短描述符。可能重复的