我在承诺信中写错了。
我怎么能改變訊息呢?承諾尚未推動。
我在承诺信中写错了。
我怎么能改變訊息呢?承諾尚未推動。
当前回答
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
另一种方法是删除最后的承诺,但保持它的变化,这样你就不会失去你的工作。
git reset --soft HEAD~1
git commit -m 'New and corrected commit message'
我总是这样做,如果我忘记添加文件或做出更改。
请记住指定 - 软而不是 - 硬,否则你会失去这个承诺完全。
其他回答
如果您没有将代码推到您的远程分支(GitHub/Bitbucket),您可以按照下面的命令线更改承诺消息。
git commit --amend -m "Your new message"
如果你在一个特定的分支工作,这样做:
git commit --amend -m "BRANCH-NAME: new message"
如果你已经用错误的消息推了代码,你需要在更改消息时小心,也就是说,一旦你改变承诺消息并尝试再次推它,你会遇到问题。
请在做之前阅读我的全部答案。
git commit --amend -m "BRANCH-NAME : your new message"
git push -f origin BRANCH-NAME # Not a best practice. Read below why?
重要注意:当您直接使用强力压力时,您可能会遇到其他开发人员在同一分支上工作的代码问题,因此要避免这些冲突,您需要在强力压力之前从分支中提取代码:
git commit --amend -m "BRANCH-NAME : your new message"
git pull origin BRANCH-NAME
git push -f origin BRANCH-NAME
這是改變承諾訊息的最佳做法,如果它已經被推動。
如果你想修正的承诺不是最新的承诺:
git rebase --interactive $parent_of_flawed_commit 如果你想修复几个错误的命令,通过最古老的命令的父母。 一个编辑会出现,从你给的所有命令的列表。 更改选择重新命令(或在旧版本的Git,编辑)在任何命令你想修复的前面。 一旦你保存,Git将重新播放列出的命令。
它是非常容易的;你不需要记住它 - 只是记住, git rebase - 互动允许你纠正命令,无论他们是多久以前。
请注意,你不会想改变你已经推的承诺,或者也许你会这样做,但在这种情况下,你将不得不非常小心地与任何可能推你的承诺并完成工作。
如果您正在使用 Git GUI 工具,则有一个按钮称为 修改最后的承诺. 点击该按钮,然后它将显示您的最后的承诺文件和消息. 只需编辑该消息,您可以承诺它一个新的承诺消息。
或使用此命令从控制台/终端:
git commit -a --amend -m "My new commit message"
正如前面提到的那样, git commit --amend 是重写最后一份重写的方式。
git commit -a --amend -m "My new commit message"
如果这是你的最后承诺,只需修改承诺:
git commit --amend -o -m "New commit message"
如果这是一个埋葬的承诺,使用令人惊叹的互动折叠:
git rebase -i @~9 # Show the last 9 commits in a text editor
运行 vimtutor 如果你有时间 hjkl 匹配运动密钥 ← ↓ ↑→ 所有命令都可以用“范围”预定,例如 3j 移动下三个行 i 输入输入模式 - 文本你输入将显示在文件 Esc 或 Ctrlc 输出输入模式和返回“正常”模式 u 到 undo Ctrlr 重定向 dd, dw, dl 删除一个行,字,或字母, 相应 cc, cw, cl 更改一个行,字母,或字母, re
如果你编辑了很多文本,然后转到Dvorak键盘配置,学习触摸类型,并学习Vim。
此分類上一篇
ProTipTM: 不要害怕使用重写历史的“危险”命令进行实验* - Git 不会默认删除您的订单 90 天; 您可以在重写中找到它们:
$ git reset @~3 # Go back three commits
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~3
2c52489 HEAD@{1}: commit: more changes
4a5246d HEAD@{2}: commit: make important changes
e8571e4 HEAD@{3}: commit: make some changes
... earlier commits ...
$ git reset 2c52489
... and you're back where you started