首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何撤销对后面的分支的承诺?

如何撤销对后面的分支的承诺?
EN

Stack Overflow用户
提问于 2015-03-05 19:14:41
回答 2查看 87关注 0票数 1

我的同事昨天惹了点麻烦。他将master移动到origin/master后面大约100次提交(我不知道他是如何做到的,很可能是with this),然后他提交了。结果是,master现在正在执行他的新提交,而上一次提交是origin/master后面的100次提交。看起来是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
master * 
       |
       |  * origin/master 
       |  *
        ... ~one hundred commits below
       |  *
       \  *
         \
          *

我对如何解决这个问题没有信心,所以我们所做的方法就是扔掉回购并再次克隆它。纠正这个错误的正确方法是什么?

他的目的是在hotfix之前创建一个名为“origin/master 100提交”的新分支,并将这些更改提交给它。我觉得他根本不想搬master

我试着修一下这个:

代码语言:javascript
代码运行次数:0
运行
复制
git checkout master
git branch hotfix
#still on master
git reset --hard HEAD~1
git branch -f master <commit of origin/master>
EN

回答 2

Stack Overflow用户

发布于 2015-03-05 19:34:18

我只需创建一个名为hotfix的分支,并将master重置为origin/master

代码语言:javascript
代码运行次数:0
运行
复制
$ git checkout master
$ git branch hotfix
$ git reset --hard origin/master
票数 1
EN

Stack Overflow用户

发布于 2015-03-05 19:50:04

免责声明:我不是git专家。这是我能想到的最好的了。

首先,创建一个具有现有修补程序的新分支:

代码语言:javascript
代码运行次数:0
运行
复制
git checkout -b oops <commit-id>

然后,切换回主并删除所选的提交:

代码语言:javascript
代码运行次数:0
运行
复制
git checkout master
git rebase --onto <commit-id>^ <commit-id>

示例:https://gist.github.com/cmattoon/13aa5c8d711a7ffc7899

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28885833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档