有没有一种方法可以修改一个提交,而不弹出vi(或你的$EDITOR)选项来修改你的提交消息,而是简单地重用之前的消息?


当前回答

git commit -C HEAD - modify将做你想做的。c选项从另一个提交中获取元数据。

其他回答

git commit -C HEAD - modify将做你想做的。c选项从另一个提交中获取元数据。

从Git 1.7.9开始,你还可以使用Git commit - modify -no-edit来获得结果。

注意,这将不包括来自其他提交的元数据,如时间戳或标记,这些对您来说可能重要,也可能不重要。

另一种(愚蠢的)可能性是git commit——modify <<<:wq如果你用vi(m)作为$EDITOR。

要扩展已接受的答案,你还可以这样做:

git commit --amend --no-edit -a

添加当前更改的文件。

你可以保存一个使用已接受答案的别名,这样使用:

git oops

添加所有内容,并使用相同的提交消息进行修正

git oops -m "new message"

使用一个新的提交消息。


这是别名:

 oops = "!f(){ \
    git add -A; \
    if [ \"$1\" == '' ]; then \
        git commit --amend --no-edit; \
    else \
        git commit --amend \"$@\"; \
    fi;\
}; f"