回答

收藏

如何修改指定的提交?

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

我通常会提交一份提交清单供审核。如果我有以下提交:8 @6 G' |( \5 `
[ol]HEAD
. Y  O! q  P/ ^$ |Commit3
# A, z$ |% z8 Z* U2 SCommit23 u, ^. x! V! N/ m1 O$ @; y
Commit1[/ol]…我知道我可以用git commit --amend. Commit但是,鉴于它没有提交,我该怎么修改呢?HEAD?
0 O) c0 A  y3 Z+ Y8 i                                                               
; {0 r. n8 S  p1 X/ R  [* u; h    解决方案:                                                                5 W+ O4 |1 I. p# H! p8 c2 ?
                                                                您可以使用git rebase。例如,如果要修改 commit bbc643cd,请运行
& m9 N4 e7 J" T0 s6 i9 }$ git rebase --interactive 'bbc643cd^'请注意^在命令结束时插入符号,因为您实际上需要重新定位要修改的提交之前的提交。: O* l: z5 [+ F7 ~! N( v
在默认编辑器中,提到bbc643cd行中修改pick为edit。
: P5 I$ U2 E5 d; u保存文件并退出:git 解释并自动执行文件中的命令。你会发现自己刚刚创建 commit 以前的情况bbc643cd。* o, c4 Q/ p+ m' U5 Z" @: X7 x! H+ {
此时,bbc643cd这是您的最后一次提交,您可以很容易地修改它:更改它,然后使用以下命令:3 J) m" _6 ^4 ]1 b
$ git commit --all --amend --no-edit之后,键入:& [# B1 Q* D2 @. E5 c* X# M
$ git rebase --continue返回到之前的 HEAD 提交。4 {/ b# n* y+ H6 r
警告:请注意,应提交此更改以及所有子项的 SHA-1 - 换句话说,这将重写从那时起的历史记录。如果使用命令推送,可以打破 reposgit push --force
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则