回答

收藏

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

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

我在提交信息中写错了内容。; _& z: I; s- N' H7 s0 `9 I6 R6 }
如何更改消息?提交尚未推送。+ O4 r2 Y" ~: O0 v) o
                                                               
% n: V7 |- u) i' [    解决方案:                                                                + n4 l" k3 q. {  H
                                                                修改最近的提交信息
    git commit --amend
    6 a" z" d' P8 j; {9 q. E
打开您的编辑器,允许您更改最近提交的提交信息。此外,您可以直接在命令行中设置提交信息:
! T/ Y( k/ F& D7 \0 j3 `* d$ j
    git commit --amend -m "New commit message"
    - {$ g1 ?9 K% @2 ~1 u- g9 y
……然而,这使得多行提交信息或小更正输入更加麻烦。2 B* R8 U+ n9 \! h
确保您没有任何工作副本的修改上演在这样做之前,否则他们可能会犯罪。暂存的变更不会提交。9 C+ X7 j' ]3 ^" g, P
已被推送到远程分支的提交消息如果您已经将提交推送到远程分支, -  地修改提交后(如上述) - 您还需要使用以下命令强制推送提交]:
9 y+ K3 P2 o. U: r9 ~: A( I
    - K' U1 t- G7 a: d9 a- p2 e
  • git push  8 x' i( [& f8 C$ \! Y3 x
  • --force# Orgit push   -f
    6 W: C4 v' m2 ?
警告:强制推送将使用当地分支覆盖远程分支的状态。如果本地分支没有提交远程分支,您将丢失这些提交。& w- _# V5 c# G! E
警告:修改与他人分享的提交时要小心。修改提交本质上是为了提交它们重写有不同的SHA ID,如果其他人有你重写的旧提交副本,就会有问题。任何有旧提交副本的人都需要与你的新重写提交同步,这有时很困难,所以请确保在尝试重写共享提交历史时与他人协调,或避免重写共享提交。; M  ?- @. q* k
执行交互式变基另一种选择是使用交互式变基。这允许你编辑任何需要更新的信息,即使它不是最新的。, E( Y) c: ~+ }% X, A# }% }* a
要执行 Git 壁球,请执行以下步骤:
0 l  }* }1 ~# d' T5 J& d9 C& }// n is the number of commits up to the last commit you want to be able to editgit rebase -i HEAD~n提交压缩后 - 选择e/r编辑新闻:1 Q9 y: O: ~) f; c; U+ W1 _
  c4 R7 @8 e/ c
关于交互式 rebase 的重要说明当你使用git rebase -i HEAD~n可以有更多的比的n条提交。Git 最后收集 n 次提交中的所有提交,如果合并在此范围之间,您也会看到所有提交,因此结果将是 n   。# f( t6 s: ~7 G
好提示:如果您必须为多个分支执行此操作,并且在修改内容时可能会发生冲突,请设置它git rerere并让 Git 自动为您解决这些冲突。

本帖子中包含更多资源

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

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

本版积分规则