回答

收藏

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

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

我在提交信息中写错了内容。- n! ]* v. j; Q- {
如何更改消息?提交尚未推送。2 ]' n: z% l8 X9 z6 Q5 @
                                                                2 a* B9 r2 G6 N: x" A! F3 B- Y. t
    解决方案:                                                                * _0 E2 ]4 k: f. m7 w) v4 ~
                                                                修改最近的提交信息
    git commit --amend
    9 V" s) C! Z8 E( N9 s
打开您的编辑器,允许您更改最近提交的提交信息。此外,您可以直接在命令行中设置提交信息:' a6 N" c, u3 p% T0 n
    git commit --amend -m "New commit message"7 V5 |% ~+ x) ?$ N8 H  q4 J
……然而,这使得多行提交信息或小更正输入更加麻烦。
: {' }% ~1 v9 R8 D" G. t7 G确保您没有任何工作副本的修改上演在这样做之前,否则他们可能会犯罪。暂存的变更不会提交。
! D2 A$ z# U" m( B3 d已被推送到远程分支的提交消息如果您已经将提交推送到远程分支, -  地修改提交后(如上述) - 您还需要使用以下命令强制推送提交]:- E5 i' O1 C* R' }5 F- d' }

    3 Z7 D$ |. a" [( a/ d3 X
  • git push  
    & M! [2 T; \7 C' m  L* v) o
  • --force# Orgit push   -f
    - p& t8 v* O9 x) x$ c5 Y
警告:强制推送将使用当地分支覆盖远程分支的状态。如果本地分支没有提交远程分支,您将丢失这些提交。
4 K$ c/ u$ {4 ^! ?* d警告:修改与他人分享的提交时要小心。修改提交本质上是为了提交它们重写有不同的SHA ID,如果其他人有你重写的旧提交副本,就会有问题。任何有旧提交副本的人都需要与你的新重写提交同步,这有时很困难,所以请确保在尝试重写共享提交历史时与他人协调,或避免重写共享提交。
$ Y0 S$ ], ]  [% B执行交互式变基另一种选择是使用交互式变基。这允许你编辑任何需要更新的信息,即使它不是最新的。
9 Y, C, f, H* G3 q, p; U, D+ M" J2 v要执行 Git 壁球,请执行以下步骤:
0 x! K* o9 c! ^1 S. k// n is the number of commits up to the last commit you want to be able to editgit rebase -i HEAD~n提交压缩后 - 选择e/r编辑新闻:5 I+ E' u+ n' q: u! _2 o9 Y2 N

+ W, Z3 w2 n8 o  y7 I. l关于交互式 rebase 的重要说明当你使用git rebase -i HEAD~n可以有更多的比的n条提交。Git 最后收集 n 次提交中的所有提交,如果合并在此范围之间,您也会看到所有提交,因此结果将是 n   。
4 `" h. c; l5 x0 ^好提示:如果您必须为多个分支执行此操作,并且在修改内容时可能会发生冲突,请设置它git rerere并让 Git 自动为您解决这些冲突。

本帖子中包含更多资源

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

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

本版积分规则