为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Git
千万里不及你 2019-06-03 15:19:27
如何修改现有的未推送提交消息?我在提交信息中写错了东西。我怎样才能改变信息?承诺尚未被推迟。
查看完整描述

4 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

修改最近的提交消息

git commit --amend

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

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

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

确保您没有任何工作副本更改分阶段否则他们也会被判有罪的。(非阶段性)更改不会提交。)

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

如果您已经将提交推到远程分支,那么您将需要强制提交有:

git push <remote> <branch> --force# Orgit push <remote> <branch> -f

警告:强制推送将用本地分支的状态覆盖远程分支。..如果在本地分支中没有远程分支提交,则将要失去那些承诺。

警告:在修改你已经和其他人分享过的承诺时要小心。实质上作出的修订重写他们会有不同的ID,如果其他人有您重写的旧提交的副本,就会产生问题。任何拥有旧提交副本的人都需要将他们的工作与您新重新编写的提交同步,这有时会很困难,因此,在尝试重写共享提交历史时,请确保与其他人协调,或者只是完全避免重写共享提交。


使用交互式重基

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

为了做一个吉特壁球,请遵循以下步骤:

// X is the number of commits to the last commit you want to be able to edit
git rebase -i HEAD~X

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


关于交互式重基的重要注记

当您使用git rebase -i HEAD~X有可能更多X承诺。Git将在最后一次“收集”所有提交。X提交,如果在这个范围之间有一个合并,您也会看到所有的提交,因此结果将是X+。

好消息:

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


文献资料


查看完整回答
反对 回复 2019-06-03
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

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


查看完整回答
反对 回复 2019-06-03
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

若要修改上一次提交,请执行所需的更改,然后执行这些更改,然后运行

git commit --amend

这将在文本编辑器中打开一个表示新提交消息的文件。它首先填充了旧提交消息中的文本。根据需要更改提交消息,然后保存文件并退出编辑器以完成。

若要修改上一次提交并保留相同的日志消息,请运行

git commit --amend -C HEAD

若要完全删除前一次提交,请运行

git reset --hard HEAD^

如果要编辑多条提交消息,请运行

git rebase -i HEAD~commit_count

(替换提交计数)要编辑的提交次数。)此命令启动编辑器。将第一个提交(要更改的提交)标记为“编辑”,而不是“选择”,然后保存并退出编辑器。进行要提交的更改,然后运行

git commit --amend
git rebase --continue

注意:您也可以从打开的编辑器中“进行所需的更改”。git commit --amend


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 875 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信