回答

收藏

如何修改指定的提交?

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

我通常会提交一份提交清单供审核。如果我有以下提交:
6 a# T9 |- E9 v1 p6 o[ol]HEAD
" \8 Y3 m: z: f5 l3 w+ k  gCommit34 k# m$ M: s- W' Q7 n
Commit2
' \8 }* D9 X2 s# P* Y4 K* p2 d. fCommit1[/ol]…我知道我可以用git commit --amend. Commit但是,鉴于它没有提交,我该怎么修改呢?HEAD?
; L( V, @' V. F1 O% |$ Q                                                               
8 j! l: S& P+ e& v7 |* f2 o1 e8 k    解决方案:                                                                7 x, V1 q1 V4 ~
                                                                您可以使用git rebase。例如,如果要修改 commit bbc643cd,请运行
: p- x! U' ?" O; q2 T4 ~- _$ git rebase --interactive 'bbc643cd^'请注意^在命令结束时插入符号,因为您实际上需要重新定位要修改的提交之前的提交。
, P5 N5 S+ y/ j. U/ u# |6 a在默认编辑器中,提到bbc643cd行中修改pick为edit。6 O3 M) }$ G" Z
保存文件并退出:git 解释并自动执行文件中的命令。你会发现自己刚刚创建 commit 以前的情况bbc643cd。
; U0 ]; g7 Q' t此时,bbc643cd这是您的最后一次提交,您可以很容易地修改它:更改它,然后使用以下命令:
& |: P0 e7 m1 E. d" K$ git commit --all --amend --no-edit之后,键入:
+ z8 C/ {, c) D7 r& R$ git rebase --continue返回到之前的 HEAD 提交。$ l( b( M3 E% v0 ]
警告:请注意,应提交此更改以及所有子项的 SHA-1 - 换句话说,这将重写从那时起的历史记录。如果使用命令推送,可以打破 reposgit push --force
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则