回答

收藏

如何修改指定的提交?

技术问答 技术问答 258 人阅读 | 0 人回复 | 2023-09-12

我通常会提交一份提交清单供审核。如果我有以下提交:7 |  N$ a  ?# Z8 o) J
[ol]HEAD
4 y8 Z4 c9 T! b5 c( e: D2 E: |4 d% HCommit37 E7 R  U- H; |( |: R! ~. I
Commit2
, q4 t8 M4 J- j" P. KCommit1[/ol]…我知道我可以用git commit --amend. Commit但是,鉴于它没有提交,我该怎么修改呢?HEAD?
7 [9 Y6 S" k6 B+ N) a+ I                                                               
3 {! K4 D* a+ c0 ]  u9 p) j    解决方案:                                                                * u. Q( v" `. @; J+ y& K
                                                                您可以使用git rebase。例如,如果要修改 commit bbc643cd,请运行
9 x3 r8 U' q: K/ k$ git rebase --interactive 'bbc643cd^'请注意^在命令结束时插入符号,因为您实际上需要重新定位要修改的提交之前的提交。
- V+ q' E2 R( _* i# {在默认编辑器中,提到bbc643cd行中修改pick为edit。
/ F( k; l0 h; p% l3 [保存文件并退出:git 解释并自动执行文件中的命令。你会发现自己刚刚创建 commit 以前的情况bbc643cd。$ ?3 l. _- w5 T9 |2 F* h
此时,bbc643cd这是您的最后一次提交,您可以很容易地修改它:更改它,然后使用以下命令:6 x4 n8 d, Y- F- }/ t; S
$ git commit --all --amend --no-edit之后,键入:
: {1 _/ l$ \0 ?$ git rebase --continue返回到之前的 HEAD 提交。3 H! [( M5 e" z
警告:请注意,应提交此更改以及所有子项的 SHA-1 - 换句话说,这将重写从那时起的历史记录。如果使用命令推送,可以打破 reposgit push --force
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则