軟體開發與專案管理

在 Git 中,兩位開發人員在不同分支各自修改了同一檔案的同一行,然後將一個分支合併到另一個分支。此時會發生的情況,下列何者適當?

  1. A自動採用提交時間較新的變更,捨棄較舊的變更
  2. B合併進來的那一方(接收端)分支的變更一律優先,對方的變更自動被捨棄
  3. C合併因衝突(conflict)而停止,由開發人員確認內容,決定保留哪一方(或結合兩者)以解決衝突
查看答案與解析

正確答案:C. 合併因衝突(conflict)而停止,由開發人員確認內容,決定保留哪一方(或結合兩者)以解決衝突

Git 的合併會比較兩個分支各自從共同祖先以來的變更,若是不同位置的變更就自動結合。若同一處在兩邊都被修改,無法機械性地判斷哪一方正確,因此會以衝突停止合併,並在檔案中標示雙方的內容。開發人員編輯檔案解決衝突,測試後再提交。要減少衝突,有效的做法是不要讓分支長時間分開,而是勤於整合。

  • A. Git 不會依時間選擇變更。同一處的變更要由人判斷並解決。
  • B. 標準的合併不會自動捨棄任一方的變更,而是以衝突停止。
  • C. 正確。同一處的變更會成為衝突,由人判斷並解決。
練習這個領域 前往領域頁面

相關計算工具

軟體開發與專案管理的其他題目

  1. 在設計書或原始碼的審查方法中,由主持人(moderator)主導、決定參加者的角色、使用檢查表等正式進行,並記錄找到的缺陷且確認到修正完成的是下列何者?
  2. 在已知可正常運作的韌體版本之後有1,000個提交,最新的提交會發生缺陷。假設缺陷是由某1個提交引入,其後的提交全都會發生。像 git bisect 那樣以二分搜尋找出原因提交時,需要建置並測試的次數最多為下列何者?
  3. 在將專案的產出物與工作階層式分解的工作分解結構(WBS)中,位於最下層、用來估算工期與成本並指派負責人的單位為下列何者?
  4. 將結點設為①~⑥,以「名稱:起點→終點、所需天數」表示作業,有一張箭線圖為:A:①→②、6天,B:①→③、4天,C:②→④、4天,D:③→⑤、4天,E:④→⑥、2天,F:⑤→⑥、3天,虛作業:②→③(所需天數0)。專案整體最短的所需天數為下列何者?
  5. 某專案的作業、所需天數與前置作業為:A:4天(無前置作業)、B:2天(無)、C:3天(A)、D:2天(B)、E:5天(C)、F:4天(C 與 D)、G:2天(F)。其他作業都盡早開始時,作業 B 延後開始而不使整體所需天數增加的最大天數為下列何者?