如何在git中不进行编辑?

如何在git中不进行编辑?,git,Git,有时我不得不在24个git存储库中提交相同的更改。我使用脚本和以下命令,因此我不必为我不想更改的提交消息键入:q二十次: git commit -a --amend --no-edit 问题是,它永远不会起作用它仍然会打开编辑器并向我显示我不想更改的提交消息。 你能看到我输入的命令有什么问题吗?或者你知道为什么这个命令不起作用吗?我使用的是centos版本2.6.32-573.18.1.el6.x86_64上的git版本1.7.1。提交前必须添加内容 如果您不添加任何内容,则不会提交任何内容,

有时我不得不在24个git存储库中提交相同的更改。我使用脚本和以下命令,因此我不必为我不想更改的提交消息键入:q二十次:

git commit -a --amend --no-edit
问题是,它永远不会起作用它仍然会打开编辑器并向我显示我不想更改的提交消息。


你能看到我输入的命令有什么问题吗?或者你知道为什么这个命令不起作用吗?我使用的是centos版本2.6.32-573.18.1.el6.x86_64上的git版本1.7.1。

提交前必须添加内容

如果您不添加任何内容,则不会提交任何内容, 您可以使用传递给提交的
-a
标志来添加内容

如果需要,您也可以键入zz以退出vim,而不是:q

P.S. 是时候升级你的git了。
非常旧的版本有安全问题。

这没有意义
git commit--amend
用于修改现有提交。你说的是做出新的承诺

你真的是指跨多个存储库,还是指跨多个分支

  • 在同一个存储库中,您可以使用
    git cherry pick
    将相同的更改重新应用于多个分支。这将不需要提交消息,它将从原始消息中提取消息
  • 在不同的存储库中,您需要对文件进行更改。可能使用
    git-apply<&&git-commit-a-m
    。您的脚本可以提供补丁和提交消息

git commit-a--amend-C HEAD
:从HEAD处获取现有注释。

您还可以使用
git格式补丁
git am
跨存储库复制提交,甚至可以将存储库作为远程文件添加、获取,然后选择。
am
技巧通常适用于非常大的存储库,因为否则当您开始组合它们时,它们会膨胀(即使您从未合并过各种DAG,您也会得到很多对象)。请参见编辑的问题。我正在修改几个不同存储库中的提交。这是我部署策略的一部分。相信我……CentOS是那些“从不升级任何东西”的Linux发行版之一。我不确定他们是否修补了所有CVE(我只知道我很高兴我不再是处理CentOS的人:-)。请参阅编辑后的问题。在每种情况下,我都已经向索引中添加了内容。
git commit-a--amend-C HEAD
:从HEAD那里获取现有的注释。我在git 2.6.3中没有看到您的问题。我不知道这个bug适用于什么git版本。