首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修改现有的未推送的提交消息?

如何修改现有的未推送的提交消息?
EN

Stack Overflow用户
提问于 2008-10-07 23:44:48
回答 23查看 2.9M关注 0票数 7.7K

我在提交消息中写错了东西。

我怎样才能更改消息?提交尚未推送。

EN

回答 23

Stack Overflow用户

回答已采纳

发布于 2008-10-07 23:50:35

修改最新的提交消息

代码语言:javascript
复制
git commit --amend

将打开您的编辑器,允许您更改最近提交的提交消息。此外,您还可以在命令行中使用以下命令直接设置提交消息:

代码语言:javascript
复制
git commit --amend -m "New commit message"

…但是,这可能会使多行提交消息或小更正输入起来更加麻烦。

在执行此操作之前,请确保您没有任何工作副本更改,否则它们也会被提交。(未暂存的更改将不会提交。)

更改已推送到远程分支的提交消息

如果您已经将提交推送到远程分支,那么在本地修改提交之后(如上所述),您还将使用以下命令执行need to force push the commit

代码语言:javascript
复制
git push <remote> <branch> --force
# Or
git push <remote> <branch> -f

警告:强制推送会用本地one的状态覆盖远程分支。如果远程分支上有您在本地分支中没有的提交,那么您将丢失这些提交。

警告:修改你已经与其他人共享的提交时要小心。修改提交本质上是将它们重写为具有不同的SHA ID,如果其他人拥有你重写的旧提交的副本,这将带来问题。任何拥有旧提交副本的人都需要将他们的工作与新重写的提交同步,这有时可能很困难,因此在尝试重写共享提交历史时,请确保与其他人协调,或者只是避免完全重写共享提交。

执行交互式rebase

另一种选择是使用交互式rebase。这允许您编辑任何想要更新的邮件,即使它不是最新的邮件。

要执行Git压缩,请执行以下步骤:

代码语言:javascript
复制
// n is the number of commits up to the last commit you want to be able to edit
git rebase -i HEAD~n

压缩提交后-选择用于编辑消息的e/r

关于交互式rebase的重要说明

当您使用git rebase -i HEAD~n时,可能会有比n个提交更多的提交()。Git将“收集”最近n个提交中的所有提交,如果在该范围内的某个地方存在合并,您也会看到所有提交,因此结果将是n+。

小贴士:

如果您必须为多个分支执行此操作,并且在修改内容时可能会遇到冲突,请设置git rerere并让Git自动为您解决这些冲突。

文档

票数 17.3K
EN

Stack Overflow用户

发布于 2010-02-08 12:26:11

代码语言:javascript
复制
git commit --amend -m "your new message"
票数 2.6K
EN

Stack Overflow用户

发布于 2008-10-07 19:52:22

如果您要修复的提交不是最新的提交:

  1. git rebase --interactive $parent_of_flawed_commit

如果你想修复几个有缺陷的提交,请传递其中最老的一个的父级。

  • 编辑器将弹出一个列表,列出自你提交以来的所有提交。

代码语言:javascript
复制
1. Change `pick` to `reword` (or on old versions of Git, to `edit`) in front of any commits you want to fix.
2. Once you save, Git will replay the listed commits. 

  1. 对于你想要改写的每次提交,Git都会把你放回你的编辑器中。对于您想要编辑的每个提交,Git都会将您放入shell。如果你在shell中:

代码语言:javascript
复制
1. Change the commit in any way you like.
2. `git commit --amend`
3. `git rebase --continue`

这个序列的大部分内容将在您执行过程中通过各种命令的输出向您解释。这非常简单;你不需要记住它--只要记住git rebase --interactive可以让你纠正提交,无论它们是在多长时间之前。

请注意,您不希望更改已经推送的提交。也许你是这样做的,但在这种情况下,你将不得不非常小心地与可能拉出你的提交并在其上完成工作的每个人进行沟通。

票数 2.4K
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/179123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档