【发布时间】:2020-05-14 10:40:50
【问题描述】:
我感觉我用错了词,或者误解了我使用的词,这使得搜索我想做的事情变得困难。
现在我有一个 Git 存储库,其中 3 个分支托管在 Azure Devops 上(非常类似于 Github/Gitlab/Bitbucket 等)。
我当前的流程是在本地提交和推送(使用 PHP Storm),然后登录到 Azure Devops 并手动使用他们的 UI 从我的 develop 分支到我的 staging 分支执行拉取请求。然后我登录服务器并从staging 分支 git pull。
我一共有三个分支develop、staging和production。
但是在我的本地机器上我只有develop,其他的只存在于远程服务器上。我只是在develop 工作并推送到origin/develop,然后从develop 向staging 发出拉取请求,然后在准备好时再到production。
我认为必须有一种方法可以编写脚本来一次完成所有这些操作,而不必登录到 Azure Devops 或服务器。
尽可能简单地总结我的问题:
我目前必须登录 Azure Devops 并执行以下操作:
- 登录 Azure Devops
- 点击分支
- 点击
staging分支旁边的“New Pull Request” - 写一个提交信息(实际上标记为“标题”)
- 点击“完成”
- 点击“完成合并”
我想避免登录 Azure Devops 并能够通过命令行实现这一点。这可能吗?
更新
我发现我基本上可以通过登录服务器并执行以下操作来做我想做的事:
-
git pull(即使我在登台阶段,这也会拉动最新的发展 -
git merge origin/develop(这将在本地合并开发到登台) -
git push(这将更新远程登台)
这很有效,但一个缺点是似乎没有办法跟踪 staging 与 develop 之间的距离,这是由 azure devops UI 提供的。
【问题讨论】:
-
有一个 API:docs.microsoft.com/en-us/rest/api/azure/devops/git/… - 我绝对没有 XP。但是有人可能已经使用 api 编写了一个命令行实用程序(相当于 hub command line...)
-
@Zeitounator 啊,它必须通过 Azure api 完成,这需要额外的身份验证等吗?我认为它可以简单地通过 git 命令来完成。
-
一个选项是通过管道编排它。根据您的提交消息,通过 API 创建和完成 PR 的条件步骤。 $Build.SourceVersionMessage.
标签: git azure-devops git-merge pull-request