您的位置:首页 > 其它

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

2016-06-13 10:30 459 查看
如何修改你已经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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: