共用方式為


解決檔案衝突

使用 Team Foundation 版本控制 管理檔案的優點是許多人可以在檔案中同時執行工作。 其中一個缺點是您有時候必須在能 取得簽入解除擱置合併復原 您的檔案之前解決衝突。

衝突的變更會封鎖簽入作業

雖然可能發生衝突造成妨礙,系統會提供資訊和工具可協助您了解解決衝突。

提示

根據預設,系統會自動嘗試對 [全部自動解析] 衝突,除非您關閉了選項 (請參閱提示)。

必要的使用權限

您必須是您的 Team 專案的其中一個 [參與者]。 請參閱 Team Foundation Server 預設群組、使用權限和角色

您想要怎麼做?

  • 處理和取得有關衝突的資訊。

  • 自動解析所有衝突

  • 自動合併個別衝突

  • 手動解決個別衝突

  • 了解自動選項

  • 了解比較選項。

  • 命令提示字元的工作

  • 取得提示

解決衝突視窗

解決衝突視窗會自動出現在嘗試執行由一個或多個衝突封鎖的作業。

[解決衝突] 視窗

根據預設,這個視窗只會顯示您最近一次嘗試執行的作業所造成的衝突。 當視窗處於這種狀態時,會出現以下列文字開頭的訊息:[已套用路徑篩選]。 在您的工作區中要顯示所有衝突,請選取 [取得所有衝突]。 以開頭的訊息: [n 衝突] 隨即出現。

如果自您在工作區中變更檔案之後已經經過一段很長的時間,可能已經發生新的衝突。 若要重新整理 [解決衝突] 視窗中,選取 [重新整理]。

每個衝突包含有助於解決的資訊 (有時為連結)。 若要取得更多資訊,您可以選取衝突並選定:

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

    請參閱 取得項目的歷程記錄

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

  • [比較檔案] 按鈕 [比較] (或在按鈕右邊的功能表並選取 命令)。 差異比對 視窗隨即出現。

自動解析所有衝突

根據預設,系統會自動嘗試對 [全部自動解析] 衝突,除非您關閉了選項 (請參閱提示)。 在 [解決衝突] 視窗,您也可以手動選取 [全部自動解析],然後選取:

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

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

    [選擇要解決的衝突] 對話方塊隨即出現。 選取或清除您要啟用或停用的選項,然後選取 [自動解析]。 如需詳細資訊,請參閱下列 自動解析選項 。

系統會嘗試自動解決 [暫止的變更] 視窗中顯示的衝突。 系統無法解決所有的衝突視窗都會保留。 您必須 手動解決 這些衝突。

自動合併單一衝突

如果您要嘗使用在 自動解析選項 底下描述的任何自動合併選項來解析所選取的衝突,請選取 [自動合併] 。

提示

您可以按住 CTRL 或 SHIFT 鍵選取多項衝突。

注意事項注意事項

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

手動解決單一衝突

如果系統無法自動解決衝突,或者如果您要確定您了解變更,您必須手動解決衝突。 在每個衝突內,系統會顯示可以用來解決衝突的動作。 顯示的動作需視衝突的類型以及造成衝突的作業而定。

ms181432.collapse_all(zh-tw,VS.110).gif在合併工具中合併變更

當衝突是由衝突的內容變更時所造成,您可以選擇 [在合併工具中合併變更]。

當您選取此動作時,合併視窗隨即出現。

合併視窗

解決衝突的工作的結果在 [結果] 窗格中顯示。

在這個視窗中你可以:

  • 選取視窗配置的設定: [垂直檢視], [水平檢視], [混合檢視]。

  • 在差異與衝突間巡覽。

  • 從檔案的左右版本選取物件以將它們包含在結果。

  • 輸入其他內容至 [結果] 窗格中的檔案。

  • 檢視檔案的歷程記錄。 請參閱 取得項目的歷程記錄

  • 比較檔案的各種版本。

  • 標註檔案來查看哪些人變更了什麼。 請參閱 使用附註檢視檔案變更

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

了解自動選項

在特殊案例中,您可能需要限制 「自動解析所有」 選項以自動為您解決衝突的類型。

當您選取 [全部自動解析] 然後 [特定衝突類型] 時, [選擇要解決的衝突] 對話方塊隨即出現。

[選擇要解決的衝突] 對話方塊

如果您要讓系統自動解決衝突,而發生衝突的原因是…

如本範例所說明…

那麼請選取這個核取方塊…

檔案的每個版本中都做了不具衝突性的內容變更

左邊檔案版本的開頭處加入了 0, 而右邊檔案的結尾處則加入了 3

非衝突的內容變更

與任何內容變更衝突

已進行工作區 (在取得或簽入作業期間) 或目標版本 (在合併或復原作業期間) 獨有的內容變更

45 已加入至工作區或目標版本:

工作區或目標所獨有的內容變更

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

已進行伺服器 (在取得或簽入作業期間) 或來源版本 (在合併或復原作業期間) 獨有的內容變更

45 已加入至伺服器或來源版本:

伺服器或來源所獨有的內容變更

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

已重新命名伺服器 (在取得或簽入作業期間) 或來源分支 (在合併或復原作業期間) 上的檔案

已簽出名為 launch.cs 的檔案,並且已使用這個檔案。 當時有其他人簽入影響同一個檔案的變更集。 這個變更集並沒有修改檔案的內容,但卻將檔案的名稱變更為 start.cs。

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

  • 已在每個版本中做了產生相同內容的一般內容變更

  • 您可以變更檔案並透過閘道簽入組建將檔案簽入,然後選取 [在本機保留我的暫止變更] 選項

每個版本的變更都產生了相同的檔案內容。 變更可以是針對檔案中的內容,如下列範例所示:

每一個版本中的相同內容變更

這個選項也能解決由所有其他作業 (例如:重新命名、刪除、取消刪除及分支) 以及造成相同檔案的衝突。

提示提示
如果您選取這個核取方塊,在繼續進行作業時,系統會藉由將伺服器版本放入 (下載到) 您的工作區中以解決這些變更。

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

命令提示字元的工作

秘訣

  • 提示預設系統會自動嘗試存取 [全部自動解析] 衝突。 若要變更這個選項,從功能表列選取 [工具], [選項],然後在[選項] 對話方塊中,巡覽至 [原始檔控制], [Visual Studio Team Foundation Server]。 清除 [嘗試自動解決衝突,在產生時] 核取方塊。

  • 提示您的小組是否需要合作解決大量衝突 (例如,可能在大型程式碼基底合併作業後發生)? 如果是,在共用 dev 機器上的公用工作區會有所幫助。 請參閱 建立和使用工作區