Git 撤销push、修改commit、合并commit

 一、撤销push

1. 执行 git log 查看提交日志,获取需要回退的版本号 ID

2. 执行 git reset --soft <版本号> ,如 git reset --soft 9d8c980edacd71410ed655,重置至指定版本的提交,达到撤销提交的目的

3. 然后执行 git log 查看提交日志

此时,已重置至指定版本的提交,log中已经没有了需要撤销的提交

git reset 命令分为两种: git reset --soft 与 git reset --hard ,区别是:

git reset --soft 表示只是改变了HEAD的指向,本地代码不会变化,我们使用git status依然可以看到,同时也可以git commit提交。

git reset --hard直接回改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码。

4. 执行 git push origin 分支名 --force ,强制提交当前版本号。

查看github commit 记录,对应的commit记录也撤销了

至此,撤销push提交完成

二、如果commit注释写错了,只是想改一下注释,只需要:

1)修改最后一次提交 commit 的信息

修改文件后add目标文件

然后执行

git commit --amend

此时会进入默认vim编辑器,修改后保存

2)修改非最后一次提交commit

# 当目标commit在最近n次提交内
git rebase -i  HEAD~n  # 在vim模式下修改目标commit的状态,从pick改为edit,保存后退出

git add xxx
git commit --amend  # 修改message信息,保存后退出

# 修改结束后,结束rebase
git rebase --continue

三、cherry-pick

1)单个commit

git cherry-pick commit_a

2)多个commit

git cherry-pick commit_a commit_b commit_c
git cherry-pick commit_a^..commit_c    (包含commit_a)
git cherry-pick commit_a..commit_c    (不包含commit_a)

四、commit 合并

第1步:在首次提交记录上rebase

右键“第1次修改”=> Interactively Rebase from Here

第2步:合并提交(选squash或fixup)

选中“第2次修改”=> 点击“Squash”

选中“第3次修改”=> 点击“Squash”

这里也可以ctrl+A,然后点击“Squash”,效果一模一样。

第3步:重命名提交

第4步:执行rebase

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值