Git commit打开空白文本文件,是做什么用的?

时间:2020-03-05 18:52:38  来源:igfitidea点击:

在我读过的所有Git教程中,他们都说我们可以做到:

git init
git add .
git commit

当我这样做时,我打开了一个大文本文件。这些教程似乎都没有解决这个问题,因此我不知道该文件应该怎么做或者不知道该如何放置。

解决方案

回答

git commit命令将打开在EDITOR环境变量中指定的编辑器,因此我们可以输入提交注释。在Linux或者BSD系统上,默认情况下应为vi,尽管任何编辑器都可以使用。

只需输入评论并保存文件即可。

回答

提交的-m选项使我们可以在命令行上输入提交消息:

git commit -m "my first commit"

回答

正在打开的文本文件是当前提交操作的摘要。 git commit将我们放入该文件,因此我们可以在文件顶部添加提交消息。添加完邮件后,只需保存并退出该文件即可。

此命令上还有一个" -m msg"开关,可让我们在命令行上添加提交消息。

回答

在进行版本控制时,应始终说明所做的更改。通常,我们第一次收到诸如"初始提交"之类的评论。

但是,从长远来看,我们希望为每次提交都提供良好的注释。我们将需要以下形式的东西:

Added experimental feature x.
  
  X will increase the performance of
  feature Y in condition Z. Should you
  need X activate it with the -x or
  --feature-eks switches. This addresses feature request #1138.

回答

正如Ben Collins所提到的,如果没有-m" ..."参数来键入内联提交(这通常是一个坏主意,因为它鼓励我们简短一点),那么打开的这个"大文本文件"就是在其中键入提交消息的窗口。

通常,建议在第一行写一个摘要,跳过一行,然后在下面写更详细的注释。这有助于执行诸如通过适当的主题行向提交消息发送电子邮件以及正文中所做更改的完整列表的电子邮件程序。

除了更改EDITORshell变量,我们还可以通过在~~ .gitconfig文件中添加其他行来更改使用的编辑器:

[core]
    editor = emacs
    excludesfile = /Users/will/.gitignore

第二行实际上与问题无关,但是我发现它确实有用,因此我可以使用所有我知道永远都不想提交到存储库的文件类型填充我的〜/ .gitignore`文件。

回答

是的,请确保我们有一个明智的编辑器设置。不确定我们将使用的默认编辑器是什么,但是像我一样,如果它是nano(在我们键入commit后会在顶部附近显示),我们只需要输入注释,然后按Ctrl-x即可完成。然后按y,然后按Enter确认提交。

另外,如果我们想查看要提交的文件的简单列表,而不要事先查看大量的差异列表,请尝试

git diff --name-only

回答

就像大家都说过的那样,这只是我们添加提交注释的地方,但是对于某些注释,如果我们尚未配置编辑器设置,并且我们不知道什么是VI,则可能仍然使esp感到困惑:那么我们可能会感到震惊,因为我们会认为自己仍在GIT-Bash中

在那种情况下,我们实际上是在文本编辑器中,它具有一些有趣的处理方式,这组命令可能会,以便我们可以跳过第一次提交,然后配置我们熟悉的编辑器或者将其用作一个学习如何使用它的机会。

回答

我们打算将提交消息放入此文本文件,然后保存并退出。

我们可以使用以下命令更改git使用的默认文本编辑器:

git config --global core.editor "nano"

我们必须将nano更改为通常会打开文本编辑器的任何命令。

回答

以下可能是提交所有更改的最简单方法:

git commit -a -m "Type your commit message here..."

当然,有很多更详细的提交方法,但这应该可以入门。

回答

如果我们在Mac OS X上并使用BBEdit,则可以将其设置为提交消息的首选编辑器:

git config --global core.editor "bbedit -w"

完成编辑后,保存并关闭文件,而git会将其用于注释。

回答

输入完消息后,尝试Escape然后ZZ。
正如其他人所说的那样,当我们运行该commit命令时,它实际上会运行一个文本编辑器以将消息输入到其中。
在我的情况下(OS X)是VI,我经过反复研究后才发现。
在这种情况下,按Escape键进入"命令"模式(与INSERT模式相对),输入ZZ。我敢肯定还有其他方法可以完成任务,但这对我来说是成功的。
从未使用过VI或者emacs,这对我来说并不容易理解,在我正在使用的任何初学者指南中都没有提及。
希望这会有所帮助。

回答

我很困惑,因为我一直试图在VIM中的:w之后输入文件名。那不会触发提交。相反,我一直收到一条消息"由于空提交消息而中止提交"。不要在:w之后放置文件名。 :w默认情况下将文件保存到.git / COMMIT_EDITMSG。然后:q退出以完成提交。我们可以使用git log查看结果。

回答

也是Terminal的新手," Escape然后ZZ"对我来说很有效,几个月来我一直遇到这个问题,也找不到解决的办法。

感谢TheGeoff的简单建议!