Share via


解決兩個檔案之間的衝突

使用 Team Foundation 版本控制管理檔案的好處是可以讓許多人同時使用原始程式碼檔案之類的資產。 不過,允許同時使用相同的檔案表示您偶爾必須解決衝突。

當您嘗試執行下列任一作業時,可能會發生衝突:

  • 取得或簽入檔案時,工作區中的版本與伺服器上的版本之間可能會發生衝突。

  • 從某個分支合併到另一個分支時,來源分支中檔案的版本與目標分支中檔案的版本之間可能會發生衝突。

  • 使用 tf rollback 命令執行復原作業時,檔案目前的版本與您嘗試建立的版本之間可能會發生衝突。

雖然在嘗試完成作業時遇到衝突可能讓您感到困擾,但是 Team Foundation 版本控制將會提供資訊來幫助您了解衝突的原因,而且還會提供您用來解決衝突的工具。 在許多情況下,您都可以使用如「全部自動解析」或「自動合併」等自動作業解決一個或多個衝突。

本文內容

  • 管理顯示的衝突

  • 取得衝突的詳細資訊

  • 解決衝突

必要的使用權限

若要執行這些程序,您必須將來源路徑中項目的 [讀取] 權限,以及目標路徑中項目的 [簽出] 權限設定為 [允許]。 如果您要重新命名目標路徑中的項目,則必須同時將來源路徑和目標路徑的 [簽出] 權限設定為 [允許]。 如果包含鎖定,則必須將 [鎖定] 權限設定為 [允許]。 如需詳細資訊,請參閱 Team Foundation Server 使用權限

管理顯示的衝突

當您嘗試執行的作業因為發生一個或多個衝突而遭到封鎖時,[暫止的變更] 視窗的 [衝突] 通道便會自動出現。 根據預設,這個視窗只會顯示您最近一次嘗試執行的作業所造成的衝突。 當視窗處於這種狀態時,會出現以下列文字開頭的訊息:[已套用路徑篩選…]。

不過,您可以執行下列步驟,使視窗顯示封鎖工作區中所有暫止變更的所有衝突:

若要顯示工作區中的所有衝突

  1. 如果尚未顯示 [暫止的變更] 視窗,請按一下 [檢視] 功能表,指向 [其他視窗],然後按一下 [暫止的變更]。

  2. 按一下 ms181433.VCtrl_PendChgsConflictsButton(zh-tw,VS.100).png [衝突]。

  3. 按一下 [取得所有衝突]

    在您按一下這個按鈕後,會顯示以下列文字開頭的訊息:[n 總計衝突...]。

如果自您在工作區中變更檔案之後已經經過一段很長的時間,在這段期間可能已經發生新的衝突。 您可以執行下列步驟來重新整理 [暫止的變更] 視窗,以便顯示這些衝突:

若要重新整理暫止的變更視窗

  1. 如果尚未顯示 [暫止的變更] 視窗,請按一下 [檢視] 功能表,指向 [其他視窗],然後按一下 [暫止的變更]。

  2. 按一下 ms181433.VCtrl_PendChgsConflictsButton(zh-tw,VS.100).png [衝突]。

  3. 按一下 [重新整理]。

取得衝突的詳細資訊

您可能必須先取得造成衝突之檔案變更的詳細資訊,才能嘗試解決衝突。

若要取得衝突的詳細資訊

  1. 顯示 [暫止的變更] 視窗的 [衝突] 通道 (如需詳細資訊,請參閱管理所顯示的衝突)。

  2. 找出並選取您要研究的衝突

  3. 閱讀所選衝突中顯示的資訊。 某些類型的衝突會顯示連結,您可以按一下這些連結,取得其他資訊。

  4. (選用) 請執行下列其中一個步驟:

    • 按一下 [記錄] 按鈕 [記錄],查看檔案的記錄。 如果造成衝突的作業是合併或復原作業,您可以按一下 [記錄] 右邊的功能表控制項,然後選取 [來源記錄] 或 [目標記錄]。

    • 按一下 [附註] 按鈕 [附註],檢視檔案最新版本之所有變更的詳細資料,包括進行每項變更的人員,以及進行變更的時間。

    • 按一下 [比較檔案] 按鈕 [比較] 右邊的功能表控制項,並選取命令。

      如果您要嘗試…

      則選取…

      以便…

      簽入或取得檔案

      比較本機版本與伺服器版本

      比較工作區中的複本與伺服器上的最新版本。

      比較本機版本與原始版本

      比較工作區中的複本與伺服器上已簽出給您的版本。

      比較伺服器版本與原始版本

      比較伺服器上的最新版本與已簽出給您的版本。

      合併檔案

      比較來源版本與目標版本

      比較合併來源中的版本與合併目標中的版本。

      比較來源版本與基底版本

      比較合併來源中的版本與來源和目標進行合併時的最後一個版本。

      比較目標版本與基底版本

      比較合併目標中的版本與來源和目標進行合併時的最後一個版本。

      復原檔案

      比較來源版本與目標版本

      比較緊接在您要排除之版本前面的檔案版本 (來源) 與工作區中檔案的復原版本 (目標)。

      比較來源版本與基底版本

      比較緊接在您要排除之版本前面的檔案版本 (來源) 與包含所要排除之變更的檔案版本 (基底)。

      比較目標版本與基底版本

      比較工作區中檔案的復原版本 (目標) 與包含所要排除之變更的檔案版本 (基底)。

解決衝突

Team Foundation 版本控制有幾項工具可用來解決封鎖您嘗試執行之作業的衝突。

若要選取解決衝突的方法

  • 請檢閱下表,並按一下您要使用的方法。

    解決方法

    說明

    自動解析所有衝突

    系統會嘗試解決所有衝突。 您可以選擇排除系統使用的某些啟發方式。

    自動合併個別衝突

    系統會嘗試解決一項衝突。 您無法選擇排除系統使用的任何啟發方式。

    手動解決個別衝突

    您需手動選取動作來解決衝突。

若要自動解析所有衝突

  1. 顯示 [暫止的變更] 視窗的 [衝突] 通道 (如需詳細資訊,請參閱管理所顯示的衝突)。

  2. 按一下 [全部自動解析],然後選取下列其中一個選項:

    • 如果您要讓系統使用所有啟發方式,嘗試自動解決衝突,請選取 [所有衝突類型]。

    • 如果您要讓系統嘗試解決衝突,但想排除某些啟發方式,請選取 [特定衝突類型]。

      [選擇要解決的衝突] 對話方塊隨即出現。 選取或清除您要啟用或停用的啟發方式,然後按一下 [自動合併]。 如需詳細資訊,請參閱 指定 AutoResolve 解決方式選項

  3. 系統會嘗試自動解決 [暫止的變更] 視窗中顯示的衝突。 系統無法解決的任何衝突都將保留在此視窗中,這些就是必須手動解決的衝突。

若要自動合併單一衝突

  1. 顯示 [暫止的變更] 視窗的 [衝突] 通道 (如需詳細資訊,請參閱管理所顯示的衝突)。

  2. 找出並選取您要解決的衝突。

    秘訣秘訣

    您可以按住 CONTROL 或 SHIFT 鍵,然後選取多項衝突。

  3. 按一下 [自動合併]

注意事項注意事項

如果 [自動合併] 已停用,則表示您必須手動解決這項衝突。

若要手動解決單一衝突

  1. 顯示 [暫止的變更] 視窗的 [衝突] 通道 (如需詳細資訊,請參閱管理所顯示的衝突)。

  2. 找出並選取您要解決的衝突。

    秘訣秘訣

    您可以按住 CONTROL 或 SHIFT 鍵,然後選取多項衝突。

    在選取的衝突內,系統會顯示可以用來解決衝突的動作。 顯示的動作需視衝突的類型以及造成衝突的作業而定。

  3. 選取動作來解決衝突。

請參閱

工作

協調兩個資料夾之間的差異

合併資料夾和檔案

取得 Team 專案的原始檔

合併資料夾和檔案

取得 Team 專案的原始檔

參考

Resolve 命令

概念

送出變更

暫止的變更

其他資源

解決資料夾差異和檔案衝突