2017-04-23 42 views
1

我想知道有什麼方法可以將Git存儲庫與VSTS集成的Git進行同步。例如,假設我有一個Git倉庫「https://github.com/test/TestProject」,並且我已經在VSTS中導入了這個Git倉庫。現在我的VSTS Git存儲庫URL說「https://testuser.visualstudio.com/test/_git/TestProject」。與GTS集成的VSTS同步Git存儲庫

我想同步這兩件事情,並始終保持更新。就像如果我在直接Git倉庫中進行任何更改,它應該反映在VSTS Git倉庫中。即使它是通過任何構建定義或任何拉取請求,它的罰款。

有人可以幫助我嗎?

+0

你有沒有得到幫助你來解決這個問題的答案嗎?如果是,請標記它。它會幫助其他有類似問題的人。 –

回答

1

也可以通過創建一個構建定義來從GitHub獲取更改並將更改推送到VSTS Git來實現。以下是供您參考的步驟:

  1. Deploy your own build agent然後生成一個SSH密鑰。
  2. 爲您的VSTS Git Repo啓用SSH Authentication,這樣您就不需要在構建定義中輸入用戶名和密碼。如果要使用替代憑據,可以跳過步驟1和步驟2.
  3. 創建構建定義並選擇GitHub作爲存儲庫。
  4. 在構建定義中啓用「持續集成(CI)」選項,以便在GitHub中提交新變更後立即觸發構建。
  5. 在您的構建定義中添加一個PowerShell腳本,將VSTS Git添加爲遠程並將更改推送給它。

現在,當您在GitHub中提交更改時,您應該看到構建已經觸發,然後構建將從GitHub中提取更改並將其推送到VSTS Git。 enter image description here PowerShell代碼,供大家參考:

git remote add vstsg ssh://[email protected]:22/VSTSProjectName/_git/VSTSGitRepoName 2>&1 | Write-Host 

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

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

這似乎比我的答案更精確。 +1 – VonC

+0

嗨,你可以請幫忙解釋如何實現這個vise vera,就像從VSTS git repo同步到github repo一樣... – Jawad

+0

@Jawad在步驟3中,選擇VSTS Git作爲存儲庫並在powershell腳本中,將更改推送到GitHub。 –

0

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

您還需要編寫並安裝一個偵聽器,該偵聽器將偵聽由Web /服務鉤子發送的推送事件作爲JSON有效內容(請參閱GitHub one,Visual Studio one)。
Visual Studio integrates with external services as well,它們有自己的監聽器。

在從一個遠程回購站接收到推送事件後,您可以從中取出並推送到另一個。但請注意,同一分支上的任何併發開發可能會導致在從一個回購庫推向另一個時發生衝突。當每個回購使用不同的分支機構時,這種方法很有效。