……然而,这使得多行提交信息或小更正输入更加麻烦。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 自动为您解决这些冲突。