【问题标题】:How to commit a change in git when git commit opens Nano?git commit 打开 Nano 时如何在 git 中提交更改?
【发布时间】:2018-11-27 22:49:48
【问题描述】:

我是 git 新手,我正在尝试在 Windows 机器上提交我的第一个更改。但是,当我输入$git commit 时,它会将我带到与任何在线教程显示或Pro Git 中提到的不同的屏幕。也没有在线搜索提供有关如何使用此屏幕的说明。

屏幕如下所示:

我已经尝试了键盘上的每个键,但实际上似乎没有执行提交。此外,屏幕底部还有所有这些绿色的小帮助选项,它们似乎正在发出命令,但是当我按下按钮时,它们会显示它只是将它们输入到提交消息中。这些帮助选项是什么?如何使用它们?

其他人似乎都在使用一种叫做“vim”的东西,我相信我在安装 Git 时选择不安装它,因为我认为 Windows 控制台很好。

那么我如何实际提交,屏幕底部的那些绿色命令是什么?谢谢!

【问题讨论】:

  • 另外,我什至不知道要按哪个按钮来退出此屏幕并取消提交。 “Esc”不起作用。
  • 如果你想写多行提交信息然后使用git commit。这就是这个屏幕出现的时候。要编写单行提交消息,请使用git commit -m "<commit message>"。要退出此屏幕,请使用ctrl+x 并输入y 以保存提交消息。
  • 我希望你不介意,我编辑了你的问题的标题,因为它归结为不知道如何使用 Nano 完成提交(这是你截图中的文本编辑器)。这不是专门的 Windows 问题。
  • @JBentley 哦,当然,没关系!我是一个真正的菜鸟,我不知道发生了什么,所以你的标题更准确,谢谢!

标签: git git-commit nano


【解决方案1】:

发生这种情况的原因是因为您的提交需要一条消息。

git commit 将打开一个编辑器,因为它需要一条消息。

git commit -m "message here" 不会调出编辑器。

您可以退出 Nano 并使用常规提交消息命令

ctrl + X -> 按N -> git commit -m "message here"

或者使用 nano 在编辑器中写入提交信息,

你会看到这样的东西。

[ENTER COMMIT MESSAGE HERE]
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Your branch is up to date with 'origin/master'.
#
# Changes to be committed:
#       new file:   sample.txt
#
[OR ENTER COMMIT MESSAGE HERE]



^G Get Help ^O WriteOut ^R Read File^Y Prev Page^K Cut Text ^C Cur Pos
^X Exit     ^J Justify  ^W Where Is ^V Next Page^U UnCut Tex^T To Spell
*Nano 通常会在底部为您显示不同的命令。

^Xctrl + X。这会将底部的 nano 命令更改为退出流。

Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
 Y Yes
 N No           ^C Cancel

Y->

File Name to Write:$DITMSG
^G Get Help        ^T To Files        M-M Mac Format     M-P Prepend
^C Cancel          M-D DOS Format     M-A Append         M-B Backup File

enter 将提交保存到本地 git,您应该回到终端并准备好推送提交。

您也可以只使用 vim 或您喜欢的编辑器,

git config --global core.editor "vim"

但就个人而言,我更喜欢 nano,因为它比 vim 容易得多。

【讨论】:

    【解决方案2】:

    输入您的提交信息后,尝试:

    • ctrl + o
    • enter
    • ctrl + x

    【讨论】:

      【解决方案3】:

      ctrl+octrl+x 对我不起作用。我按下ctrl+c 来停止这个过程,然后出现了一些选项,我可以提交更改。也许这可能对某人有帮助!

      【讨论】:

        【解决方案4】:

        正如其他答案所解释的,首先写下消息并点击control + x

        之后我被要求'保存修改后的缓冲区'。如果你选择No,那么你可以退出nano并应用提交。

        【讨论】:

          【解决方案5】:

          屏幕只是一个编辑器,您可以在它的底部找到帮助。

          要进行提交,您应该编写提交消息,然后按ctrl+o 写出您的消息,然后按ctrl+x 退出该屏幕。如果您被要求重命名提交文件,请按ctrl+c 取消或按enter,然后按退出命令

          要避开该屏幕,请执行git commit -m "your commit message" 如果您想将更改附加到最后一次提交,请执行 git commit --amend --no-edit

          【讨论】:

          • 在Ctrl + o之后,当它要求输入文件名时,只需按Enter键。
          【解决方案6】:

          那个屏幕只是一个文本编辑器,底部的那些选项代表命令,通常是ctrl 键+命令的字母。

          要进行提交,您应该编写提交消息,然后按 ctrl+o 写入消息,然后按 ctrl+x 退出该屏幕。

          为避免出现该屏幕,您可以执行git commit -m 'your commit message' 之类的操作,-m 表示您的提交消息在命令中。

          【讨论】:

          • 好的,感谢您的帮助!愚蠢的我,我尝试了shift 键+这些命令,但没有尝试ctrl 键。根据 JBentley 的说法,这都是 Nano,所以现在一切都说得通了!
          • @guy 如果你愿意,你甚至可以更改 git 打开的文本编辑器。
          • 非常感谢。此外,按 ctrl+o 后,您必须按 Enter ;)
          猜你喜欢
          • 2015-12-04
          • 2020-04-29
          • 2011-06-29
          • 1970-01-01
          • 2014-03-11
          • 2020-07-20
          • 2015-01-11
          • 2015-07-21
          • 2012-09-30
          相关资源
          最近更新 更多