首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将师父带回特定的承诺

将师父带回特定的承诺
EN

Stack Overflow用户
提问于 2021-10-05 13:19:19
回答 1查看 55关注 0票数 2

我从feature创建了一个master分支,并提交了这些更改。在我加入master之前,还有一个人合并了他/她的分支,它没有通过声纳质量检查。然后,我也将我的feature分支合并到了master分支,但在合并后我意识到声纳质量检查失败了,这是因为master在我的分支合并之前就已经被污染了(我在合并之前没有注意构建失败状态)。因此,现在我想将master设置为质量检查成功的提交(我知道)。但是,由于权限的原因,我不能直接对master进行任何推送,我需要为它提出拉请求。

但是在将我的feature分支合并到master之前,我又做了一个愚蠢的事情。我把另一个部门的变更合并在一起,因为它在质量检查上失败了。我不知道声纳质量检查是什么,并认为由于maven构建是成功的,X2也可以合并,但我使事情更糟。

代码语言:javascript
运行
复制
            Another branch : X2 --- 
                                   \
Feature branch :  -- A -> B -> C -> X2 ->D -> E
                /                              \
Mater branch : A --->X1-------------------------- Merge commit ->

现在,我希望大师再次被设定在A,那里所有的质量都通过了。请告诉我我能在这里做些什么。仅供参考,声纳报告中的问题也来自于A之前的提交。似乎声纳正在考虑旧的变化作为新的,并对其进行检查。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-05 13:26:57

好吧,回去有点容易,即使考虑到你必须保持当前的历史:

代码语言:javascript
运行
复制
git checkout the-revision-you-like
git reset --soft master
git commit -m "Let's go back to the-revision-you-like"

现在,您有了一个修改,它使项目回到您喜欢的修订版的内容。

代码语言:javascript
运行
复制
git checkout -b XXXX-revertToGoodSonar # create a new branch for this
git push origin @ # push the branch into remote
# now create the PR and merge

现在棘手的部分是已经合并但不应该合并的特性分支。对于它们中的每一个,您都需要这样做,这样git就会认为它们还没有被合并(或者当您想再次合并它们时,它们会让您头疼)。假设一个特性分支由5个直接修订组成:

代码语言:javascript
运行
复制
git checkout the-feature-branch~5 # checkout the exact revision where it was started from
git cherry-pick HEAD..the-feature-branch # reapply all revisions
git branch -f the-feature-branch # reset branch pointer to new revision

现在,这个分支是完全一样的,除了它是由git认为从未合并过的修订组成的。因此,当您想将它们合并到固定的主分支中时,它不会对应该合并的内容感到困惑。

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

https://stackoverflow.com/questions/69451245

复制
相关文章

相似问题

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