回答

收藏

如何修改指定的提交?

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

我通常会提交一份提交清单供审核。如果我有以下提交:
6 W) {# Y: }8 O[ol]HEAD
  u, g" O! A5 I. ECommit34 E3 u- J" {6 c  L' i$ Z7 v" w
Commit2
) F8 N$ l, S! l4 ~Commit1[/ol]…我知道我可以用git commit --amend. Commit但是,鉴于它没有提交,我该怎么修改呢?HEAD?1 r2 j" b1 Y/ O$ B+ x
                                                               
2 B9 D: k! q) t    解决方案:                                                               
+ @" Q' |4 _6 t* ^. b" ~. K5 P                                                                您可以使用git rebase。例如,如果要修改 commit bbc643cd,请运行! r3 b" S  P$ D9 R. T5 a( f  Z" [
$ git rebase --interactive 'bbc643cd^'请注意^在命令结束时插入符号,因为您实际上需要重新定位要修改的提交之前的提交。9 W* g3 i* H, ]# Z
在默认编辑器中,提到bbc643cd行中修改pick为edit。
/ D% E: E; {+ f5 a6 A* @保存文件并退出:git 解释并自动执行文件中的命令。你会发现自己刚刚创建 commit 以前的情况bbc643cd。
7 l# T# d' M1 C' v6 M此时,bbc643cd这是您的最后一次提交,您可以很容易地修改它:更改它,然后使用以下命令:
8 M* u1 W* F9 K' Y/ [1 W$ git commit --all --amend --no-edit之后,键入:/ e7 b9 v% O. X8 O- ~; h' n
$ git rebase --continue返回到之前的 HEAD 提交。
& \' H( U0 o$ j7 I( d8 o  e. Q; t& U5 N警告:请注意,应提交此更改以及所有子项的 SHA-1 - 换句话说,这将重写从那时起的历史记录。如果使用命令推送,可以打破 reposgit push --force
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则