解決檔案衝突
使用 Team Foundation 版本控制 管理檔案的優點是許多人可以在檔案中同時執行工作。 其中一個缺點是您有時候必須在能 取得、 簽入、 解除擱置、 合併或 復原 您的檔案之前解決衝突。
雖然可能發生衝突造成妨礙,系統會提供資訊和工具可協助您了解解決衝突。
提示
根據預設,系統會自動嘗試對 [全部自動解析] 衝突,除非您關閉了選項 (請參閱提示)。
必要的使用權限
您必須是您的 Team 專案的其中一個 [參與者]。 請參閱 Team Foundation Server 預設群組、使用權限和角色。
您想要怎麼做?
處理和取得有關衝突的資訊。
自動解析所有衝突
自動合併個別衝突
手動解決個別衝突
了解自動選項
了解比較選項。
命令提示字元的工作
取得提示
解決衝突視窗
解決衝突視窗會自動出現在嘗試執行由一個或多個衝突封鎖的作業。
根據預設,這個視窗只會顯示您最近一次嘗試執行的作業所造成的衝突。 當視窗處於這種狀態時,會出現以下列文字開頭的訊息:[已套用路徑篩選]。 在您的工作區中要顯示所有衝突,請選取 [取得所有衝突]。 以開頭的訊息: [n 衝突] 隨即出現。
如果自您在工作區中變更檔案之後已經經過一段很長的時間,可能已經發生新的衝突。 若要重新整理 [解決衝突] 視窗中,選取 [重新整理]。
每個衝突包含有助於解決的資訊 (有時為連結)。 若要取得更多資訊,您可以選取衝突並選定:
[記錄],用以查看檔案的記錄。 如果造成衝突的作業是合併或復原作業,您可以選取 [記錄] 右邊的功能表控制項,然後選取 [來源記錄] 或 [目標記錄]。
請參閱 取得項目的歷程記錄。
[附註],用以檢視檔案最新版本之所有變更的詳細資料,包括進行每項變更的人員,以及進行變更的時間。 請參閱 使用附註檢視檔案變更。
[比較] (或在按鈕右邊的功能表並選取 命令)。 差異比對 視窗隨即出現。
自動解析所有衝突
根據預設,系統會自動嘗試對 [全部自動解析] 衝突,除非您關閉了選項 (請參閱提示)。 在 [解決衝突] 視窗,您也可以手動選取 [全部自動解析],然後選取:
如果您要讓系統使用所有啟發方式,嘗試自動解決衝突,請選取 [所有衝突類型]。
如果您要讓系統嘗試解決衝突,但想排除某些啟發方式,請選取 [特定衝突類型]。
[選擇要解決的衝突] 對話方塊隨即出現。 選取或清除您要啟用或停用的選項,然後選取 [自動解析]。 如需詳細資訊,請參閱下列 自動解析選項 。
系統會嘗試自動解決 [暫止的變更] 視窗中顯示的衝突。 系統無法解決所有的衝突視窗都會保留。 您必須 手動解決 這些衝突。
自動合併單一衝突
如果您要嘗使用在 自動解析選項 底下描述的任何自動合併選項來解析所選取的衝突,請選取 [自動合併] 。
提示
您可以按住 CTRL 或 SHIFT 鍵選取多項衝突。
注意事項 |
---|
如果 [自動合併] 已停用,則表示您必須手動解決這項衝突。 |
手動解決單一衝突
如果系統無法自動解決衝突,或者如果您要確定您了解變更,您必須手動解決衝突。 在每個衝突內,系統會顯示可以用來解決衝突的動作。 顯示的動作需視衝突的類型以及造成衝突的作業而定。
在合併工具中合併變更
當衝突是由衝突的內容變更時所造成,您可以選擇 [在合併工具中合併變更]。
當您選取此動作時,合併視窗隨即出現。
解決衝突的工作的結果在 [結果] 窗格中顯示。
在這個視窗中你可以:
選取視窗配置的設定: [垂直檢視], [水平檢視], [混合檢視]。
在差異與衝突間巡覽。
從檔案的左右版本選取物件以將它們包含在結果。
輸入其他內容至 [結果] 窗格中的檔案。
檢視檔案的歷程記錄。 請參閱 取得項目的歷程記錄。
比較檔案的各種版本。
標註檔案來查看哪些人變更了什麼。 請參閱 使用附註檢視檔案變更。
當滿意 [結果] 窗格的內容時,選取 [接受合併]。
了解自動選項
在特殊案例中,您可能需要限制 「自動解析所有」 選項以自動為您解決衝突的類型。
當您選取 [全部自動解析] 然後 [特定衝突類型] 時, [選擇要解決的衝突] 對話方塊隨即出現。
如果您要讓系統自動解決衝突,而發生衝突的原因是… |
如本範例所說明… |
那麼請選取這個核取方塊… |
---|---|---|
檔案的每個版本中都做了不具衝突性的內容變更 |
左邊檔案版本的開頭處加入了 0, 而右邊檔案的結尾處則加入了 3: |
與任何內容變更衝突 |
已進行工作區 (在取得或簽入作業期間) 或目標版本 (在合併或復原作業期間) 獨有的內容變更 |
4 和 5 已加入至工作區或目標版本: |
只與本機工作區或目標分支中所做的內容變更衝突 |
已進行伺服器 (在取得或簽入作業期間) 或來源版本 (在合併或復原作業期間) 獨有的內容變更 |
4 和 5 已加入至伺服器或來源版本: |
只與伺服器版本或來源分支中所做的內容變更衝突 |
已重新命名伺服器 (在取得或簽入作業期間) 或來源分支 (在合併或復原作業期間) 上的檔案 |
已簽出名為 launch.cs 的檔案,並且已使用這個檔案。 當時有其他人簽入影響同一個檔案的變更集。 這個變更集並沒有修改檔案的內容,但卻將檔案的名稱變更為 start.cs。 |
因重新命名伺服器版本或來源分支中的檔案而造成的衝突 |
|
每個版本的變更都產生了相同的檔案內容。 變更可以是針對檔案中的內容,如下列範例所示: 這個選項也能解決由所有其他作業 (例如:重新命名、刪除、取消刪除及分支) 以及造成相同檔案的衝突。
提示
如果您選取這個核取方塊,在繼續進行作業時,系統會藉由將伺服器版本放入 (下載到) 您的工作區中以解決這些變更。
|
因伺服器和工作區中的相同變更而造成的衝突 |
命令提示字元的工作
秘訣
預設系統會自動嘗試存取 [全部自動解析] 衝突。 若要變更這個選項,從功能表列選取 [工具], [選項],然後在[選項] 對話方塊中,巡覽至 [原始檔控制], [Visual Studio Team Foundation Server]。 清除 [嘗試自動解決衝突,在產生時] 核取方塊。
您的小組是否需要合作解決大量衝突 (例如,可能在大型程式碼基底合併作業後發生)? 如果是,在共用 dev 機器上的公用工作區會有所幫助。 請參閱 建立和使用工作區。