gpt4 book ai didi

git - TFS Git - 直接在远程存储库上创建分支和标签

转载 作者:太空狗 更新时间:2023-10-29 13:33:19 28 4
gpt4 key购买 nike

我的公司从 TFVC 切换到 TFS Git。我正在迁移一个发布自动化工具来支持这一转变。

除其他外,该工具还为发布创建了一个新分支,以及一个新标签(Git 中的“标签”)。对于 TFVC,这些操作直接在 TFS 服务器上执行,不需要存储库的本地副本。这是否仍然可以在 Git 中实现,或者我是否会被迫在本地克隆存储库以进行这些操作?

到目前为止,我看过的两个库是 Microsoft.TeamFoundation.Git.Client(似乎是 TFS Git REST API 的官方包装器)和 LibGit2Sharp。我不限于这些库,因此也欢迎使用其他选项。

我们也正在从 TFS 2015 升级到 TFS 2017,所以如果有仅针对其中一个的答案,我也想知道。

编辑 1

明确地说,“直接在远程存储库上”是指不通过本地存储库。该工具是完全自动化的,如果可能的话,我宁愿不需要文件系统访问权限。

编辑 2

作为mentioned below @rmcsharry 现在可以直接在远程服务器上创建标签。这是一个不错的改进,但当然主要目标是首先直接在远程创建一个分支,这在 Web UI 中绝对是可能的,只是还不能(还?)通过 API。这是 Web UI 屏幕截图:

enter image description here

如果没有那部分,我无法在不通过本地文件系统的情况下自动化我提到的过程,这是我的目标。

最佳答案

您现在可以手动将标签添加到 TFS 中的提交(直接在服务器上),这可能会有所帮助。

您必须先选择一个提交,然后单击最右侧的 ... 按钮,这会打开一个下 pull 菜单,其中一个选项是创建标签:

enter image description here

这也通过 REST api 公开。查看答案here .


更新以回应有问题的 EDIT 2

也可以在 API 上创建分支。文档将分支称为“ref”:

Creating a ref is achieved by updating the ref from the nil commit (represented by 40 0s) to a different commit.

结构是这样的(注意{project}是可选的):

POST https://{instance}/DefaultCollection
/{project}/_apis/git/repositories
/{repository}/refs?api-version={version}


Content-Type: application/json

[
{
"name": {string},
"oldObjectId": {string},
"newObjectId": {string}
}
]

例如:

POST https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection
/_apis/git/repositories/278d5cd2-584d-4b63-824a-2ba458937249
/refs?api-version=1.0

有了这个主体,将创建一个名为“live”的新分支:

[
{
"name": "refs/heads/live",
"oldObjectId": "0000000000000000000000000000000000000000",
"newObjectId": "4b223e9c93ec3b6aaa6499f06e3ebb7c702e6106"
},
]

文档 here .


我的 TFS 版本是:

enter image description here


关于git - TFS Git - 直接在远程存储库上创建分支和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41264612/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com