Git 刚刚提交的代码,发现写错了怎么办?

刚提交了一个代码,发现有几个字写错了:
在这里插入图片描述

怎么修复?

当场再写一个修复这几个错别字的 commit?可以是可以,不过还有一个更加优雅和简单的解决方法:commit -—amend

“amend” 是「修正」的意思。在提交时,如果加上 --amend 参数,Git 不会在当前 commit 上增加 commit,而是会把当前 commit 里的内容和暂存区(stageing area)里的内容合并起来后创建一个新的 commit用这个新的 commit 把当前 commit 替换掉。所以 commit --amend 做的事就是它的字面意思:对最新一条 commit 进行修正。

具体地,对于上面这个错误,你就可以把文件中的错别字修改好之后,输入:

git add 笑声.txt
git commit --amend

在这里插入图片描述

Git 会把你带到提交信息编辑界面。可以看到,提交信息默认是当前提交的提交信息。你可以修改或者保留它,然后保存退出。然后,你的最新 commit 就被更新了。
在这里插入图片描述

小结

这一节的内容只有一点:用 commit --amend 可以修复当前提交的错误。使用方式:

git commit --amend

需要注意的有一点:commit --amend 并不是直接修改原 commit 的内容,而是生成一条新的 commit

修改提交 Commit 时写错提交信息,需要根据提交是否已推送到远程仓库来分类处理,以下是不同场景下的解决办法: ### 未 Push 的最新提交 可使用 `git commit --amend` 命令来修改,该命令仅可更改最后一次提交的注释信息。若想直接指定新信息,使用以下命令: ```bash git commit --amend -m "Corrected commit message" ``` 若适用于复杂修改,可使用如下命令,随后进入 vim 命令窗口,按 `i` 进入编辑模式,在 `#` 的最上方删掉错误的描述,重新输入注释,按 `Esc` 退出编辑模式,按 `:wq` 保存并退出即可: ```bash git commit --amend ``` 若还需修改提交的内容,先在工作目录中进行所需更改,运行 `git add` 命令将更改的文件添加到暂存区,再运行 `git commit --amend` 命令。默认情况下,文本编辑器将会打开,显示最近提交提交信息。编辑相应行并保存文件,添加更改的文件到暂存区。关闭文本编辑器后,Git 将创建一个新的提交来替代最近的提交[^2][^3][^4]。 ### 已 Push 的最新提交 使用 `git commit --amend` 修改提交信息后,需要使用 `git push --force` 强制推送到远程仓库: ```bash git commit --amend git push --force ``` ### 已 Push 的历史提交 使用 `git rebase -i` 命令交互式地修改历史提交,然后使用 `git push --force` 强制推送到远程仓库。假设需要修改倒数第 3 个历史提交,可使用如下命令: ```bash git rebase -i HEAD~3 ``` 执行上述命令后,会打开一个文本编辑器,列出最近的 3 个提交。将需要修改提交前面的 `pick` 改为 `reword`,保存并退出编辑器。接着会打开另一个文本编辑器,让你修改提交信息,修改完成后保存并退出,最后使用以下命令强制推送到远程仓库: ```bash git push --force ``` ### 注意事项 - 使用 `--force` 选项强制推送时要谨慎,因为它会覆盖远程仓库的历史记录,可能会影响其他开发者的工作。 - 修改历史提交可能会导致其他分支产生冲突,因此在操作前最好先备份重要的代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半夏_2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值