git实战总结-----在一系列提交中修改一个特定的commit

本文详细介绍如何使用Git修改已提交的提交记录,包括回退到指定提交、修改提交内容及消息等步骤。此外还介绍了如何拆分提交以及如何通过rebase进行变更撤销。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何修改你已经commit的一个提交?


比如


HEAD 

commit3

commit2

commit1(需要修改这个提交)

commit0(db7661ce4cb459da594a947977d0a86d14d40693)


我上网查找并结合自己实际检验,方法如下:

1.先git rebase到要修改的commit之前那个commit

git rebase --interactive 'db7661ce4cb459da594a947977d0a86d14d40693' 


2.在默认的编辑器中,把你想修改的commit的标签从pick修改成edit。然后做如下操作

git commit --all --amend --no-edit


3.git log检查当前的commit是不是你要修改的commit

修改你的提交,并修改这个commit


我事先有把相关修改使用git stash隐藏起来

这样我就可以用git stash pop 恢复我的修改


然后

 git status
 git add *
 git commit --amend 

修改特定的提交。

git rebase --continue
git log
git rebase --continue
git log


如果有必要再推送到指定的提交上。
git push origin 0d163929c2407b00a8c16b745b520d07b854c207:refs/changes/857344


要拆分一个commit的方法如下:


1. git rebase -i <targetCommit>~1 : 回到拆分点,用edit来表示需要更改

2. git reset --mixed HEAD~1 : 将这个targetCommit的改动放回working directory, object store 和 index都还原成这个commit尚未放入的状态

3. 重新commit

4. git rebase --continue


======================================================================


Please help to revert one QC change we don't need. You could add this revert in between last QC change and first XXX change. If you do revert on top of your rebase result, revert will fail.
git co qc/AU_LINUX_ANDROID_LA.UM.6.5.R1.07.00.00.312.015
git revert dd664d3bb2f18799e36c9ccd5335856f9b074260
git rebase -i --autosquash --onto HEAD qc/AU_LINUX_ANDROID_LA.UM.6.5.R1.07.00.00.312.015 origin/sandbox/wangxf14/qc_AU_LINUX_ANDROID_LA.UM.6.5.R1.07.00.00.312.015_rebase

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值