各位夥伴們,
有使用 Git 版本管控機制的朋友們,Visual Studio 2013 早已提供 Git 的支援,包括 Pull, Push, 分支等常見功能,且支援連到其它的 Git repository (例 GitHub);而 TFS 團隊開發平台及 Visual Studio Online 雲端版除了支援集中式 Team Foundation 版控,也支援 Git 分散式版控,讓你建立自己的 Git repository 儲存體。本文介紹如何開始在 Visual Studio 及 TFS 中使用 Git。
-----------------------------------------------------------------------
您可以使用分支切換內容、暫停工作和隔離風險。 某些人會為執行的每個工作建立「主題」分支。 當他們滿意工作時,會將其合併回到 master 分支。 您可以選擇發行分支到遠端儲存機制 (例如 Git Team 專案),以便與其他人共同作業。
例如,您在 interactive 分支中執行某些工作。 在 master 分支上的緊急 Bug 指派給您。 您在 interactive 分支中認可變更。 然後根據master 建立名為 hotfix1 的新分支。 在 hotfix1 分支中完成工作之後,您發行該分支至您的 Team 專案,讓其他人進行測試。 接著切換到interactive 分支,繼續完成工作。 完成時,您將這些變更合併至 master,並將其推送至 Team 專案。
從分支頁面 (鍵盤:Ctrl + 0、N) 建立分支。
當您切換分支時,會將工作區從檔案的某個版本切換到另一個版本。
您可以從分支頁面 (鍵盤:Ctrl + 0、N)、首頁 (鍵盤:Ctrl + 0、H)、變更頁面 (鍵盤:Ctrl + 0、G) 和認可頁面 (鍵盤:Ctrl + 0、O) 切換分支。
當您準備好時,請將某個分支中完成的工作合併至另一個分支。 例如,Raisa 完成其本機 interactive 主題分支的一些工作,因此,她要將這個工作整合至小組的 master 分支。 她將 interactive 合併至 master。
在其中一個小組成員發行分支後,您可以在開發電腦上取得複本,從該處進行變更。 例如,Jamal 要測試 Raisa 發行至 Team 專案的hotfix1 分支。
移至認可頁面 (鍵盤:Ctrl + 0、O),然後從 Team 專案擷取最新變更。
當您將變更合併至另一個分支或決定放棄工作後,就可以移除分支。 您必須先將您的工作區切換到另一個分支,才可以移除分支,如上所述。
取消發行遠端分支
您的開發電腦上必須有遠端分支的複本,才能取消發行該分支。 如果還沒有,請參閱取得 (建立) 已發行的分支。 您也必須擁有足夠的權限。 否則,當您嘗試時會發生錯誤。
在您取消發行分支之後,如果不再需要資料,就可以刪除本機複本。
刪除本機分支
重要事項: 在您刪除本機分支之前,請確定您的小組在其他位置具有複本,或者它不包含您可能需要的任何認可。 如需如何檢視分支內容的詳細資訊,請參閱以下各節。
您可以從分支頁面刪除本機分支。
您��以檢視已發行和已取消發行的分支記錄,以及每個認可的詳細資料。 若要確保您取得已發行之分支的最新記錄,請移至認可頁面 (鍵盤:Ctrl + 0、O),從 Team 專案擷取最新認可。 然後檢視記錄。
頁面會顯示兩個 hotfix1 所缺少的而 interactive 所擁有的認可。
當您選擇 交換分支時,頁面會顯示 hotfix1 所擁有的而 interactive 所缺少的認可。
問:當我嘗試合併時,被衝突封鎖。 如何解決衝突?
答: 解決衝突 。
問:當我建立分支時,選擇 branch-name (本機分支) 或 origin/branch-name (遠端分支) 是否有關係?
答:可以。 例如:
如果您從 interactive 建立分支,該分支是未發行的。 這表示它只存在於開發電腦上,直到您決定將其發行。 如果您從origin/interactive 建立分支,該分支會自動發行。問:當我嘗試切換至另一個分支,為什麼收到了下列訊息?
答:如果您目前的分支所參考的認可不同於您要切換至的分支 (通常是如此),必須先認可或復原未經認可的變更。
問:如果我尚未準備好認可變更,但是我要切換到另一個分支,該怎麼辦?
答:您有幾個選項:
如果您不需要變更,可以從變更頁面 (鍵盤:Ctrl + 0、G) 復原變更。
您可以建立新的本機分支,在其中認可變更。 例如,您在 master 分支中進行某些變更。 您決定要將這些變更擱置,並嘗試另一種做法。 您可以根據 master 建立 possible_fix 分支,切換至 possible_fix,然後在該分支中認可變更。
您可以從命令提示字元隱藏 (stash) 變更。 請參閱 Git 命令提示字元的工作。
問:我要將我的主題分支合併到我們的 master 分支。 主題分支包含我不要放在記錄中的許多認可。 在合併之前,如何將多個認可結合為單一認可?
答:您可以從命令提示字元合併 (squash) 認可。 請參閱 Git 命令提示字元的工作。
問:我在 [發行的分支] 區段中看到分支,不過在入口網站上看不到該分支。 發生什麼情況? 該分支是否已發行?
答:當分支出現在 [發行的分支] 區段時,這表示某個小組成員在某個時間點已發行該分支。 在那之後,有人可能取消發行該分支。 您可以將該分支移至 [取消發行的分支] 區段,方法是選取分支,開啟其內容功能表,選取 [取消發行分支],然後選擇 [重新整理]。
問:我可以套用不同的權限到不同的分支嗎?
答:可以。 請參閱 Git 儲存機制使用權限。
問:可以從命令提示字元工作嗎?
答:可以。 Git 命令提示字元的工作 .
問:我可以從特定的認可或標記建立分支嗎?
答:可以。 您可以從命令提示字元使用 <start-point> 選項執行這項操作。 請參閱 Git-scm:git-branch(1) 手冊頁面
問:分支有哪些其他用途?
答:許多小組使用長期存在的分支:
由相同程式碼基底的多個小組管理並行工作
確定由程式碼基底的不同變更集引發的風險
擷取快照,然後支援後續確定的變更 (例如,建立發行分支)
問:在哪裡可以取得有關 Git 分支運作方式的詳細資訊?