共用方式為


解決 Team Foundation 版本控制衝突

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 |Visual Studio 2022

使用 Team Foundation 版本控制 (TFVC) 來管理檔案的優點是,有數個人可以在檔案上同時工作。 其中一個缺點是,有時候您必須先解決衝突,才能取得檔案、簽入、取消存留、合併或回溯您的檔案。

雖然遇到衝突可能會令人沮喪,但系統會提供資訊和工具來協助您了解和解決衝突。

您也可以使用 [解決] 命令,從命令行解決衝突。

提示

如果您的團隊需要協同合作解決大量的衝突,例如在大型程式碼庫中的合併作業之後,使用共享開發機器上的公共工作區可能會有幫助。 如需詳細資訊,請參閱 建立和使用工作區

解決衝突

您可以使用 Visual Studio [解決衝突 ] 視窗來解決封鎖您的衝突。 若要開啟視窗,請在Team Explorer擱置變更頁面中,選取動作>解決衝突

使用 [解決衝突] 視窗解決衝突的螢幕快照。

根據預設,視窗只會顯示您嘗試的最近作業所造成的衝突。 當視窗處於此狀態時,會出現開始的訊息: 套用路徑篩選。 若要顯示工作區中的所有衝突,請選擇 [ 取得所有衝突]。 開頭為:<N> 衝突 的訊息出現。

如果您對工作區中的檔案進行變更後已過了很長一段時間,可能會發生新的衝突。 若要重新整理 [ 解決衝突] 視窗,請選擇 [ 重新整理]。

顯示 [解決衝突] 視窗的螢幕快照。

每個衝突都包含資訊,有時也包含可協助您解決問題的連結。 若要取得詳細資訊,您可以選取衝突並選擇下列其中一個選項:

  • 歷史記錄圖示。 查看檔案的歷史記錄。 如果造成衝突的作業是合併或復原,您可以選擇 [歷程記錄] 右邊的功能表控件,然後選取 [來源記錄] 或 [目標記錄]。 如需詳細資訊,請參閱 取得專案的歷程記錄。

  • 比較圖示。 比較,或選取圖示旁的下拉式箭號,然後選擇命令。 差異視窗開啟。

  • 標註圖示。 標註以檢視對檔案最新版本所做的所有變更的詳細資訊,包括每次變更的操作者,以及何時進行變更。 請參閱 使用註解檢視檔案變更

自動解決所有衝突

根據預設,除非您關閉此選項,否則系統會自動嘗試 自動復原所有 衝突。 若要關閉自動自動解決全部,請選擇工具選項。 在 選項 對話方塊中,於 原始檔控制Visual Studio Team Foundation Server 下,取消選取 嘗試在產生衝突時自動解決

您也可以在 [解決衝突] 視窗中手動選擇 [自動復原全部],然後選取下列其中一個選項:

  • 所有衝突類型如果您想讓系統使用所有啟發式方法自動嘗試解決衝突。

  • 特定衝突類型,如果您想要讓系統嘗試解決衝突,但您想要排除一些啟發式方法。

    選擇要解決的衝突 對話框隨即出現。 檢查或清除您想要啟用或停用的選項,然後選擇 [ 自動復原]。

    系統會嘗試自動解決 [ 擱置變更 ] 視窗中顯示的衝突。 系統無法解決的任何衝突都會保留在視窗中。 您必須 手動解決 這些衝突。

了解自動選項

您可以限制透過 AutoResolve All 選項自動解決的衝突類型。 當您選擇 [ 自動回復全部 ],然後選取 [ 特定衝突類型] 時,會出現 [ 選擇衝突解決 ] 對話方塊。

顯示 [選擇衝突解決] 對話框的螢幕快照。

衝突原因

範例

核取方塊選擇


檔案的每個版本都進行了非衝突的內容變更。

在左側的檔案版本中, 開頭已新增零 。 在右側的檔案中,結尾新增了一個「三」:

非衝突內容變更的螢幕快照。

與任何內容變更衝突

內容變更是在工作區中特有的取得作業或簽入作業期間進行,或者是在目標版本中獨有的合併作業或復原作業期間進行。

已新增至工作區或目標版本:

工作區或目標唯一內容變更的螢幕快照。

與只在本機工作區或目標分支中所做的內容變更發生衝突

取得或簽入作業期間的內容變更為伺服器獨有,而合併或復原作業期間的內容變更則為來源版本所獨有。

已將新增至伺服器或來源版本:

伺服器或來源特有內容變更的螢幕快照。

與只在伺服器版本或來源分支中所做的內容變更衝突

在取得或簽入操作期間,或在合併或回退操作期間,檔案可能在伺服器或來源分支中重新命名。

您已取出名為 launch.cs 的檔案並進行了修改。 在此期間,其他人提交了影響相同檔案的變更集。 該變更集未修改檔案的內容,但會將檔案的名稱變更為 start.cs

在伺服器版本或來源分支中重新命名檔案所造成的衝突

已進行常見的內容變更,導致每個版本的內容都相同。 或者,您變更了一個檔案,透過門檻檢入組建將其檢入,並選取「在本機保留擱置中的變更」選項。

每個版本的變更都會導致相同的檔案內容。 這些變更可以是檔案中的內容,如下列範例所示:

顯示這兩個版本中相同內容變更的螢幕快照。

伺服器和工作區中相同變更所造成的衝突

這個選項也會解決由所有其他操作引起的衝突,例如,重新命名、刪除、取消刪除和建立分支,這些操作會導致檔案相同。

提示

如果您選取此複選框,當您繼續進行時,系統會藉由將伺服器版本下載到您的工作區來解決這些變更。

自動合併選取的衝突

若要嘗試使用上述所有自動合併選項來解決選取的衝突,請選取一或多個衝突,然後選擇 [ 自動合併]。

提示

您可以按住 Ctrl 鍵或 Shift 鍵來選取多個衝突。

注意

如果 AutoMerge 已停用,您必須 手動解決衝突

手動解決選取的衝突

如果系統無法自動解決衝突,或您想要確定您了解變更的內容,則必須手動解決衝突。 在每個衝突中,系統會顯示您可以採取的動作來解決衝突。 顯示的動作取決於衝突類型和造成衝突的作業。

使用合併視窗

當衝突的內容變更造成衝突時,您可以選擇在合併工具中「合併變更」。 [合併] 視窗隨即出現。

顯示合併工具中合併變更的螢幕快照。

在 [ 合併 ] 視窗中,您可以:

  • 選取視窗的版面配置: [垂直檢視]、 [水平檢視] 或 [ 混合檢視]。
  • 在差異和衝突之間巡覽。
  • 從檔案兩側的版本選取項目,以將它們包含在結果中。
  • [結果 ] 窗格中輸入更多內容至檔案。
  • 檢視檔案的歷程記錄。 如需詳細資訊,請參閱 取得專案的歷程記錄。
  • 比較檔案的版本。
  • 標註檔案,以查看誰變更了哪些內容。 如需詳細資訊,請參閱 使用註解檢視檔案變更

當您滿意 [結果] 窗格的內容時,請選擇 [接受合併]。

解決衝突的結果會出現在 [結果 ] 窗格中。