我在承诺信中写错了。

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


当前回答

如果你只想更改你的最后一个消息,你应该使用 - 单旗或它的缩短 - 或与承诺 - 更改:

git commit --amend -o -m "New commit message"

这确保你不会偶然提高你的承诺与步行物品. 当然,最好有一个合适的 $EDITOR 配置. 然后你可以放弃 -m 选项, Git 将提前填写承诺消息与旧的。

其他回答

更新您的最后一个错误的承诺消息与新的承诺消息在一个行:

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

或者,尝试 Git 重新设置如下:

# You can reset your head to n number of commit
# NOT a good idea for changing last commit message,
# but you can get an idea to split commit into multiple commits
git reset --soft HEAD^

# It will reset you last commit. Now, you
# can re-commit it with new commit message.

使用重新设置将命令分成较小的命令

git 重新设置可以帮助您将一个承诺分成多个承诺:

# Reset your head. I am resetting to last commits:
git reset --soft HEAD^
# (You can reset multiple commit by doing HEAD~2(no. of commits)

# Now, reset your head for splitting it to multiple commits
git reset HEAD

# Add and commit your files separately to make multiple commits: e.g
git add app/
git commit -m "add all files in app directory"

git add config/
git commit -m "add all files in config directory"

在这里,你成功地将最后的承诺分成两项承诺。

对于任何正在寻找一个Windows/Mac GUI来帮助编辑旧消息(即不仅仅是最新消息),我会推荐Sourcetree。

此分類上一篇

对于尚未推到远程的承诺:

在“Log/History”选项卡中,右键单击您要编辑的承诺(s)下图中的附属线的输入,并选择“Rebase children of <commit ref> interactively..." 选择您要更改的承诺消息的整个行。

...或......对于已经推出的承诺:

遵循这个答案中的步骤,这些类似于上面的,但需要一个进一步的命令运行从命令线(git push 起源 <branch> -f) 强迫推分。

我添加了 Aliases reci 和 recm for recommit (amend) 它. 现在我可以用 git recm 或 git recm -m:

$ vim ~/.gitconfig

[alias]

    ......
    cm = commit
    reci = commit --amend
    recm = commit --amend
    ......

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

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

您可以使用 git-rebase-reword

它旨在以同样的方式编辑任何承诺(不只是最后) - 修改

$ git rebase-reword <commit-or-refname>

它被命名为反对互动的行动,以改变一个承诺:“反对”。 查看此帖子和人 - 部分互动模式-

例子:

$ git rebase-reword b68f560
$ git rebase-reword HEAD^