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

  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. 追跡解除(実体は残す)
    • 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 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 を押した

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