付録C Git のインストールと提出ルール
この付録の目的
Section titled “この付録の目的”この付録は、本研修で 課題を Git で提出する ために必要な操作手順を整理した手順書です。
- 各章末「Git への提出」セクションには 4 コマンド例 だけが書かれています。コマンドの意味・初回セットアップ・トラブル対処などの 詳細はこの付録に集約 しています。
- 過去章の提出方法を見直したいときや、
git pushでエラーが出たときも、この付録に戻ってきてください。
本付録は「課題提出のための Git」だけを扱います
Git の一般的な機能(ブランチ・マージ・履歴調査など)には触れません。提出に必要な範囲のみ記載しています。 提出の タイミングや心構え(未完成でも提出する文化など)は 付録 A-3 を、
git pushのエラー詳細は 付録 E-15 / E-16 を参照してください。
C-1 章ごとの提出フロー(基本の 3 コマンド)
Section titled “C-1 章ごとの提出フロー(基本の 3 コマンド)”各章の演習が一段落したら、コマンドプロンプトで C:\Training\CSharp に移動し、次の 3 コマンドで提出します。
各章末の「Git への提出」セクションに同じコマンド例があります。
基本の 3 コマンド
Section titled “基本の 3 コマンド”git add .git commit -m "Chapter05 繰り返し処理"git push各コマンドの意味
Section titled “各コマンドの意味”| コマンド | 役割 |
|---|---|
git add . | 現在のフォルダ以下の すべての変更 を提出候補に登録 |
git commit -m "..." | 提出候補を 1 つの提出単位 として確定する |
git push | ローカルの確定内容を ファイルサーバーへ送信 する |
状態を確認したいときは
git status何が提出候補になっているかを確認したい場合は、
git add .の前にgit statusを実行してください。modified: <ファイル名>/Untracked files:の表示で、変更があったファイルが分かります。
git add . の使い方
Section titled “git add . の使い方”git add . は 現在のフォルダ以下のすべての変更 を提出候補に追加します。
研修中は、基本的に git add . 一発で OK です(C:\Training\CSharp\ 配下のソースコードがまとめて提出候補に登録されます)。
特定のファイルだけ追加したい場合は、ファイル名を指定します。
git add Program.csgit add Models/Employee.csC-2 初回セットアップ(研修開始時の 1 回のみ)
Section titled “C-2 初回セットアップ(研修開始時の 1 回のみ)”研修開始時に、次の 6 ステップを 1 回だけ 実施します。 2 章目以降はこのセットアップは不要で、C-1 の 3 コマンドだけで提出できます。
[1] Git のインストール確認
Section titled “[1] Git のインストール確認”コマンドプロンプトを起動します(Windows キー → cmd と入力して Enter)。
git --versionバージョンが表示されれば OK です。
git version 2.xx.x.windows.x表示されない場合は 講師に確認 してください。
[2] 本人確認情報(名前・メール・既定ブランチ)を設定する
Section titled “[2] 本人確認情報(名前・メール・既定ブランチ)を設定する”Git は「誰がこのコードを書いたか」を記録する仕組みになっています。 まず、自分の名前とメールアドレスを PC の Git に登録します。次の 3 行を 1 行ずつ入力して Enter を押してください。
git config --global user.name "社員番号_名前"git config --global user.email "自分のメールアドレス"git config --global init.defaultBranch main具体例(社員番号 1234、名前 imai の人):
git config --global user.name "1234_imai"git config --global user.email "imai@example.co.jp"git config --global init.defaultBranch mainコマンドを打っても何も表示されませんが、エラーが出なければ設定完了 です。
設定を確認します。
git config --global --listuser.name・user.email・init.defaultBranch=main の 3 行があれば OK です。
3 行目
init.defaultBranch mainは何のため?次のステップ [4] で
git initを実行したときに、最初のブランチがmainという名前で作られるようにする設定です。 サーバー側のリポジトリもmainで運用しているので、これに合わせます。
メールアドレスは社内・研修用のものを使ってください。プライベートのメールアドレスをコミット履歴に残さないよう注意。
[3] 共有ドライブの所有権チェックを許可する
Section titled “[3] 共有ドライブの所有権チェックを許可する”Git 2.35.2 以降は、セキュリティのため 所有者が違うリポジトリへの操作を拒否 するようになりました(dubious ownership エラー)。
共有ドライブ(Z:)上のリポジトリは Windows のログインユーザーと所有者が異なるため、そのままだと git push 時にエラーになります。
研修環境では、次のコマンドを 1 回だけ 実行して、所有権チェックを無効化します。
git config --global --add safe.directory *
*の意味アスタリスクは「任意の場所」を表し、すべての Git リポジトリで所有権チェックをスキップする設定です。 研修環境(管理された共有ドライブ)での簡便な対処として広く使われます。
実務では、リポジトリのパスを 1 件ずつ追加するか、共有ドライブを使わず GitHub・GitLab などのネットワークサービス経由で運用する形が一般的です。
設定を確認します。
git config --global --listsafe.directory=* の行が追加されていれば OK です([2] の user.name / user.email / init.defaultBranch も合わせて 4 行表示されます)。
[4] 作業フォルダと .gitignore を準備する
Section titled “[4] 作業フォルダと .gitignore を準備する”C# のプログラムを作っていくための専用フォルダを準備します。
- エクスプローラーで C ドライブ直下に
Trainingフォルダを作り、その中にCSharpフォルダを作成します(パス:C:\Training\CSharp)。- 研修開始時に 既に作成済みの場合 は、この手順は不要です。
C:\Training\CSharpの中に、.gitignore(ドット ギットイグノア)という名前のテキストファイルを作成します。- メモ帳などで開き、次の内容をコピー&ペーストして 上書き保存 します。
# ビルド結果の一時ファイルを除外[Bb]in/[Oo]bj/
# Visual Studio ユーザー固有ファイルを除外.vs/*.user
.gitignoreの役割Visual Studio がビルドのたびに自動生成する
bin/・obj/・.vs/などのフォルダは、ソースコードではなく 一時ファイル です。 これらを提出するとサーバーの容量を圧迫し、講師の確認も難しくなります。.gitignoreに書いたパターンに合うファイル・フォルダは、git add .の対象から自動的に外れます。研修用の
.gitignoreのひな形は ファイルサーバー上にも置いてあります。コピーで配置しても構いません(中身が同じであれば OK)。
[5] フォルダを Git 管理下に置き、提出先を登録する
Section titled “[5] フォルダを Git 管理下に置き、提出先を登録する”コマンドプロンプトで作業フォルダへ移動します。
cd C:\Training\CSharpこのフォルダを Git で管理する宣言をします(Git の初期化)。
git initInitialized empty Git repository in C:/Training/CSharp/.git/ のようなメッセージが出れば成功です。
続いて、提出先となるサーバー(リモートリポジトリ)を origin という名前で登録します。
研修環境では、共有ドライブが Z: ドライブにマウント されている前提で、次のように登録します。リポジトリ名は 社員番号 + 名前 の形式で、講師から案内されます。
git remote add origin z:\CSharp\<社員番号_名前>.git具体例(社員番号 9999、名前 imai の人):
git remote add origin z:\CSharp\9999_imai.git
originとはGit の慣習で、提出先となるリモートリポジトリの呼び名として
origin(オリジン) がよく使われます。 「提出先」という意味の固有名詞だと思って覚えてください。
サーバー側のリポジトリは講師が事前に用意済みです
z:\CSharp\<社員番号_名前>.gitは、講師があらかじめサーバ上に作っている空の Git リポジトリです。 受講者側で新規作成する必要はありません。
補足:UNC パスで直接指定する場合(マウントしていない環境)
環境によっては、共有ドライブを
Z:にマウントせず、UNC パス(\\サーバ名\...)で直接アクセスすることもあります。その場合の書き方は次のようになります。Terminal window git remote add origin \\SERVER_NAME\CSharp\<社員番号_名前>.gitどちらの形式を使うかは、研修当日に講師から案内されます。研修環境では
Z:ドライブ形式が標準ルートです。
[6] 初回の commit と push
Section titled “[6] 初回の commit と push”ここまでで準備ができたので、.gitignore だけが入った今の状態をサーバーへ初回提出します。
フォルダ内のすべての変更(現状は .gitignore のみ)を提出候補に追加します。
git add .
addと.の間には 半角スペース が必要です。
変更内容にメッセージを付けて、自分の PC 内に確定(コミット)します。
git commit -m "初期設定の完了"サーバーに向けて初回提出(プッシュ)をします。
git push -u origin main
-u origin mainは初回だけ必要な「おまじない」ですこれにより、「自分の PC の
mainブランチ」と「サーバーのmainブランチ」を紐付ける設定が完了します。 2 回目以降はgit pushだけで OK です(-u origin mainを毎回付ける必要はありません)。
これで初回セットアップは完了です。
以降の研修中は、すべての章・課題のプロジェクトを C:\Training\CSharp\ の中に作成し、各章末で C-1 の 3 コマンドだけ実行すれば提出できます。
C:\Training\CSharp\├─ .gitignore ← C-2 [4] で配置済み├─ Chapter01\│ └─ Ch01_FirstCSharp\ ← 講義用のプロジェクト├─ Kadai01\│ ├─ Kd01_01_SelfIntroduction\ ← 課題用のプロジェクト│ └─ Kd01_02_Calculation\├─ Chapter02\└─ Kadai02\C-3 commit メッセージの規約
Section titled “C-3 commit メッセージの規約”コミットメッセージは、後から見て どの章の作業か分かる 形にします。
git commit -m "Chapter{章番号(2 桁)} {章タイトル}"例:
Chapter01 初めてのC#プログラミングChapter05 繰り返し処理Chapter16 SQLServer 環境構築Chapter24 Windowsフォーム社員管理アプリ:検索Chapter28 Web 社員管理アプリ:一覧表示初回セットアップ完了時のみ、特例で
初期設定の完了というメッセージを使います(C-2 [6] 参照)。
修正更新testaaafixこれらは、後から見て 何を提出したのか分かりません。 未完成のまま提出する場合でも、章番号とタイトル をメッセージに入れてください。
メッセージは必ずダブルクォート内に書きます。
git commit -m "..."のダブルクォートを忘れると、シェルが意図しない解釈をします。
C-4 .gitignore とビルド成果物の扱い
Section titled “C-4 .gitignore とビルド成果物の扱い”C-2 [4] で配置した .gitignore により、Visual Studio が自動生成するビルド成果物(bin/・obj/・.vs/ など)は Git の管理対象から自動的に除外 されます。
受講者は ソースコードの作成・編集だけ に集中してください。
もし
git statusにbin//obj/が表示されたら
C:\Training\CSharp\.gitignoreが正しく配置されていない、または内容が不足している可能性があります。 ファイルの存在と中身を確認してください(C-2 [4] の内容と一致していれば OK)。それでも解消しない場合は 講師に相談 してください。自己判断で
git rmなどのコマンドを実行しないでください。
C-5 push でエラーが出たら
Section titled “C-5 push でエラーが出たら”git push でエラーになる代表的な原因と一次対処です。
| エラー文の例 | 原因 | 一次対処 |
|---|---|---|
Could not resolve host / ネットワーク系 | ファイルサーバーに接続できない | LAN 接続を確認 |
Authentication failed / Permission denied | 認証に失敗 | 権限・パスを講師に確認 |
Updates were rejected / non-fast-forward | 別の人(または別 PC)の変更が先に入っている | git pull で取り込んでから再 push、または講師に相談 |
pathspec ... did not match any files | git add で指定したファイル名が間違っている | git status で正しい名前を確認 |
src refspec main does not match any | main ブランチがまだ作成されていない | git commit を実施してから push する(C-2 [6] 参照) |
bad object / corrupt 系 | リポジトリ破損の可能性 | 自己判断せず講師に相談 |
対応の基本ルール
Section titled “対応の基本ルール”[1] エラーメッセージを最後まで読む(原因のヒントが書いてあることが多い) ↓[2] 軽い問題なら一度だけ再実行(ネットワーク再接続後など) ↓[3] 解決しなければ講師に相談(同じコマンドを繰り返さない)同じ操作を繰り返さない
エラーが出たまま
git pushを 5 回繰り返しても、結果は同じです(または悪化します)。 1 度試して直らなければ、何が起きたか を講師に伝えてください(質問の作法は付録 A-8 参照)。
git resetなどの 破壊的なコマンドを自分で試さない でください。リポジトリの状態が壊れる可能性があります。
詳しいエラー別の対処は 付録 E-15「Git push でエラーになる」 にまとめています。
C-6 提出前チェックリスト
Section titled “C-6 提出前チェックリスト”各章の提出前に、次の項目を確認してください。
- プロジェクトを Visual Studio から F5 で実行できる(エラーで停止していない、または未解決箇所を説明できる)
- 必要なソースファイルが揃っている(
Program.cs/Form1.cs/ Controller / View など) - 作業フォルダが
C:\Training\CSharp\の中 にある -
C:\Training\CSharp\.gitignoreが存在する(C-2 [4]) -
git statusを実行して、意図した変更だけ が出ている(bin/・obj/が出ていない) - commit メッセージが
Chapter{章番号} {章タイトル}形式 になっている -
git pushが エラーなく完了 している(エラーなら C-5) - 未完成の場合、どこまで / どこで止まったか を説明できる(運用ルールは付録 A-3)