我已经提交了git并随后推送。我想更改提交消息。如果我理解正确,这是不可取的,因为在我进行此类更改之前,可能有人从远程存储库中删除了内容。如果我知道没人拉过呢?
有办法做到这一点吗?
我已经提交了git并随后推送。我想更改提交消息。如果我理解正确,这是不可取的,因为在我进行此类更改之前,可能有人从远程存储库中删除了内容。如果我知道没人拉过呢?
有办法做到这一点吗?
当前回答
如果使用-S参数提交工作消息,则会发生以下事件:
git checkout branch
git commit --amend -m "Your new message"
在这一点上,不要忘记您添加了一个更改,而您的遥控器是不同的,这就是为什么您需要这样做的原因:
git push --force
如果您使用VSCode,您将看到不同之处,使用--force参数,您将忽略git pull,并将更改后的消息推送到相同的提交。
其他回答
只要说:
git commit --amend -m "New commit message"
然后
git push --force
如果使用-S参数提交工作消息,则会发生以下事件:
git checkout branch
git commit --amend -m "Your new message"
在这一点上,不要忘记您添加了一个更改,而您的遥控器是不同的,这就是为什么您需要这样做的原因:
git push --force
如果您使用VSCode,您将看到不同之处,使用--force参数,您将忽略git pull,并将更改后的消息推送到相同的提交。
我第一次尝试重命名已经推送的大约6条旧提交消息,之后我又做了进一步的提交。
因此,这是最糟糕的案例“案例4:已推送+旧提交”。
我是Vim(现在是Nvim)的用户,也是Vim《逃犯》的超级粉丝。所以我就是这样做的。
这是您在《逃犯》中关于重新定基的一般帮助:
Rebase maps ~
ri Perform an interactive rebase. Uses ancestor of
u commit under cursor as upstream if available.
rf Perform an autosquash rebase without editing the todo
list. Uses ancestor of commit under cursor as
upstream if available.
ru Perform an interactive rebase against @{upstream}.
rp Perform an interactive rebase against @{push}.
rr Continue the current rebase.
rs Skip the current commit and continue the current
rebase.
ra Abort the current rebase.
re Edit the current rebase todo list.
rw Perform an interactive rebase with the commit under
the cursor set to `reword`.
rm Perform an interactive rebase with the commit under
the cursor set to `edit`.
rd Perform an interactive rebase with the commit under
the cursor set to `drop`.
r<Space> Populate command line with ":Git rebase ".
r? Show this help.
获取提交列表。:Git日志--单行我想修复第12行的提交消息(4d43a1b构建(MPL-402):editorconfigfixformesages.json),因为它不是正确的常规提交格式。我将光标放在提交哈希4d43a1b上,然后键入rw这将“在光标设置为reword的情况下执行一个交互式rebase和commit”。请注意,与gitrebase-i HEAD~X相比,这是多么好-知道X是什么并不是那么简单。现在,这将为您提供正确的gitrebase命令。所以用:wq写并退出缓冲区然后按照git/逃犯指导的步骤进行操作。我的一个提交出现了合并冲突,我通过正常的fugitve合并冲突过程解决了这个问题。
希望这足以让你度过第一个“我以前从未做过一次重新训练,我到底该做什么?”的难关。如果您需要后续步骤的帮助,请给我留言。
如果您想修改一个较旧的提交,而不是最后一个提交,则需要使用rebase命令,如Github帮助页面“修改较旧或多个提交消息的消息”部分中所述
命令1您需要使用以下命令更改提交消息gitcommit--modify-m“新的正确消息”命令2添加新消息后,执行以下命令git push-f origin<your_branch_name>