我正在尝试在我的 Azure DevOps 托管的 git 存储库中实现类似 gitflow 的工作流。我已经为我的 QA 服务器启用了 CI/CD,该服务器从针对开发分支的 pull 请求完成时触发。
另外,顺便说一下,我在开发上启用了 pull 请求分支策略,因此如果没有 PR 和代码审查,功能分支无法直接 merge 。
这一切都有效,除非 pull 请求完成后,他们将 origin/develop 留在本地开发之后。

所以现在如果我:git checkout develop我看到这条消息:Your branch is ahead of 'origin/develop' by 11 commits.
所以,在正常情况下,我认为解决这个问题的方法是:git pushgit push origin -- 来自开发分支。

但是由于存在需要 pull 请求的有效分支策略,我无法推送。当我尝试 push 开发时,我收到以下消息:! [remote rejected] develop -> develop (TF402455: Pushes to this branch are not permitted; you must use a pull request to update this branch.)好吧,我已经对这个分支做了 11 个 pull 请求。
知道如何解决这个问题吗?

以开发为目标的 pull 请求应该与本地保持同步。

编辑:如评论中所述,我已禁用强制 pull 请求的分支策略。然后我做了一个 git push 来清理情况。但这里是来自开发的日志,如下要求:

>git log
commit 545319a657801f3c279f727c53aa7d5b9d9f9d6e (HEAD -> develop, origin/develop, origin/master, origin/HEAD, master)
Merge: fe89f0a dad0fa3
Author: Ken Hadden <[email protected]>
Date:   Thu Mar 28 18:09:32 2019 -0700

    Merge branch 'master' into develop

commit fe89f0af4a9fe3848880854dbd88e3980e81bdb4
Merge: 9b37a92 c7fe732
Author: Ken Hadden <[email protected]>
Date:   Thu Mar 28 12:15:48 2019 -0700

    Merge branch 'develop' of https://mycompany.visualstudio.com/mycompany/_git/mycompany into develop

commit c7fe7329df9d40d0ed6db0ddf9f46ab5173aab85 (tag: 201)
Merge: 2386bbe c3b8468
Author: Ken Hadden <[email protected]>
Date:   Mon Mar 25 20:50:07 2019 +0000

    Merged PR 7: Build from PR test 3

commit 9b37a9238f369d0fd939b15446e2598a4b984cda
Merge: d3e27c1 c3b8468
Author: Ken Hadden <[email protected]>
Date:   Mon Mar 25 13:41:12 2019 -0700

    test 5

commit c3b8468f49d6426469699dcc19c01fc183823355
Author: Ken Hadden <[email protected]>
Date:   Mon Mar 25 13:39:45 2019 -0700

    test 4

commit d3e27c1b6abba1e0978a0c2673ebf5969ced37a0
Merge: 0415cf7 2386bbe
Author: Ken Hadden <[email protected]>
Date:   Mon Mar 25 13:37:37 2019 -0700

    Merge branch 'develop' of https://mycompany.visualstudio.com/mycompany/_git/mycompany into develop

commit 0415cf7f790770b9bc9e672a5998e85b0815ed46
Merge: 2ef8b41 6dc753e
Author: Ken Hadden <[email protected]>
Date:   Mon Mar 25 13:34:27 2019 -0700

    test 4

commit 6dc753eda1697b84a679d6105d2ef18a7f1d3043
:

最佳答案

我的经历类似于@shayki Abramczyk 和@Ken Hadden 的经历。对我们有用的是:

develop>
develop> git checkout -b feature/my-cool-new-feature
feature/my..> "Hello" > newfile.txt
feature/my..> git add -A
feature/my..> git commit -m "Add newfile.txt"
feature/my..> git push -u origin HEAD

然后我转到 Azure Devops 中的 pull 请求,我可以选择从显示在那里的新分支创建 PR。创建时,如果我将它设置为自动完成,那么当它被批准、构建和测试时,它会自动 merge 到目标分支(在你的情况下是开发)。

当“A-DOPS”完成后,回到我的机器上:

feature/my..> git checkout develop
develop> git pull

我的本地开发与 Remote 同步。

关于git - Azure DevOps GIT (gitflow) 如何在开发分支上强制执行 pull 请求并保持源最新?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55409101/

10-14 16:16