我正在尝试编写条件来检查git repo是否具有特定分支。如果不是,则创建该分支。
我知道可以通过命令行使用以下命令来实现此目的:
git branch
git checkout etc..
但是我想知道是否有任何Azure命令行扩展可以做到这一点?
你可以尝试az repos ref list。使用过滤器选项来搜索“ heads / your_path”之类的分支(其余API文档上的示例)
例子:
az devops login --org "https://dev.azure.com/<your_org>"
Token:
az repos ref list --org "https://dev.azure.com/your_org" -p TeamProject -r RepoName --filter heads/
[
{
"creator": {
"descriptor": "------",
"directoryAlias": null,
"displayName": "------",
"id": "0f98bf70-30c3----",
"imageUrl": "----",
"inactive": null,
"isAadIdentity": null,
"isContainer": null,
"isDeletedInOrigin": null,
"profileUrl": null,
"uniqueName": "-------",
"url": "-------"
},
"isLocked": null,
"isLockedBy": null,
"name": "refs/heads/dev",
"objectId": "4734085d73703e88ae39-----",
"peeledObjectId": null,
"statuses": null,
"url": "-----"
},
谢谢你。这确实有帮助。我可以使用它来获取分支名称。您知道我是否也可以使用它创建一个新分支吗?例如:我看到此命令。az repos ref创建。我不是git专家,我对分支名称前的refs / heads /感到困惑。创建分支时,我仍然需要提供参考/负责人吗?您也可以举一个例子吗?谢谢
@Rishabh要创建分支,您必须知道基础对象ID。例如,创建一个基于master的新分支。使用
az repos ref list
和查找主分支heads/master
。然后使用az repos ref create
一个新名称(例如'heads / dev2')并objectId
从master分支使用。非常感谢你。
我正在使用'az repos create'命令在ADO中创建一个git repo,我正在尝试读取基础对象ID。但是它直到master分支存在才存在。如何创建存储库,并同时使用README.md或其他内容初始化它?可以在没有git add,commit和push的情况下完成此操作吗?
Rest API尝试通过推送创建初始提交:docs.microsoft.com/en-us/rest/api/azure/devops/git/pushes/…。但是它在az cli中不存在。像在其余API示例中一样,尝试使用“ 0000000000000000000000000000000000000000000000”设置对象ID。