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) 未追跡ファイルを無視したい

  1. 右クリック → Ignore file / folder
  2. 生成された .gitignore の変更をコミット。

B) すでに追跡されているファイルを今後は無視したい

  1. 右クリック → Ignore file / folder(.gitignore を追記)。
  2. 追跡解除(実体は残す)
    • CLI:
git rm --cached -r path/to/file-or-folder
git commit -m "Stop tracking generated files"
  1. 追跡解除(実体は残す)
    • 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 を押した

  1. ルートの .gitignore から *.cs を削除 → コミット。
  2. 必要なら 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回