git - Azure DevOps GIT(gitflow)如何在开发分支上强制执行 pull 请求并保持原点最新?

标签 git azure-devops

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

所以现在如果我: git checkout 开发 我看到这条消息: 您的分支比“origin/develop”领先 11 次提交。

所以,在正常情况下,我认为解决这个问题的方法是: git pushgit push origin -- 来自 develop 分支。

但是由于有一个分支策略需要 pull 请求,所以我无法推送。当我尝试 push 开发时,我收到以下消息: ! [远程拒绝] 开发 -> 开发(TF402455:不允许推送到此分支;您必须使用 pull 请求来更新此分支。) 好吧,我已经向这个分支完成了 11 个 pull 请求。 知道如何解决这个问题吗?

针对开发的 pull 请求应使源与本地同步。

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

>git log
commit 545319a657801f3c279f727c53aa7d5b9d9f9d6e (HEAD -> develop, origin/develop, origin/master, origin/HEAD, master)
Merge: fe89f0a dad0fa3
Author: Ken Hadden <khadden@mycompany.com>
Date:   Thu Mar 28 18:09:32 2019 -0700

    Merge branch 'master' into develop

commit fe89f0af4a9fe3848880854dbd88e3980e81bdb4
Merge: 9b37a92 c7fe732
Author: Ken Hadden <khadden@mycompany.com>
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 <khadden@mycompany.com>
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 <khadden@mycompany.com>
Date:   Mon Mar 25 13:41:12 2019 -0700

    test 5

commit c3b8468f49d6426469699dcc19c01fc183823355
Author: Ken Hadden <khadden@mycompany.com>
Date:   Mon Mar 25 13:39:45 2019 -0700

    test 4

commit d3e27c1b6abba1e0978a0c2673ebf5969ced37a0
Merge: 0415cf7 2386bbe
Author: Ken Hadden <khadden@mycompany.com>
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 <khadden@mycompany.com>
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

我的本​​地开发与远程同步。

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

相关文章:

windows - 我可以在全局范围内使用 TortoiseGit 注册 PuTTY key 吗(不是每个存储库)?

git - gerrit:推:先前提交和新提交之间没有变化。无法提取更改

azure - Azure CI 管道刚刚开始运行时发送电子邮件

git - Azure 开发运营 : ever increasing number of attached work items on each merge

azure 无法在 devops 中重用订阅

azure-devops - 使用 SonarCloud 和 Azure DevOps 分析 Javascript/Typescript 项目

git - 每次提交都会在git中创建一个新的树对象吗?

git - 丢弃 Git 中的本地提交

azure-devops - 防止用户在 Azure Devops (VSTS) 中创建没有父项的工作项

git - 缺少 .git 目录