学習記事一覧 · Gitチーム開発

よくある失敗とFAQ(Gitチーム開発)

Gitチーム開発シリーズ:なぜGitを使うのか|WinFormsで2人開発を体験する|コンフリクトを体験して解消する|ブランチを体験する|Pull Requestを体験する|よくある失敗とFAQ(今ここ)|4人チームでクイズアプリを作る|目次へ


チーム開発の授業でよく起きる失敗と、よくある質問をまとめました。つまずいたときに参照してください。


よくある失敗

2人開発で起きやすい失敗

失敗例 対策
Pull を忘れて古いコードを編集してしまう 作業開始前に必ず Pull する習慣をつける
同じファイルを同時編集してコンフリクトが起きる 役割分担を守る(ロジック担当と画面担当で担当ファイルを分ける)
Form1.Designer.cs を2人で編集してフォームが壊れる フォーム編集は1人に限定する(画面担当のBさんが担当)
data.txt にヘッダ行や空行を入れて読み込みエラーになる 1行目から「名前,電話番号」形式。空行は入れない
.NET のバージョン違いで data.txt のパスが合わない @"..\..\data.txt" を実行フォルダの階層に合わせて調整(.NET 5/6/7 では @"..\..\..\data.txt" など)
Bさんが Collaborator の招待に気づかない 招待後、Slack などで「招待メールを確認してください」と伝える

コンフリクト体験で起きやすい失敗

失敗例 対策
コンフリクトマーカーを残したまま Commit してしまう <<<<<<<>>>>>>> をすべて削除し、残したい内容だけにしてから保存・Commit
「Open in VS Code」で開いて混乱する 記事通り、Visual Studio のマージエディターを使う(「表示」→「Git 変更」→ 該当ファイルをダブルクリック)
解消に失敗してやり直したい GitHub Desktop の「Abort merge」または git merge --abort でマージを中止。Pull 前の状態に戻る

4人チーム(クイズアプリ)で起きやすい失敗

失敗例 対策
クラスファイルを追加したが .csproj が保存されず、Commit に含まれない クラス追加後は すべて保存(Ctrl+Shift+S)してから Commit。プロジェクトファイルの更新も保存される

2回目・3回目で起きやすい失敗

失敗例 対策
Clone 先を分けず、同じフォルダ名が複数ある Clone 時に保存先を分ける(例:PhoneBook_Round2PhoneBook_Conflict
パスに日本語を入れて環境によって問題が起きる フォルダ名は英数字のみを推奨

FAQ

2人開発について

Q. Pull を忘れて編集してしまいました。どうすればよいですか?

A. 編集を保存する前に Pull すれば、多くの場合は自動でマージされます。すでに保存して Commit してしまった場合は、Pull を実行するとコンフリクトが発生することがあります。その場合は コンフリクトを体験して解消する の手順で解消してください。


Q. Bさんが Collaborator の招待に気づかない場合は?

A. GitHub の招待はメールで届きます。届いていない場合は、リポジトリの「Settings」→「Collaborators」で招待状態を確認し、必要なら再招待してください。Slack などで「招待メールを確認してください」と伝えるとスムーズです。


コンフリクトについて

Q. コンフリクトが起きたら、どちらの変更を残せばよいですか?

A. 内容によって決めます。どちらか一方を残す、両方残す、または新しい内容を書くこともできます。迷ったらペアで相談して決めてください。


Q. マージを途中でやめたい場合は?

A. GitHub Desktop の「Abort merge」、またはコマンドラインで git merge --abort を実行すると、Pull 前の状態に戻ります。解消に失敗したときの「やり直し」として使えます。


Q. コンフリクトマーカーが複数箇所にある場合は?

A. 1箇所ずつ解消します。<<<<<<<>>>>>>> のブロックごとに、残したい内容を決めてマーカーを削除し、最後にファイル全体を確認してから保存・Commit してください。


2回目以降について

Q. 2回目・3回目で別ペアのリポジトリを Clone するときの注意は?

A. 保存先フォルダ名を変えてください(例:PhoneBook_Round2PhoneBook_Conflict)。同じ名前だと Visual Studio で混同しやすくなります。パスに日本語は入れないことを推奨します。


Q. ソリューション名がかぶって混乱する場合は?

A. Clone 時に「Local path」で保存先を分けると、フォルダ名が変わるため区別しやすくなります。例:PhoneBook_ConflictPhoneBook_Round2


時間に余裕ができたとき

Q. 課題を早く終えてしまった場合は、何をするとよいですか?

A. 発展課題に取り組む、またはペアで互いのコードを読み合う(簡単なコードレビュー)と、理解の定着につながります。やることを決めておくと、学習時間を有効に使いやすくなります。


まとめ

  • 作業前は Pull を習慣にする
  • 役割分担 を守り、同じファイルを同時編集しない
  • コンフリクト が起きても、マーカーを削除して解消できる
  • 2回目以降 は Clone 先のフォルダ名を分ける

つまずいたときは、この記事と各回の記事を参照してください。