Lua*_*ima 12 git version-control commit github git-commit
我需要更改旧的提交消息。考虑到我之后做了一些其他提交,有没有办法通过 git 或直接在 GitHub 上更改它,而不干扰其他提交?
Soc*_*j07 15
您无法使用git commit --amend,因为这不是您最近的提交。
你会想要做一个变基,类似于
git rebase -i HEAD~3
Run Code Online (Sandbox Code Playgroud)
其中 3 是您想要返回的提交数量。
这是在进行交互式变基。在打开的屏幕或文本窗口中,替换pick为reword。
在下一个屏幕或文本窗口中,您将能够更改提交消息。
执行 rebase 会更改提交哈希值,因此您需要执行 a 操作git push --force-with-lease,否则您的更改将被服务器拒绝。
--force-with-lease--force通常比进行潜在破坏性提交更安全。
请参阅来自发布的链接 @Myffo 的修改旧的或多个提交消息。
小智 7
要更改旧提交的消息,您可以使用
git rebase -i HEAD~4
Run Code Online (Sandbox Code Playgroud)
(4 是任意数字,而不是 4,您必须使用要更改的提交的排名,最新提交被视为 1)
或者
git rebase -i (SHA of the commit you want to edit)^
Run Code Online (Sandbox Code Playgroud)
前任。git rebase -i 993ff4750f38b701383575a95b4efea54cc77658^
(不要忘记在 sha 末尾添加“^”符号)
这些命令将在默认文本编辑器中显示最新提交。在该文本编辑器中找到您想要更改的提交,并将“pick”替换为“reword”。保存退出后。将弹出另一个窗口供您更改消息。
可以用不同的消息替换提交,而不影响现有的提交哈希,而不是重新设置基址并强制推送修改后的分支。
语法如下:
git replace --edit <commit>
Run Code Online (Sandbox Code Playgroud)
这将打开编辑器并显示如下内容:
tree 430db025986d2bf8791be16b370ec37a00f6924b
parent 77efdb98a6e021ca81cd96f7c8c05d25c09e0ad4
author John Doe <johndoe@example.org> 1698219601 +0200
committer John Doe <johndoe@example.org> 1698219601 +0200
<initial commit message>
Run Code Online (Sandbox Code Playgroud)
修改消息并保存。
然后必须使用以下命令显式推送和获取修改后的引用:
git push origin 'refs/replace/*'
git fetch origin 'refs/replace/*:refs/replace/*'
Run Code Online (Sandbox Code Playgroud)
这需要 Git 2.1 或更高版本。
https://git-scm.com/docs/git-replace
| 归档时间: |
|
| 查看次数: |
18239 次 |
| 最近记录: |