git 在两个远程存储库之间推送

git push between two remote repositories

需要使用什么特定语法才能让位于 Internet 上任意位置(位置 A)的计算机从 public GitHub 存储库触发 git push github.com/someuser/source-repo(位置 B)到私有 Azure Git Repo NameOfAzdoOrganization@dev.azure.com/NameOfAzdoOrganization/NameOfAzdoProject/_git/NameOfAzdoProject(位置 C)?

空的远程 Azure Git 存储库(位置 C)提供了以下代码,用于从位置 A 的本地存储库推送以填充远程位置 C:

git remote add origin https://NameOfAzdoOrganization@dev.azure.com/NameOfAzdoOrganization/NameOfAzdoProject/_git/NameOfAzdoProject
git push -u origin --all

But what command needs to be run on location A in order to push from location B to location C?

位置 A 上的计算机必须从位置 b 克隆存储库

git clone github.com/someuser/source-repo.git

然后将位置 C 中的存储库添加为远程

git remote add locationC https://NameOfAzdoOrganization@dev.azure.com/NameOfAzdoOrganization/NameOfAzdoProject/_git/NameOfAzdoProject

然后推送到位置C

git push -u locationC

如果你想推送所有分支而不只是默认分支,你可以将 --all 添加到最后一个命令。

除非位置 B 的 repo 具有镜像功能(例如,gitlab 让你将对 repo 所做的任何推送镜像到另一个远程 repo),我相信你必须跳过这个环节。

I was imagining something like az azdo pull fromLocationB toLocationB.

据我所知,sandy方法是有效的。

根据您的要求,Azure Repo 中的位置 C 是空的。并且您想将存储库从 github 移动到 Azure Repo。

您可以尝试使用位置 A 中的 az repos import command

az login 

az repos import create --git-source-url https://github.com/xxx/xxx.git --repository {Location C Repo name} --organization https://dev.azure.com/{Org name} --project {Project name}

注意:位置 C 中的 repo 需要为空。不支持导入已有内容的repo

此方法是将Github中的repo直接导入Azure Repo。它有局限性。

希望能对您有所帮助。