【问题标题】:Sync Git repository with the Git Integrated in VSTS将 Git 存储库与 VSTS 中集成的 Git 同步
【发布时间】:2017-04-23 00:05:37
【问题描述】:

我想知道有什么方法可以将 Git 存储库与集成 VSTS 的 Git 同步。例如,假设我有一个 Git 存储库“https://github.com/test/TestProject”,并且我已经在 VSTS 中导入了这个 Git 存储库。现在我的 VSTS Git 存储库 URL 说“https://testuser.visualstudio.com/test/_git/TestProject”。

我想同步这两件事并始终保持更新。就像如果我在直接 Git 存储库中进行任何更改,它应该反映在 VSTS Git 存储库中。即使是通过任何构建定义或任何拉取请求,也可以。

有人可以帮助我吗?

【问题讨论】:

  • 你得到了帮助你解决问题的答案吗?如果是,请标记它。它将帮助其他有类似问题的人。

标签: git github version-control azure-devops devops


【解决方案1】:

也可以通过创建构建定义以从 GitHub 中提取更改,然后将更改推送到 VSTS Git 来实现。以下是供您参考的步骤:

  1. Deploy your own build agent,然后生成 SSH Key。
  2. 为您的 VSTS Git 存储库启用 SSH Authentication,这样您就无需在构建定义中输入用户名和密码。如果您想使用其他凭据,可以跳过第 1 步和第 2 步。
  3. 创建构建定义并选择 GitHub 作为存储库。
  4. 在构建定义中启用“持续集成 (CI)”选项,以便在 GitHub 中提交新更改后立即触发构建。
  5. 在您的构建定义中添加一个 PowerShell 脚本,以将 VSTS Git 添加为远程并将更改推送到它。

现在您应该看到当您在 GitHub 中提交更改时触发了构建,然后构建将从 GitHub 拉取更改并将其推送到 VSTS Git。 PowerShell代码供您参考:

git remote add vstsg ssh://vstsaccount@vstsaccount.visualstudio.com:22/VSTSProjectName/_git/VSTSGitRepoName  2>&1 | Write-Host

git checkout -b master  2>&1 | Write-Host

git push vstsg master  2>&1 | Write-Host

【讨论】:

  • 这似乎比我的回答更准确。 +1
  • 嗨,你能帮忙解释一下如何实现这个虎钳,就像从 VSTS git repo 同步到 github repo...
  • @Jawad 在第 3 步中,选择 VSTS Git 作为存储库,然后在 powershell 脚本中,将更改推送到 GitHub。
【解决方案2】:

您需要拥有webhook (ion GitHub) 或service hook(在 Visual Studio 上)才能接收推送事件。

您还需要编写并安装一个侦听器,该侦听器将侦听由 web/service 挂钩作为 JSON 有效负载发送的推送事件(请参阅 GitHub one, 或 Visual Studio one)。
Visual Studio integrates with external services as well ,它们有自己的监听器。

从一个远程仓库接收推送事件后,您可以从中拉取,然后推送到另一个。但请注意,从一个仓库推送到另一个仓库时,同一分支上的任何并发开发都可能导致冲突。当在每个 repo 上使用不同的分支时,这种方法很有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 2011-09-16
    • 2018-07-26
    • 1970-01-01
    • 2017-04-20
    • 2022-06-16
    相关资源
    最近更新 更多