gpt4 book ai didi

git - 如何 "force"来自特定提交的 pull 请求?

转载 作者:行者123 更新时间:2023-12-04 17:47:06 26 4
gpt4 key购买 nike

场景如下:

  • 我们有大约 10 个提交要从我们的 master 分支中恢复。它们引起了某种问题,我需要恢复到特定的提交 123abc;

我们在这里尝试了一些东西:

  • 我们创建了一个名为 feature/something 的新分支,以便还原提交并向主分支执行 pull 请求。但是,VSTS 提示我们没有新的更改。

  • 当我们在 master 分支中执行 git reset --hard 123abc 时,我的本地空间恢复为给定的提交,到目前为止没问题。但是,我无权强制推送到 master 分支。

所以,我的问题是:

  • 关于第 1 次尝试,如何让 git 理解我想将这些更改 pull 到 master 分支并且不提示?

  • 关于第二次尝试,如何从给定的提交强制来自主分支的 pull 请求?

谢谢大家!

最佳答案

无法通过 pull 请求对旧提交创建分支。

如果你没有强制推送权限,你应该在一个新分支上恢复更改并创建 PR 将新分支 merge 到 master 中,或者你可以要求团队项目管理员将 master 分支重置为一个旧的提交。

选项 1:还原 master 分支上的更改

假设 master 分支上的提交历史如下,C1C10 是您要还原的提交:

…---A---C1---C2---…---C10   master
  • 如果master分支没有分支策略,你可以直接在master分支上revert并推送到远程。

    # On local master branch
    git revert C1^..
    git push origin master

    还原更改后,master 分支上的提交历史应该是:

    …---A---C1---C2---…---C10---C10'---C9'---…---C1'   master
  • 如果master分支有分支策略,可以从master创建一个新的分支(比如feature/something分支)分支,然后还原 feature/something 分支上的提交并创建一个 PR 以将 feature/something 分支 merge 到 master 中:

    # On local master branch
    git checkout -b feature/something
    git revert C1^..
    git push -u origin feature/something

    那么提交历史将是:

    …---A---C1---C2---…---C10   master
    \
    C10'---C9'---…---C1' fearure/something

    您可以创建一个 PR 将 feature/something merge 到 master 中。它不应该提示没有新的变化,除非你以相反的方式恢复/merge 。

选项2:要求团队项目管理员重置并强制推送到master分支

如果master 分支上没有分支策略,您可以要求团队项目管理员重置master 分支,然后强制推送(作为您尝试的第二次尝试)。或者你可以请求管理员允许你强制推送。

关于git - 如何 "force"来自特定提交的 pull 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47982404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com