如何通过命令行在远程分支上执行 Git 拉取请求
How to do a Git pull request on remote branches via the command line
我感觉我用错了词,或者误解了我用的词,这让搜索我想做的事情变得困难。
现在我有一个 Git 存储库,其中有 3 个分支托管在 Azure Devops 上(非常类似于 Github/Gitlab/Bitbucket 等)。
我目前的流程是在本地提交和推送(使用 PHP Storm),然后登录到 Azure Devops 并手动使用他们的 UI 从我的 develop
发出拉取请求分支到我的 staging
分支。然后我登录到服务器并 git 从 staging
分支中拉出。
我总共有三个分支develop
、staging
和production
。
但是在我的本地机器上我只有 develop
,其他的只存在于远程服务器上。我只是在 develop
工作并推送到 origin/develop
,然后从 develop
执行拉取请求到 staging
,然后在准备好后 production
。
我认为一定有一种方法可以编写脚本来一次完成所有这些操作,而不必登录到 Azure Devops 或服务器。
尽可能简单地总结我的问题:
我目前必须登录到 Azure Devops 并执行以下操作:
- 登录到 Azure Devops
- 点击分支
- 单击
staging
分支旁边的 "New Pull Request"
- 写一条提交信息(实际标记为"title")
- 点击"Complete"
- 点击"Complete Merge"
我想避免登录到 Azure Devops 并能够通过命令行实现这一点。这可能吗?
更新
我发现我基本上可以通过登录服务器并执行以下操作来做我想做的事:
git pull
(这将拉取最新的开发,即使我正在暂存
git merge origin/develop
(这会将开发合并到本地暂存中)
git push
(这将更新远程暂存)
虽然有一个缺点是似乎没有办法跟踪 staging
与 develop
的差距,但它工作得很好,这是由 azure devops UI.
有一个 Azure 命令行客户端,您可以使用它 create a pull request,但不能合并一个。如果你也想合并它,你需要使用 Zeitounator 提到的 API。
根据您想要执行的操作,您可以将 azure repos pr update
命令与 --auto-complete
结合使用,当您对它感到满意时,它会自动合并。
实际上有多种方法可以在 Azure DevOps 中创建拉取请求。例如 as:From 网络上的 Pull Requests 页面,Visual Studio 中的 Team Explorer,链接工作项中的 Development 部分。
What you are looking for is creating pull request from Git Bash into Azure DevOps.
我们可以使用 VSTS CLI 命令扩展 Git 别名来实现它。
有 VSTS CLI interface that we could configure to use git aliases 包括创建拉取请求。
详情可以查看这个文档:
Visual Studio and Azure DevOps Git: Extend the git command line with server commands–Part 2
此外,您还可以创建 PowerShell 脚本来简化流程。基本上你需要做的是:
- Get the Azure DevOps access token
Pass the token to the PowerShell and let it run the setup steps.
You can check out the details here
我发现我基本上可以通过登录服务器并执行以下操作来做我想做的事:
git pull
(这将拉取最新的开发,即使我正在暂存
git merge origin/develop -m "My commit message"
(这会将开发合并到本地暂存中)
git push
(这将更新远程暂存)
您还需要在本地进行开发才能正常工作。
我感觉我用错了词,或者误解了我用的词,这让搜索我想做的事情变得困难。
现在我有一个 Git 存储库,其中有 3 个分支托管在 Azure Devops 上(非常类似于 Github/Gitlab/Bitbucket 等)。
我目前的流程是在本地提交和推送(使用 PHP Storm),然后登录到 Azure Devops 并手动使用他们的 UI 从我的 develop
发出拉取请求分支到我的 staging
分支。然后我登录到服务器并 git 从 staging
分支中拉出。
我总共有三个分支develop
、staging
和production
。
但是在我的本地机器上我只有 develop
,其他的只存在于远程服务器上。我只是在 develop
工作并推送到 origin/develop
,然后从 develop
执行拉取请求到 staging
,然后在准备好后 production
。
我认为一定有一种方法可以编写脚本来一次完成所有这些操作,而不必登录到 Azure Devops 或服务器。
尽可能简单地总结我的问题:
我目前必须登录到 Azure Devops 并执行以下操作:
- 登录到 Azure Devops
- 点击分支
- 单击
staging
分支旁边的 "New Pull Request" - 写一条提交信息(实际标记为"title")
- 点击"Complete"
- 点击"Complete Merge"
我想避免登录到 Azure Devops 并能够通过命令行实现这一点。这可能吗?
更新
我发现我基本上可以通过登录服务器并执行以下操作来做我想做的事:
git pull
(这将拉取最新的开发,即使我正在暂存git merge origin/develop
(这会将开发合并到本地暂存中)git push
(这将更新远程暂存)
虽然有一个缺点是似乎没有办法跟踪 staging
与 develop
的差距,但它工作得很好,这是由 azure devops UI.
有一个 Azure 命令行客户端,您可以使用它 create a pull request,但不能合并一个。如果你也想合并它,你需要使用 Zeitounator 提到的 API。
根据您想要执行的操作,您可以将 azure repos pr update
命令与 --auto-complete
结合使用,当您对它感到满意时,它会自动合并。
实际上有多种方法可以在 Azure DevOps 中创建拉取请求。例如 as:From 网络上的 Pull Requests 页面,Visual Studio 中的 Team Explorer,链接工作项中的 Development 部分。
What you are looking for is creating pull request from Git Bash into Azure DevOps.
我们可以使用 VSTS CLI 命令扩展 Git 别名来实现它。
有 VSTS CLI interface that we could configure to use git aliases 包括创建拉取请求。
详情可以查看这个文档:
Visual Studio and Azure DevOps Git: Extend the git command line with server commands–Part 2
此外,您还可以创建 PowerShell 脚本来简化流程。基本上你需要做的是:
- Get the Azure DevOps access token
Pass the token to the PowerShell and let it run the setup steps.
You can check out the details here
我发现我基本上可以通过登录服务器并执行以下操作来做我想做的事:
git pull
(这将拉取最新的开发,即使我正在暂存
git merge origin/develop -m "My commit message"
(这会将开发合并到本地暂存中)
git push
(这将更新远程暂存)
您还需要在本地进行开发才能正常工作。