Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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_Github - Fatal编程技术网

Git 如何同时使用“提交变更”;讯息;及;说明“;从命令行?

Git 如何同时使用“提交变更”;讯息;及;说明“;从命令行?,git,github,Git,Github,我对git和GitHub都是新手。我设法在我的Mac上本地设置了所有内容,因此现在我可以通过git(在命令行上,而不是在Mac应用程序上)将提交推送到GitHub 当我直接从GitHub web界面推送提交时(例如,快速修复打字错误),我有机会“评论”提交,GitHub会给我一个提交标题和提交描述。我觉得这很有用 尽管如此,当我从本地机器git push时,git打开我的默认编辑器:因此我编写提交注释,然后GitHub自动将其分为标题和“正文”。有没有一种方法也可以从终端提交漂亮的注释 git

我对
git
和GitHub都是新手。我设法在我的Mac上本地设置了所有内容,因此现在我可以通过
git
(在命令行上,而不是在Mac应用程序上)将提交推送到GitHub

当我直接从GitHub web界面推送提交时(例如,快速修复打字错误),我有机会“评论”提交,GitHub会给我一个提交标题和提交描述。我觉得这很有用

尽管如此,当我从本地机器
git push
时,
git
打开我的默认编辑器:因此我编写提交注释,然后GitHub自动将其分为标题和“正文”。有没有一种方法也可以从终端提交漂亮的注释

git commit -a -m "Your commit message here"
将使用提交消息快速提交所有更改。Git提交“title”和“description”(您称之为“description”)只不过是提交消息中的第一行,其余的行通常按约定用一个空行分隔。因此,使用此命令将只提交“标题”,而不提交说明

如果要提交更长的消息,可以这样做

在bash中,快速方法是:

git commit -a -m $'Commit title\n\nRest of commit message...'

还有另一条更直接、更清晰的道路

git commit -m "Title" -m "Description ..........";

如果您想在创建提交后改进带有头和正文的提交消息,您可以这样做。这种方法更有用,因为您只有在编写代码之后才知道代码的作用

git rebase -i origin/master
然后,您的提交将出现:

pick e152ce2 Update framework
pick ffcf91e Some magic
pick fa672e1 Update comments
选择要改写并保存的提交

pick e152ce2 Update framework
reword ffcf91e Some magic
pick fa672e1 Update comments
现在,您有机会添加页眉和正文,其中第一行是页眉

Create perpetuum mobile

Redesign laws of physics with a pinch of imagination. Open a wormhole in 23 dimensions. Add protection to avoid high instability.

使用不带任何标志的
git commit
命令。配置的编辑器将打开(本例中为Vim):

要开始键入,请按键盘上的“插入”键,然后在“插入”模式下创建一个更好的“提交”,并说明您希望如何进行。例如:

编写完所有需要的内容后,要返回git,首先应该退出插入模式,然后按ESC键。现在通过在键盘上键入
:wq
(w-write,q-quit)关闭Vim编辑器并保存更改:

然后按回车键

在GitHub上,此提交将如下所示:

作为提交编辑器,您可以使用:

从VS代码文档网站:


Gif演示:

这是一个不错的破解,但我更喜欢它,因为它为我提供了一种用换行符轻松键入长描述的方法。我也这么做^。你能用这种方法将
\n
添加到描述中吗?例如
git commit-m“Title”-m“Description…”\n新行…\n另一新行
为什么不@James111Adding
\n
在描述中添加换行符不起作用。请参考。您的方法当然有效,但仅在非常特定的情况下有效。如果您已经推送了提交(没有一些暗魔法:),则无法这样做)更重要的是,它并不真正符合OP所描述的情况。我认为在保存提交时会有一点变化,只需按ctrl+x,它会提示您按y保存,然后按enter键,git push应该在没有任何标志的情况下完成工作
-嗯,有一些标志您可以使用,例如
--all
--无验证
和更多..(没有检查,但可能除了
-m
)这里使用
a
标志进行了很好的描述,git将暂存所有修改的文件,这不是通常需要的。我建议从您的示例中删除
a
标志。
git config --global core.editor "code --wait"