ソフトウェア開発とプロジェクト管理

Gitで、2人の開発者が同じファイルの同じ行をそれぞれ別のブランチで書き換え、一方のブランチをもう一方にマージした。このとき起こることとして、適切なものはどれか。

  1. Aコミットの日時が新しい方の変更が自動で採用され、古い方の変更は捨てられる
  2. B取り込む側のブランチの変更が常に優先され、相手の変更は自動で捨てられる
  3. Cコンフリクト(競合)としてマージが止まり、開発者が内容を確かめて、どちらを残すか(または両方を組み合わせるか)を決めて解消する
答えと解説を見る

正解:C. コンフリクト(競合)としてマージが止まり、開発者が内容を確かめて、どちらを残すか(または両方を組み合わせるか)を決めて解消する

Gitのマージは、共通の祖先からの変更を両方のブランチについて比べ、違う場所の変更なら自動で組み合わせます。同じ箇所が両方で変更されていると、どちらが正しいかを機械的には決められないので、コンフリクトとしてマージを止め、ファイルの中に両方の内容を示します。開発者はそれを編集して解消し、テストしてからコミットします。コンフリクトを減らすには、ブランチを長く分けたままにせず、こまめに統合することが有効です。

  • A. Gitは日時で変更を選びません。同じ箇所の変更は、人が判断して解消します。
  • B. 標準のマージでは、どちらかの変更を自動で捨てることはせず、コンフリクトとして止めます。
  • C. 正しい。同じ箇所の変更はコンフリクトになり、人が判断して解消します。
この分野を解く 分野ページへ

関連する計算ツール

ソフトウェア開発とプロジェクト管理の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

ソフトウェア開発とプロジェクト管理のほかの問題

  1. 設計書やソースコードのレビューの方法のうち、モデレータ(進行役)が主導し、参加者の役割を決め、チェックリストなどを使って公式に行い、見つけた欠陥を記録して修正まで確認するものはどれか。
  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の開始を遅らせても全体の所要日数が延びない最大の日数はどれか。