GitHub Desktop「Changes」右クリックメニュー徹底ガイド
対象:Changes タブで変更ファイル(例:WinFormsApp1\Form1.Designer.cs)を右クリックしたときのメニュー。
授業やチーム開発で迷いやすい .gitignore・破棄(Discard)・パス共有 の実務ポイントを、手順と注意点つきで整理します。
目次
1. メニュー一覧と使いどころ

Discard changes…
- 動作:ワーキングツリーの変更を破棄し、最後にコミットした内容へ戻す。
- 用途:誤編集や自動生成の不要差分を即座に取り消したいとき。
- 注意:
- 直後なら Edit → Undo Discard で取り消せる場合あり。
- 履歴(コミット)を消す操作ではない。過去コミットの取り消しは Revert(元に戻すコミットを作る)や Reset を検討。
- CLI 参考:git restore — <path>(旧:git checkout — <path>)
Ignore file (add to .gitignore)
- 動作:選択ファイルの無視パターンを .gitignore に追記。
- 用途:一時ファイルや環境依存ファイルをコミット対象から外す。
- 落とし穴:既に追跡済みのファイルには効かない(下の「2. .gitignore の正しい適用」参照)。
Ignore folder (add to .gitignore)
- 動作:対象フォルダを .gitignore に追記(サブメニューから選択)。
- 用途:bin/, obj/, .vs/ などビルド成果物をまとめて無視。
Ignore all .cs files (add to .gitignore)
危険:C# ソース全て(*.cs)を無視。通常は押さない。プロジェクトのコードがコミット対象から消えます。
Copy file path
- 動作:絶対パスをコピー。
- 用途:ローカル説明やチャットでの共有。
Copy relative file path
- 動作:リポジトリ相対パスをコピー。
- 用途:Issue/PR での参照に便利(環境に依らない)。
Show in Explorer
- 動作:エクスプローラーで該当ファイルを開く。
- 用途:外部ツールで比較/バックアップ。
Open in Visual Studio Code
- 動作:VS Code で開く。
- 用途:軽く中身を確認・編集。
Open with default program
- 動作:OS の既定アプリ(例:Visual Studio)で開く。
- 用途:本格編集。
2. .gitignore を正しく効かせる
原則:.gitignore は 未追跡(Untracked)ファイルにだけ 効く。
A) 未追跡ファイルを無視したい
- 右クリック → Ignore file / folder
- 生成された .gitignore の変更をコミット。
B) すでに追跡されているファイルを今後は無視したい
- 右クリック → Ignore file / folder(.gitignore を追記)
- 追跡解除(実体は残す)
- CLI あり:
git rm --cached -r path/to/file-or-folder
git commit -m "Stop tracking generated files"
- 追跡解除(実体は残す)
- Desktop だけ:
- .gitignore 追記後、Changes に「削除」と表示 → その変更をコミット(ローカルのファイルは残り、Git からだけ外れる)
- Desktop だけ:
.NET/Visual Studio で“無視するもの・しないもの”
- 無視する(コミットしない):bin/, obj/, .vs/, *.user, *.suo, *.rsuser, *.cache, *.log など
- 無視しない(必ずコミット):*.cs, *.Designer.cs, *.resx, *.csproj, app.manifest, Properties/Settings.*
特に重要:*.Designer.cs はフォーム設計情報。無視しないでください。無視すると他端末で画面が再現できません。
3. 変更の破棄(Discard)の安全運用
- 破棄前に 一時コミット や 作業用ブランチ へ退避しておくと、やり直しが効く。
- どうしても心配なら、git stash(CLI)や別名でファイルコピーを取ってから破棄。
- 破棄後に「あ、必要だった」は頻出。Undo Discard をまず試す → ダメなら History から過去コミットの内容をコピペ復元。
4. 授業・チーム開発の指導ポイント(チェックリスト)
- リポジトリ作成直後に .gitignore を整備(bin/, obj/, .vs/ は最初から無視)。
- Designer.cs を絶対に無視しない。
- 「無視したのに Changes に出てくる」=それは追跡済み。.gitignore 追記+追跡解除(git rm –cached)。
- 破棄(Discard)の前に 一時コミット/ブランチ。
- 共有時は 相対パス を貼ると全員の環境で通じる。
- 「Ignore all .cs files」は押さない。
5. 代表的なトラブルと対処
Q1. 誤って Ignore all .cs files を押した
- ルートの .gitignore から *.cs を削除 → コミット
- 必要なら git add .(または Desktop で Add)して .cs を再び追跡 → コミット
Q2. Ignore file したのにまだ出てくる
- 追跡済みです。.gitignore 追記後に 追跡解除(前節 B を参照)。
Q3. Discard を戻したい
- 直後:Edit → Undo Discard
- 時間経過後:History から過去コミットの該当行を復元、または Revert/再編集で再現。
6. 参考(CLI 対応表・最小スニペット)
# 変更の破棄(作業ツリー)
git restore -- path/to/file
# .gitignore 追加後、追跡をやめる(実体は残す)
git rm --cached -r path/to/file-or-folder
git commit -m "Stop tracking generated files"
.gitignore(一例/ルートに配置)
# Build artifacts
bin/
obj/
.vs/
# VS user files
*.user
*.suo
*.rsuser
# Logs, caches
*.log
*.cache
以上です。
訪問数 4 回, 今日の訪問数 4回
ディスカッション
コメント一覧
まだ、コメントがありません