git怎样撤销一次分支的合并merge

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git怎样撤销一次分支的合并merge相关的知识,希望对你有一定的参考价值。

如果确定放弃这次合并的提交,假如是 merge 了错误的分支到 master,先通过git reflog或者 gitg、gitk、qgit 等工具确定你 merge 之前 master 所在的 commit,然后在 master 分支上使用
git reset --hard <commit
重置头指针。一般来说,在 master 上直接执行
git reset --hard HEAD~
也可以回到合并之前的提交,但
git reset --hard
命令还是使用确定的 commit 为好。注意,
git reset --hard
命令有风险,除非十分确定要放弃当前提交,否则最好先git branch为当前的提交建立个新的分支引用后再继续,待确定无误后删除即可。
如果错误的合并之后又有了新的提交,可以在完成前述正确的合并之后,通过
git rebase --onto <错误的合并提交 <正确的合并提交 <新提交所在分支
来在正确的合并提交上重建新的提交。
git rebase --onto
命令所重建的提交序列最好是线性的,否则非线性的提交会变成线性的。若需要保存非线性的提交历史,可以考虑使用
参数,不过结果很不可靠,具体视提交的非线性程度而定。
参考技术A 如果确定放弃这次合并的提交,假如是 merge 了错误的分支到 master,先通过git reflog或者 gitg、gitk、qgit 等工具确定你 merge 之前 master 所在的 commit,然后在 master 分支上使用
git reset --hard <commit
重置头指针。一般来说,在 master 上直接执行
git reset --hard HEAD~
也可以回到合并之前的提交,但
git reset --hard
命令还是使用确定的 commit 为好。注意,
git reset --hard
命令有风险,除非十分确定要放弃当前提交,否则最好先git branch为当前的提交建立个新的分支引用后再继续,待确定无误后删除即可。
如果错误的合并之后又有了新的提交,可以在完成前述正确的合并之后,通过
git rebase --onto <错误的合并提交 <正确的合并提交 <新提交所在分支
来在正确的合并提交上重建新的提交。
git rebase --onto
命令所重建的提交序列最好是线性的,否则非线性的提交会变成线性的。若需要保存非线性的提交历史,可以考虑使用
参数,不过结果很不可靠,具体视提交的非线性程度而定。

git使用教程7-pycharm 使用 git merge 合并分支

前言

前面一篇已经用 pycharm 创建了分支,当我们在某个分支上代码开发完成,代码测试没问题后需要把分支上的代码合并到 master 分支上。
这样保证 master 分支的代码永远都是最新的,也是最干净的,这样才可以持续的开发自己的项目。本篇讲解如何使用 pycharm 合并自己的分支。

查看当前分支

打开 pycharm-VCS-Git-Branches ,查看当前项目的分支

技术图片

从上图可以看到,当前的项目分支是:yoyoketang

提交分支代码

在当前分支:yoyoketang 上新增一些代码

技术图片

把新增的代码commit后再push到yoyoketang分支
技术图片

可以看到 yoyoketang 分支上 test_yoyoketang.py 文件已经 push 成功,但是 master 分支上并没有,接下来就把 yoyoketang 分支合并到 master 分支。

技术图片

merge合并分支

先查看 master 分支是没有 test_yoyoketang.py 文件的。

技术图片

pycharm 上先VCS-Git-Branches-Checkout到 master 分支上

技术图片

打开VCS-Git-Merge Changes

技术图片

从Branches to merge 选项框里面选择需要合并的分支,前面不带 remotes/的是本地分支,带remotes/是远程分支。
这里选本地的 yoyoketang 分支和 remotes/yoyoketang 都可以,因为前面已经push过去了

技术图片

点merge之后可以看到,有一个 Created 是新增的 test_yoyoketang.py 文件,一个Updated 是之前更新的代码。

技术图片

此时代码已经合并到本地的 master 分支上了(此时只是本地仓库的合并,并没有合并到远程仓库)。

接下来push下就可以推送到远程仓库了

技术图片

push成功后打开远程仓库的web页面,查看 master 分支,就会发现已经合并成功

技术图片

以上是关于git怎样撤销一次分支的合并merge的主要内容,如果未能解决你的问题,请参考以下文章

如何撤销Git的一次分支合并操作

git使用:怎样merge一个分支的某个时间段内的所有提交到另一个分支

git不允许除feature分支和master外的分支merge到release

git分支合并撤销;git修改已push的commit信息; git 撤销操作;

git 常用的撤销操作

git分支合并