回答

收藏

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

技术问答 技术问答 298 人阅读 | 0 人回复 | 2023-09-11

我在提交信息中写错了内容。
5 a* H/ N4 x6 @' _( X- S如何更改消息?提交尚未推送。, n* E/ D$ x8 J' W/ q" m
                                                                4 C3 o+ c4 r6 I: b6 D1 s
    解决方案:                                                                + B. u$ w. _% k- `& m2 X+ `) H+ G
                                                                修改最近的提交信息
    git commit --amend
    0 O, B6 ]3 y3 c" _0 O# {
打开您的编辑器,允许您更改最近提交的提交信息。此外,您可以直接在命令行中设置提交信息:& D" ^' A5 a9 ^* f- I/ g) T
    git commit --amend -m "New commit message"
    $ Q# O! s4 N$ `& B* M
……然而,这使得多行提交信息或小更正输入更加麻烦。7 @% o( z/ [/ p6 O$ B) Y
确保您没有任何工作副本的修改上演在这样做之前,否则他们可能会犯罪。暂存的变更不会提交。% c7 R5 i" d( p
已被推送到远程分支的提交消息如果您已经将提交推送到远程分支, -  地修改提交后(如上述) - 您还需要使用以下命令强制推送提交]:! c# ^$ j3 z2 f3 G: J7 W% U

    0 V! ?, s& N1 H6 O
  • git push  
    3 F( t" r2 W5 @4 _; c
  • --force# Orgit push   -f2 X* M. F" W- Y0 b! W
警告:强制推送将使用当地分支覆盖远程分支的状态。如果本地分支没有提交远程分支,您将丢失这些提交。# w) E! x0 ^  D! y- T1 h9 R) O
警告:修改与他人分享的提交时要小心。修改提交本质上是为了提交它们重写有不同的SHA ID,如果其他人有你重写的旧提交副本,就会有问题。任何有旧提交副本的人都需要与你的新重写提交同步,这有时很困难,所以请确保在尝试重写共享提交历史时与他人协调,或避免重写共享提交。# R. P5 o' O3 U, M- ?& j8 c/ Y8 t
执行交互式变基另一种选择是使用交互式变基。这允许你编辑任何需要更新的信息,即使它不是最新的。$ A" {4 ]4 W) S6 p$ q' e
要执行 Git 壁球,请执行以下步骤:
5 _8 p( |3 d+ K: z// n is the number of commits up to the last commit you want to be able to editgit rebase -i HEAD~n提交压缩后 - 选择e/r编辑新闻:
2 k; q' P0 J$ y. M2 @( }( S) A/ Z1 J5 L/ `& T
关于交互式 rebase 的重要说明当你使用git rebase -i HEAD~n可以有更多的比的n条提交。Git 最后收集 n 次提交中的所有提交,如果合并在此范围之间,您也会看到所有提交,因此结果将是 n   。4 a' u2 [& M2 N) V% h
好提示:如果您必须为多个分支执行此操作,并且在修改内容时可能会发生冲突,请设置它git rerere并让 Git 自动为您解决这些冲突。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则