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

Discard changes…
- 動作:ワーキングツリーの変更を破棄し、最後にコミットした内容へ戻す。
- 用途:誤編集や自動生成の不要差分を即座に取り消したいとき。
- 注意:
- 恒常的な「Edit → Undo Discard」メニューはありません。 破棄直後に表示される一時的な Undo バナーで取り消せることがありますが、バナーが消えた後は使えません。
- 破棄した変更は OS のゴミ箱(Windows: Recycle Bin/macOS: Trash)に“日付付きファイル”として保存されます。ゴミ箱を空にするまで復元可能です(ゴミ箱で Restore/Put Back を実行)。
- Windows で「ごみ箱を使用しない(即時削除)」設定にしている場合、Discard 時にエラーになることがあります。
Ignore file (add to .gitignore)
- 動作:選択ファイルの無視パターンを .gitignore に追記。
- 用途:一時ファイルや環境依存ファイルをコミット対象から外す。
- 落とし穴:すでに追跡済みのファイルには .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"
- 追跡解除(実体は残す):
- GitHub Desktop:.gitignore 追記後、Changes に当該ファイル(またはフォルダ)が「削除」と表示されるので、その変更をコミット(ローカルの物理ファイルは残り、Git からだけ外れる)。
.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 バナーがあればそれで取り消し。
- 表示がない/時間が経った場合は、OS のゴミ箱(Trash/Recycle Bin)に保存された“日付付きファイル”から復元します。
4. チーム開発のポイント(チェックリスト)
- リポジトリ作成直後に .gitignore を整備(bin/, obj/, .vs/ は最初から無視)。
- Designer.cs を絶対に無視しない。
- 「無視したのに Changes に出てくる」=それは追跡済み。.gitignore 追記+追跡解除(git rm –cached)。
- 破棄(Discard)の前に 一時コミット/ブランチ。
- 共有時は 相対パス を貼ると全員の環境で通じる。
- 「Ignore all .cs files」は押さない。
- Windows でごみ箱無効設定だと Discard エラーになる場合がある。
5. 代表的なトラブルと対処
Q1. 誤って Ignore all .cs files を押した
- ルートの .gitignore から *.cs を削除 → コミット。
- 必要なら git add .(または Desktop で Add)して .cs を再び追跡 → コミット。
Q2. Ignore file したのにまだ出てくる
- 追跡済みです。.gitignore 追記後に 追跡解除(前節 B を参照)。
Q3. Discard を戻したい
- 一時的な Undo バナーが出ていれば使用。
- 出ていなければ OS のゴミ箱から対象ファイルを「Restore/Put Back」で原位置へ戻す。
6. 参考(CLI 対応表・最小スニペット)
# 変更の破棄(作業ツリー)
git restore -- path/to/file
# .gitignore 追加後、追跡をやめる(実体は残す)
git rm --cached -r path/to/file-or-folder
git commit -m "Stop tracking generated files"
訪問数 2 回, 今日の訪問数 2回
ディスカッション
コメント一覧
まだ、コメントがありません