侧边栏壁纸
博主头像
码森林博主等级

一起走进码森林,享受编程的乐趣,发现科技的魅力,创造智能的未来!

  • 累计撰写 146 篇文章
  • 累计创建 74 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

git | 提交错分支怎么办?

码森林
2023-04-07 / 0 评论 / 0 点赞 / 216 阅读 / 411 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-04-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

场景

多个分支并行开发的情况下,将某次 commit提交错分支了,那么久需要从 A 分支将某次 commit 转移到 B 分支,可以这样操作。

操作

1、切换到 A 分支

git checkout A

2、查询 git 日志,找到错误 commit 的ID

git log
——————————————————————————————————————————
commit 74b1e990f409b2f75b46d6330a08af25ef76e164 (HEAD -> srm-20230324, origin/srm-20230324)
Author: 朝雾轻寒 <466595865@qq.com>
Date:   Thu Apr 6 17:23:37 2023 +0800

如我的 commit 的ID 为 74b1e990f409b2f75b46d6330a08af25ef76e164 。

3、切换到B分支

git checkout B

4、将该 commit id pick 到正确分支

git cherry-pick 74b1e990f409b2f75b46d6330a08af25ef76e164

注意:git cherry-pick 后如果代码有冲突,先解决冲突,后 git push。

通过查询 git 日志,可以看到这个分支上已经有这个commit了,但是 commit id 却变了,所以这是拷贝,而不是转移,那么原来的还一定存在。

5、再切换到 A 分支

git checkout A
git log

会发现原来错误的 commit id 还是存在的,这时候把这个 commit 去掉。

6、去掉错误的 commit

如果 commit id 是最新提交的可以使用如下命令,可以毫无痕迹的去除:

git reset --hard ea2c8158e73bdea73e43dd18aa2678887a41c267 # 上一个commit id
git push -f origin srm-20230324 # 强行推送,需要谨慎

如果 commit id 是中间的某次 commit,那么使用 git revert 去回退即可,美中不足的是会增加一条 revert 记录。

0

评论区