回答

收藏

如何修改指定的提交?

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

我通常会提交一份提交清单供审核。如果我有以下提交:! z1 }: n/ a9 Q% R
[ol]HEAD& y! I, R1 _3 u8 M( P1 }* [8 l3 a
Commit3/ {' P6 i1 V8 b6 ?
Commit2( H+ |" C; @" m3 ~  e) c
Commit1[/ol]…我知道我可以用git commit --amend. Commit但是,鉴于它没有提交,我该怎么修改呢?HEAD?7 C! N$ W/ R) A4 V, |, K
                                                               
, e. H/ r7 s) g    解决方案:                                                                5 \8 l) N0 b& X+ L
                                                                您可以使用git rebase。例如,如果要修改 commit bbc643cd,请运行
0 M$ t7 }' }8 a) |) j+ }* N! J4 }; _! j$ git rebase --interactive 'bbc643cd^'请注意^在命令结束时插入符号,因为您实际上需要重新定位要修改的提交之前的提交。
2 a( B& m* ^+ e* {+ r在默认编辑器中,提到bbc643cd行中修改pick为edit。" U* Q' d  z( ^  s& k  x
保存文件并退出:git 解释并自动执行文件中的命令。你会发现自己刚刚创建 commit 以前的情况bbc643cd。
* w/ d' `% C0 i: i5 e& z此时,bbc643cd这是您的最后一次提交,您可以很容易地修改它:更改它,然后使用以下命令:/ c4 @: ?1 j* g
$ git commit --all --amend --no-edit之后,键入:& I$ _% O8 ]# k8 }4 H8 J
$ git rebase --continue返回到之前的 HEAD 提交。6 x+ G( {' h( I2 @6 l' ~6 p
警告:请注意,应提交此更改以及所有子项的 SHA-1 - 换句话说,这将重写从那时起的历史记录。如果使用命令推送,可以打破 reposgit push --force
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则