我在承诺信中写错了。

我怎么能改變訊息呢?承諾尚未推動。


当前回答

如果你想修正的承诺不是最新的承诺:

git rebase --interactive $parent_of_flawed_commit 如果你想修复几个错误的命令,通过最古老的命令的父母。 一个编辑会出现,从你给的所有命令的列表。 更改选择重新命令(或在旧版本的Git,编辑)在任何命令你想修复的前面。 一旦你保存,Git将重新播放列出的命令。

它是非常容易的;你不需要记住它 - 只是记住, git rebase - 互动允许你纠正命令,无论他们是多久以前。


请注意,你不会想改变你已经推的承诺,或者也许你会这样做,但在这种情况下,你将不得不非常小心地与任何可能推你的承诺并完成工作。

其他回答

我使用Git GUI尽我所能,这给了你更改最后的承诺的选项:

此分類上一篇

此外, git rebase -i 起源/masteris 一个可爱的 mantra 将始终向您介绍您在主人的顶部所做的承诺,并为您提供更改、删除、重新订单或破坏的选项。

如果你只是想编辑最新的承诺,使用:

git commit --amend

git commit --amend -m 'one line message'

但是,如果你想连续编辑多个命令,你应该使用重定向,而不是:

git rebase -i <hash of one commit before the wrong commit>

此分類上一篇

在文件中,如上面的文件中,输入编辑或其他选项之一,然后点击保存和输出。

现在你将处于第一个错误的承诺,在文件中进行更改,它们将自动为你排列。

git commit --amend

保存和输出这个和类型

git rebase --continue

移动到下一个选择,直到完成所有的选择。

请注意,这些事情在这个特殊的承诺之后改变了您的所有SHA<unk>。

git commit --amend -m "your new message"

您也可以使用 git filter-branch 为此。

git filter-branch -f --msg-filter "sed 's/errror/error/'" $flawed_commit..HEAD

它不像一个虚假的吉特承诺 - 修正,但它特别有用,如果你已经有一些合并后你的错误的承诺消息。

请注意,这将试图重新写下头部和错误的承诺之间的每一个承诺,所以你应该非常明智地选择你的msg过滤器命令 ;-)

正如前面提到的那样, git commit --amend 是重写最后一份重写的方式。

git commit -a --amend -m "My new commit message"