2013年7月3日 星期三

Team Foundation Service 使用 Git 與 TortoiseGit

這一篇將要來簡單介紹一下如何在 Team Foundation Service 使用 Git 做為版本控管的情況下,在一般的檔案總管內使用 TortoiseGit 來進行檔案的 Commit 與 Push。

 


2013-11-18 更新

在 2013-11-13 的 Visual Studio Launch 已經正式發表了「Visual Studio Online」的服務,Visual Studio Online 也就是這篇文章所說的 Team Foundation Service,並且公佈服務的收費方式,但仍然維持 Visual Studio Online Basic 的五人以下使用免費的方案,詳細內容可以查看以下文章:

Visual Studio Online

 

VS2013 Preview 裡就可以看到已經預設使用 Git 來做為版本控管,如果公司沒有使用 SVN, TFS, GitHub 或者是自己沒有申請使用 Team Foudation Service 的情況下,就可以使用本地端的 Git 來做專案的版本控管,

image

image

image

image

以上是 VS2013 Preview 裡專案使用本地端 Git 做版本控管的操作內容,不過這一篇並不是要做 VS2013 Git 的介紹,這一篇則是要說明在 Team Foundation Service 使用 Git 後,如何在本機電腦裡使用 TortoiseGit 來存取檔案。

 

一、準備環境

首先,先在 Windows 裡安裝好 TortoiseGit 以及 msysgit,

TortoiseGit:https://code.google.com/p/tortoisegit/

msysgit:http://msysgit.github.io/

 

二、在 TFService 建立 Team Project

接著到 Team Foundation Service 建立一個新的 Team Project +Git

image

在「Create New Team Project」視窗裡的 Version control 項目選擇「Git」

image

TFService 建立 Team Project 需要一小段時間,

image

建立完成,點選下方的「Navigate to project」就可以進入到 Team Project,

image

image

 

三、準備 Commit 檔案

點選上方的「CODE」

image

進入到 repository 頁面,因為尚未 commit 任何檔案,所以就會顯示訊息,訊息裡也告訴我們這個 repository 的連結位置,可以讓我們使用 Git 執行 clone 動作,並且 commit 檔案,將這個連結位置給複製起來,

image

複製好連結位置後,開啟檔案總管然後選好一個地方,再來就是做 Git Clone 的操作,

image

接著在顯示的視窗裡貼上剛才所複製的連結位置,確認好內容後按下 OK,

image

然後就會問登入 TFService 的帳號、密碼

image

image

但最後卻是出現這樣內容

image

 

四、修改 TFService 的 My Profile 內容

回到 Team Foundation Service 頁面裡,然後點擊在右上角顯示登入名稱的地方,然後點選「My profile」

image

在出現的 USER PROFILE 視窗裡點選第三個「CREDENTIALS」項目,如下所示,

image

點選「Enable alternate credentials」,然後就會出現一些項目要填寫,

image

設定 User name (secondary) 以及 Password,密碼的部份我是設定跟 Windows Live ID 一樣的,因為我記性不好,太多密碼實在記不住,也可以設定跟 Windows Live ID 不一樣的密碼,設定完成後就按下右下方的「Save changes」就可以了。

 

五、重新執行 Git Clone 操作

再回到檔案總管裡重新執行一次 Git Clone 的操作,不過這一次再問起帳號密碼時就輸入剛剛所設定的 Credentials 內容,如果有設定 Secondary User Name 的話,可以輸入 Secondary User Name 而不用輸入 Windows Live ID 帳號,密碼的話就是輸入剛剛設定的 Password,輸入完成之後然後就開始進行 Git Clone,最後就可以看到以下 Success 的內容,

image

image

 

六、Commit

接著我們把要做版本控管的檔案給複製到剛剛 Git Clone 所建立的 ViewModelSample 目錄中,

image

在資料夾裡按下右鍵後點選「Git Commit -> “master”…」

image

如果你沒有在 TortoiseGit 裡設定 User Info 的話,會有提示告訴我們要做設定,設定完 User Info 之後,接這繼續做 Commit,

image

在 Commit 視窗裡,要輸入 Message 以及選擇要 Commit 的檔案,

image

輸入好 Message 以及選擇好要 Commit 的檔案之後就按下 OK,

image

可以看到完成了第一次的 Commit,

image

但這樣還不會把檔案送到 TFService 的 Team Project Repository 裡,如果確定這一次的更新要上到 TFService 的  Team Project Repository,就可以在上面的視窗裡點選「Push」

image

將 Commit 的內容 Push 到 TFService Team project Repository,

image

Push 完成

image

回到 Team Foundation Service 的網頁,重新整理 Team Project 的 Code 內容,就可以看到剛剛 Push 的檔案。

image

如此一來就完成了透過 TortoiseGit Commit 以及 Push 到 Team Foundation Service 的操作。

 

這一篇就講到這裡,至於在 Visual Studio 2012 裡面的使用其實就跟之前我們用 Team Foundation Version Control 差不多,在 Team Explorer 介面有些許的不同,

使用 Team Foundation Version Control 的 Team Explorer 首頁

image

image

使用 Git 的 Team Explorer

image

image

 


如果想要更加了解 Team Foudation Service 使用 Git 的資訊,可以到 Team Foundation Service 的 Learn 單元裡詳閱相關資料。

 

參考資料:

http://social.msdn.microsoft.com/Forums/vstudio/en-US/0776c93c-c9fb-4480-9e48-9a631b1d34f4/why-can-i-not-connect-to-tfs-with-tortoisegit-or-msysgit

 

相關資訊:

Team Foundation Service - Visual Studio with Git

Getting Started with Git in Visual Studio and Team Foundation Service - Visual Studio ALM + Team Foundation Server Blog

Create, Connect, and Publish using Visual Studio with Git - Visual Studio ALM + Team Foundation Server Blog

Customize Git settings in Visual Studio - Visual Studio ALM + Team Foundation Server Blog

Use the Git command prompt to supplement Visual Studio - Visual Studio ALM + Team Foundation Server Blog

Move a TFService source control to TF Service Git based Team Project

 

以上

3 則留言:

  1. 所以這情境的用法應該合適沒有 Visual Studio 來使用 TFService,可以很方便管理其他非 .NET 的專案,是吧。

    回覆刪除
    回覆
    1. 是呀,以往如果讓使用 Windows 但不是程式開發人員,可以安裝 Power Tool 來解決,但是非 Windows 系統也不是程式開發人員(例如設計師),他們就可以使用 Git 來做版本控管了。
      有了 Git 之後,也可以把其他非 .NET 系統的專案也給納入管理,而不一定要使用 SVN 來做版控。

      刪除

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。