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


各位夥伴們,

有使用 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
 

發行分支

 
當您要共同作業或保留分支中完成的工作時,您可以發行分支。 例如,Raisa 發行其 hotfix1 分支,讓 Jamal 可以查看她完成的工作。
 


在其中一個小組成員發行分支後,您可以在開發電腦上取得複本,從該處進行變更。 例如,Jamal 要測試 Raisa 發行至 Team 專案的hotfix1 分支。

  1. 移至認可頁面 (鍵盤:Ctrl + 0、O),然後從 Team 專案擷取最新變更。


   
     2. 從分支頁面,在開發電腦上建立分支的複本。
 

當您將變更合併至另一個分支或決定放棄工作後,就可以移除分支。 您必須先將您的工作區切換到另一個分支,才可以移除分支,如上所述。

JJ190809.collapse_all(zh-tw,VS.120).gif取消發行遠端分支

您的開發電腦上必須有遠端分支的複本,才能取消發行該分支。 如果還沒有,請參閱取得 (建立) 已發行的分支 您也必須擁有足夠的權限 否則,當您嘗試時會發生錯誤。

在您取消發行分支之後,如果不再需要資料,就可以刪除本機複本。

刪除本機分支

重要事項: 在您刪除本機分支之前,請確定您的小組在其他位置具有複本,或者它不包含您可能需要的任何認可。 如需如何檢視分支內容的詳細資訊,請參閱以下各節。

您可以從分支頁面刪除本機分支。

您可以檢視已發行和已取消發行的分支記錄,以及每個認可的詳細資料。 若要確保您取得已發行之分支的最新記錄,請移至認可頁面 (鍵盤:Ctrl + 0、O),從 Team 專案擷取最新認可。 然後檢視記錄。

您可以在 Web 瀏覽器 (鍵盤:Ctrl + 0、A) 中取得有關已發行之分支的詳細資訊。

探索已發行之分支的檔案

您可以在已發行的分支中探索及檢視檔案內容。

取得已發行之分支的記錄

您可以檢視已發行分支的記錄。

JJ190809.collapse_all(zh-tw,VS.120).gif比較發行的分支

您可以比較某個發行的分支與其他發行的分支。

例如,hotfix1 分支有一個認可是 interactive 分支缺少的,但是前者缺少兩個 interactive 分支所擁有的認可。 您可以選擇連結,進一步向下切入,以取得有關這些差異的詳細資料。 您也可以從分支的內容功能表進行比較。
 

頁面會顯示兩個 
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-scm:Git 分支 - 分支工作流程和 Visual Studio TFS 分支指南

  • 問:在哪裡可以取得有關 Git 分支運作方式的詳細資訊?

    答: Git-scm:Git 分支

相關文章: 
Comments (0)

Skip to main content