在 Git 機制中開發應用程式 - 使用 Visual Studio (連到 TFS 或 GitHub)

各位夥伴們,

有使用 Git 版本管控機制的朋友們,Visual Studio 2013 早已提供 Git 的支援,包括 Pull, Push, 分支等常見功能,且支援連到其它的 Git repository (例 GitHub);而 TFS 團隊開發平台及 Visual Studio Online 雲端版除了支援集中式 Team Foundation 版控,也支援 Git 分散式版控,讓你建立自己的 Git repository 儲存體。本文介紹如何開始在 Visual Studio 及 TFS 中使用 Git。

--------------------------------

當您撰寫程式碼時,您可以查看、修改以及視需要復原變更。 依您所偏好的時間及頻率進行認可。 您所有的認可在您推送它們之前都是在本機進行,因此不需要網際網路存取。

從 Team Explorer 連接至您的工作

 
若要在 Git 儲存機制中開始工作,請從 Team Explorer [連接] 頁面 (鍵盤:Ctrl + 0、C) 將其開啟。

Team Explorer [連接] 頁面會顯示儲存機制的清單。 您已發行到 Team Foundation Server 的儲存機制 (TFS) 會最先列出。 位於頁面底部的是尚未發行至 TFS 的儲存機制,包括其他服務上裝載的遠端 (例如 CodePlex 或 GitHub)。

開發應用程式

從 Team Explorer [首頁] 頁面 (鍵盤:按下 Ctrl + 0、H) 開始撰寫新方案或現有方案中的程式碼。

開啟方案之後,開啟 [方案總管] (鍵盤:Ctrl + Alt + L)。

  1. 如果您在包含很多檔案的方案中工作,您可能覺得篩選 [方案總管] 只顯示您已經變更的檔案 (鍵盤:Ctrl + [、P) 會很方便。

  2. 您可以查看從上次認可以來所做的變更,也可以繼續在 [差異比對] 視窗中撰寫程式碼。

  3. 若要查看過去的變更,請選擇 [檢視記錄]。 若要恢復您在上次認可以來所做的變更,請選擇 [復原]。 請參閱 在 Git 中檢視和管理過往的版本

  4. 若要開啟變更頁面 (其中只顯示 [包含] 區段的那些檔案),請選取一個或多個檔案,並選擇 [認可]。

當您從 [方案總管] 中開啟並修改檔案時,檔案會自動簽出。 圖示會出現以表示哪些檔案尚未變更 、您已簽出的檔案 和您已加入至方案的檔案 。

在開發電腦上管理檔案

 
大部分情況下,您會使用 [方案總管] 加入、重新命名及刪除項目。 在某些情況下,您可能需要使用不屬於方案的檔案。

例如,您可以將檔案加入 (如下所示) 開發電腦上的 Git 儲存機制。

提示:  

管理和認可你的變更

當您在 [方案總管] 中開發應用程式時,會自動為您追蹤新增、編輯、重新命名及刪除動作。 但是當您必須管理並最終認可您在工作區所做的變更時,您可以從 Team Explorer (鍵盤 Ctrl + 0、G) 的 [變更] 頁面中進行。

 

相關的工作項目:在這裡加入工作,可協助您識別您的工作。 認可變更之後,您的小組就可以檢視相關的工作項目,並完全看到變更了哪個程式碼以完成每項工作。

使用頁面上的控制項建立工作項目的關聯性。 您也可以在註解中指定工作項目來建立關聯性。 例如,您可以在 [變更] 頁面上,或在從命令提示字元使用 git-commit 命令時,讓註解加入問候 #1 產生關聯。

推送之後,與認可的關聯才會生效。

包含及排除變更:使用這些清單可控制是否要在認可時包含變更。 如果要:

  • 如要查看有關變更的詳細資料,請以滑鼠右鍵按一下檔案,並選擇 [與未修改的比較]。

  • 若要恢復您的變更,請以滑鼠右鍵按一下檔案,並選擇 [復原]。

認可:您可以隨時視需要認可變更。 您的認可儲存在本機開發電腦上,直到您準備好推送它們

如果需要修改上一次的認可 (例如,變更註解或加入檔案),請選擇 [動作],然後選擇 [修改先前認可]。 (您必須使用 Visual Studio 2013 Update 2 或較新版本)。請參閱:如何更改或復原我已認可的變更?

未被追蹤的檔案:列出不在儲存機制中且未被忽略的檔案。 大部分情況下,您應該將此處所列的項目移至 [包含的變更]。 如果該項目是您需要卻不想加入儲存機制的暫時性檔案,您可以忽略它

修改檢視:若要在另一個視窗中檢視您的變更, [取消停駐在 Team Explorer 中]。 您也可以從 [動作] 功能表切換清單檢視和樹狀檢視。

使用 .gitignore 檔案避免您的工作和儲存機制中的檔案雜亂無章

 

大多數開發人員會使用 .gitignore 檔案,避免其工作環境和儲存機制因為暫存檔 (例如本機編譯的二進位檔) 而變得雜亂無章。 當被忽略的檔案或資料夾加入 (例如,當 Visual Studio 在本機建置 .dll 檔時) 至本機 Git 儲存機制中的資料夾,這些檔案或資料夾不會出現在 Team Explorer 的 [變更] 頁面,而且這些檔案也不會認可或推送。

Hh967655.collapse_all(zh-tw,VS.120).gif加入預設 .gitignore 檔案

在大部分情況下,您可以使用 Visual Studio 提供的預設 .gitignore 檔案,而不需自訂。 如果沒有 .gitignore 檔案,您應該加入一個檔案。 確定您已連線至本機遠端 Git 儲存機制。 然後開啟 [Git 設定] 頁面。

自訂您的 Git 儲存機制 .gitignore 檔案

忽略檔案、檔案類型,甚至是資料夾的一個簡單方式是,從 [變更] 頁面執行:

您也可以直接從 Git 設定編輯 .gitignore 檔案:

.gitignore 檔的作用是遞迴。 您可以在子資料夾中建立 .gitignore 檔案,以覆寫父資料夾中 .gitignore 檔案的效果。 如需 .gitignore 檔案 (包括其語法) 的詳細資訊,請參閱忽略檔案gitignore(5) 手冊頁面

Hh967655.collapse_all(zh-tw,VS.120).gif認可儲存機制設定檔案

大部分情況下,您都應該認可和推送 .gitignore 檔案,讓小組其他所有的人在其開發電腦上使用相同的儲存機制設定。

問與答

 

Hh967655.collapse_all(zh-tw,VS.120).gif問:我沒有權限,所以被系統封鎖了。該如何取得?

答: Team Foundation Server 的權限參考

Hh967655.collapse_all(zh-tw,VS.120).gif問:如何從命令提示字元執行工作?

答: Git 命令提示字元的工作

Hh967655.collapse_all(zh-tw,VS.120).gif問:如果我尚未準備好認可變更,但是我不要復原變更,該怎麼辦?

答:您有幾個選項:

  • 您可以建立新的本機分支,在其中認可變更。 例如,您在 master 分支中進行某些變更。 您決定要將這些變更擱置,並嘗試另一種做法。 根據 master 建立 possible_fix 分支,切換至 possible_fix,然後在該分支中認可變更。 請參閱 使用 Git 分支切換內容、暫停工作及隔離風險

  • 您可以從命令提示字元隱藏 (stash) 變更。 請參閱 Git 命令提示字元的工作

Hh967655.collapse_all(zh-tw,VS.120).gif問:如何檢視、更改或回復我已認可的變更?

答:

Hh967655.collapse_all(zh-tw,VS.120).gif問:如何在認可之後建立工作項目的關聯?

答:如果該認可是最後一次認可,而且只在您的開發電腦上認可,您就可以從 [變更] 頁面 (選擇 [動作] 和 [修改先前認可]) 進行修改。 反之,在推送認可之後,請在您的 Web 瀏覽器 (鍵盤:Ctrl + 0、A) 中開啟工作項目,並從該處連結認可。

Hh967655.collapse_all(zh-tw,VS.120).gif問:Git 階段在哪裡?

答:如果您是有經驗的 Git 使用者,您可能已經發覺 Visual Studio 以不同於命令提示字元的方式處理變更。 您可能想知道 [包含的變更] 區段是否包含您所進行的變更。 實際上,Visual Studio 通常會為您略過 Git 階段。 當您認可變更時,Visual Studio 同時進行和認可變更。 唯一例外狀況是在當您將檔案加入至您的 Git 儲存機制時,Visual Studio 會進行這類變更。

Hh967655.collapse_all(zh-tw,VS.120).gif問:我可以認可空資料夾嗎?

答:不同於 TFVC,在 Git 儲存機制,您無法認可空的資料夾。

Hh967655.collapse_all(zh-tw,VS.120).gif問:作者和認可者有何不同?

答:在大部分情況下,認可的作者和認可者會是同一個人。 他們會不同的其中一個情況是,認可已重定基底。 例如,如果 Julia 為 Peter 的認可重定基底,她會成為該認可的認可者,但是 Peter 仍然是認可的作者。

Hh967655.collapse_all(zh-tw,VS.120).gif問:該如何避免加入我的方案所依存,但不會建置的二進位檔案?

答:一般而言,您應該避免將二進位檔案加入至您的 Git 儲存機制,特別是您經常變更的二進位檔案。 大部分情況下,您可以使用 NuGet 以動態下載這類的相依性。 請參閱 NuGet

Hh967655.collapse_all(zh-tw,VS.120).gif問:我可以將 [我的工作] 與 Git 一起使用嗎?

答:不需要。

後續步驟

 

是否準備好要將變更提供給小組,並完成流程來讓工作項目與您的認可產生關聯? 請參閱 在 Git Team 專案中共同作業 (提取、推入)

 

相關文章: 

開始使用 Git 版控 - 在 Visual Studio 及 TFS 中

在 Git 團隊專案中共同作業 (Pull、Push) - 搭配 TFS 或 Visual Studio Online

使用 Git 分支切換內容、暫停工作及隔離風險