TFS Git Rest Api - 如何添加子模块?
TFS Git Rest Api - how to add submodule?
我正在尝试通过 TFS GIT REST API 将子模块添加到我在 TFS 上的 git 存储库中,但是到目前为止还没有成功。我创建了新的存储库并将 .git 模块添加到存储库,但不知道如何添加子模块 folder/reference。
这是我尝试为初始提交构造的原始请求,其中包含 .gitignore、.git 模块和名为 "SomeTools".[=14= 的子模块]
POST http://tfs:8080/tfs/My_Collection/My_Projekt/_apis/git/repositories/TestRepo/pushes?api-version=2.0 HTTP/1.1
Accept: */*
Content-Type: application/json
Host: tfs:8080
Content-Length: 7213
{
"refUpdates": [
{
"name": "refs/heads/develop",
"oldObjectId": "0000000000000000000000000000000000000000"
}
],
"commits": [
{
"changes": [
{
"newContent": {
"content": *.suo\r\n",
"contentType": "rawtext"
},
"changeType": "add",
"item": {
"path": "/.gitignore"
}
},
{
"newContent": {
"content": "[submodule \"SomeTools\"]\n\tpath = SomeTools\n\turl = http://tfs:8080/tfs/My_Collection/My_Projekt/_git/SomeTools\n",
"contentType": "rawtext"
},
"changeType": "add",
"item": {
"path": "/.gitmodules"
}
},
{
"newContent": {
"content": "198abf113d8baf48aa55ab1897b30fdb7b23c4cc",
"contentType": "rawtext"
},
"changeType": "add",
"item": {
"path": "/SomeTools",
"versionType": "commit"
}
}
],
"comment": "Initial commit."
}
]
}
我们无法通过pushes
REST API实现,它可以创建一个新的分支但不能创建子模块。
似乎您手动创建了存储库并添加了 .gitmodules 文件,如果是,那么您还需要手动创建 submodule
folder/reference,然后提交 > 推送到 Git 服务器。
最简单的方法是 运行 git submodule add
命令添加 Git 子模块:
假设您有 2 个 Git 个存储库:
http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo1
http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo2
为 Repo1 添加 git 子模块:
git clone http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo1
git submodule add http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo2
然后提交更改并推送到 Git 存储库。
我正在尝试通过 TFS GIT REST API 将子模块添加到我在 TFS 上的 git 存储库中,但是到目前为止还没有成功。我创建了新的存储库并将 .git 模块添加到存储库,但不知道如何添加子模块 folder/reference。
这是我尝试为初始提交构造的原始请求,其中包含 .gitignore、.git 模块和名为 "SomeTools".[=14= 的子模块]
POST http://tfs:8080/tfs/My_Collection/My_Projekt/_apis/git/repositories/TestRepo/pushes?api-version=2.0 HTTP/1.1
Accept: */*
Content-Type: application/json
Host: tfs:8080
Content-Length: 7213
{
"refUpdates": [
{
"name": "refs/heads/develop",
"oldObjectId": "0000000000000000000000000000000000000000"
}
],
"commits": [
{
"changes": [
{
"newContent": {
"content": *.suo\r\n",
"contentType": "rawtext"
},
"changeType": "add",
"item": {
"path": "/.gitignore"
}
},
{
"newContent": {
"content": "[submodule \"SomeTools\"]\n\tpath = SomeTools\n\turl = http://tfs:8080/tfs/My_Collection/My_Projekt/_git/SomeTools\n",
"contentType": "rawtext"
},
"changeType": "add",
"item": {
"path": "/.gitmodules"
}
},
{
"newContent": {
"content": "198abf113d8baf48aa55ab1897b30fdb7b23c4cc",
"contentType": "rawtext"
},
"changeType": "add",
"item": {
"path": "/SomeTools",
"versionType": "commit"
}
}
],
"comment": "Initial commit."
}
]
}
我们无法通过pushes
REST API实现,它可以创建一个新的分支但不能创建子模块。
似乎您手动创建了存储库并添加了 .gitmodules 文件,如果是,那么您还需要手动创建 submodule
folder/reference,然后提交 > 推送到 Git 服务器。
最简单的方法是 运行 git submodule add
命令添加 Git 子模块:
假设您有 2 个 Git 个存储库:
http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo1
http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo2
为 Repo1 添加 git 子模块:
git clone http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo1
git submodule add http://server:8080/tfs/DefaultCollection/TeamProjectName/_git/Repo2
然后提交更改并推送到 Git 存储库。