付録
付録A GUI と CLI の対応表
Section titled “付録A GUI と CLI の対応表”VS Code で覚えた操作が、コマンドでは何に当たるかの一覧です。 検索して出てくる記事や生成 AI の回答はほとんどコマンドで書かれているので、この表が翻訳機になります。
| やりたいこと | VS Code | コマンド |
|---|---|---|
| はじめる | ||
| リポジトリを作る | ソース管理の「リポジトリを初期化する」 | git init |
| 既存のリポジトリを持ってくる | コマンドパレットの「Git: クローン」 | git clone <URL> |
| 記録する | ||
| いまの状態を確認する | ソース管理ビューを見る | git status |
| 変更内容を見る | ファイル名をクリックする | git diff |
| ステージする | ファイル名右の + |
git add <ファイル> |
| すべてステージする | 「変更」の見出し右の + |
git add . |
| ステージを取り消す | ファイル名右の − |
git restore --staged <ファイル> |
| コミットする | メッセージを入力して「コミット」 | git commit -m "<メッセージ>" |
| 直前のコミットを修正する | … から「最後のコミットを修正」 |
git commit --amend |
| 履歴を見る | ソース管理の「グラフ」 | git log --oneline --graph |
| 共有する | ||
| GitHub に公開する | 「Branch の発行」 | git remote add origin <URL> と git push -u origin main |
| 送る | 「変更をプッシュ」 | git push |
| 受け取る | 「変更をプル」 | git pull |
| 送受信をまとめて行う | 「変更の同期」 | git pull と git push |
| リモートを確認する | — | git remote -v |
| 枝を分ける | ||
| ブランチを作って移動する | 左下のブランチ名から「新しいブランチの作成」 | git switch -c <ブランチ名> |
| ブランチを移動する | 左下のブランチ名から選ぶ | git switch <ブランチ名> |
| ブランチ一覧を見る | 左下のブランチ名をクリックする | git branch |
| マージする | コマンドパレットの「Git: ブランチをマージ」 | git merge <ブランチ名> |
| ブランチを削除する | コマンドパレットの「Git: ブランチの削除」 | git branch -d <ブランチ名> |
| 戻す | ||
| 編集を捨てる(コミット前) | ファイル名右の ↺ |
git restore <ファイル> |
| 過去の状態を見る | 履歴からコミットを開く | git show <コミット ID> |
| コミットを打ち消す | GitHub の PR 画面の Revert |
git revert <コミット ID> |
git switch は比較的新しいコマンドです。
古い記事では同じ用途に git checkout が使われています。
git checkout <ブランチ名> は git switch <ブランチ名> と同じ意味だと思って読んでください。
付録B 用語集
Section titled “付録B 用語集”| 用語 | 読み | ひとことで言うと |
|---|---|---|
| リポジトリ | repository | 履歴を含んだプロジェクトのフォルダ |
| コミット | commit | 変更を履歴に記録すること、または記録されたその1点 |
| コミット ID | — | 各コミットに付く英数字の識別子。先頭7文字で通じる |
| ステージ | staging area | 次のコミットに含める変更を選んで置いておく場所 |
| 作業ツリー | working tree | いま編集しているファイルそのもの |
| 差分 | diff | 何が増えて何が減ったかの表示。赤が削除、緑が追加 |
| ブランチ | branch | 履歴の枝。並行して作業するための分岐 |
| main | メイン | 既定のブランチ名。正式版という位置づけ。昔は master と呼ばれていた |
| HEAD | ヘッド | いまどのブランチのどこにいるかを指す矢印 |
| マージ | merge | 枝を合流させること |
| コンフリクト | conflict | 同じ場所を別々に変更したため、Git が自動で合流できない状態 |
| リモート | remote | GitHub など、ネット上に置いたリポジトリ |
| origin | オリジン | 既定のリモートの呼び名 |
| push | プッシュ | 手元の履歴をリモートに送ること |
| pull | プル | リモートの履歴を手元に取り込むこと |
| fetch | フェッチ | リモートの状態を取ってくるだけ。ファイルには反映しない |
| clone | クローン | リモートのリポジトリを丸ごと手元に複製すること |
| Pull Request | プルリクエスト | この変更を取り込んでいいですかという提案と、議論の場 |
| レビュー | review | PR の内容を他の人が確認してコメントすること |
| Issue | イシュー | やることと困りごとを記録して議論する場所 |
| Organization | オーガニゼーション | チーム用のアカウント。リポジトリをチームの持ち物にできる |
| Owner | オーナー | リポジトリを作るとき、どこに作るかを選ぶ欄 |
.gitignore |
— | 履歴に入れたくないファイルを指定する設定ファイル |
commit --amend |
アメンド | 直前のコミットをやり直すこと |
| revert | リバート | 過去の変更を打ち消す新しいコミットを作ること |
付録C エラーメッセージ辞典
Section titled “付録C エラーメッセージ辞典”英語のまま検索してもたどり着けるように、原文を見出しにしています。
Please tell me who you are
Section titled “Please tell me who you are”名前とメールアドレスが未設定です。
0-3 の git config を実行してください。
Updates were rejected because the remote contains work that you do not have locally
Section titled “Updates were rejected because the remote contains work that you do not have locally”GitHub 側が自分より進んでいます。 このまま push すると他の人の変更を消してしまうため、Git が止めています。 先に pull(「変更の同期」)してから push してください。
検索すると --force を勧める記事が出てきますが、他の人の作業を消すので使わないでください。
Automatic merge failed; fix conflicts and then commit the result.
Section titled “Automatic merge failed; fix conflicts and then commit the result.”コンフリクトです。 Git がどちらを採用すべきか判断できませんでした。 5-4 の手順で解消してください。
Your local changes would be overwritten by checkout
Section titled “Your local changes would be overwritten by checkout”未コミットの変更があるので、ブランチを切り替えられません。 コミットしてください。捨ててよいなら変更を破棄します。
fatal: not a git repository
Section titled “fatal: not a git repository”そこは Git のリポジトリではありません(.git がありません)。
フォルダを間違えていないか確認してください。
remote: Permission to <repo> denied または 403
Section titled “remote: Permission to <repo> denied または 403”そのリポジトリに書き込む権限がないか、別のアカウントで認証されています。 Organization に参加できているか、権限が Write になっているかを順に確認してください。 それでも直らない場合は、VS Code でサインアウトして再サインインします。
Support for password authentication was removed
Section titled “Support for password authentication was removed”GitHub のパスワード認証は廃止されています。 VS Code の GitHub サインイン(0-5)を使ってください。 古い記事の手順に従わないでください。
error: pathspec '<branch>' did not match any file(s) known to git
Section titled “error: pathspec '<branch>' did not match any file(s) known to git”その名前のブランチがありません。 名前の打ち間違いを確認してください。 リモートにしかないブランチなら、先に pull か fetch が必要です。
detached HEAD
Section titled “detached HEAD”ブランチではなく、特定のコミットを直接見ている状態です。
慌てず git switch main を実行するか、VS Code でブランチを選び直してください。
作業していなければ、何も壊れていません。
付録D .gitignore の書き方
Section titled “付録D .gitignore の書き方”Git に記録しなくていいファイルを列挙しておくファイルです。
リポジトリの直下に .gitignore という名前で置きます。
# 行頭が # の行はコメントになる
# ファイル名をそのまま書く.DS_StoreThumbs.db
# 拡張子で指定する*.log
# 末尾に / を付けるとフォルダごと無視するbuild/
# ! を付けた行は、無視の対象から外す!important.log行末にコメントを書くことはできません。
*.log ログファイル と書くと、その全体がファイル名の指定として扱われ、意図した動きになりません。
このゼミで入れてはいけないものは、大きく3種類です。
| 対象 | 理由 |
|---|---|
ビルド成果物(build/、*.uf2、*.elf) |
ソースから再生成できる。毎回変わるので差分が読めなくなる |
| ダウンリンクしたデータ(テレメトリのログ、撮影画像) | 巨大。GitHub は1ファイル100 MB が上限で、リポジトリ全体でも1 GB 以内が推奨 |
| API キーやパスワードを書いたファイル | 漏洩する |
付録E 学習リソース
Section titled “付録E 学習リソース”- GitHub Docs:公式のドキュメント(日本語あり)
- GitHub Skills:手を動かして学ぶ公式のチュートリアル
- Learn Git Branching:ブランチの動きを図で確かめられる練習サイト
困ったときは、エラーメッセージをそのまま検索するのが最短です。
付録F コピーして使うファイル雛形
Section titled “付録F コピーして使うファイル雛形”F-1 README.md の雛形
Section titled “F-1 README.md の雛形”リポジトリの表紙です。GitHub のトップページに自動で表示されます。
# プロジェクト名
## これは何か(1行から2行で)
## 使い方(動かし方、必要なもの)
## 連絡先F-2 .gitignore の雛形
Section titled “F-2 .gitignore の雛形”6-4 で使います。 何を無視するかの判断はチームで決めることなので、これは出発点としての例です。
# OS が作るファイル.DS_StoreThumbs.dbdesktop.ini
# ビルド成果物(Pico SDK / CMake)build/*.uf2*.elf*.bin*.hex
# Python__pycache__/*.pyc.venv/.ipynb_checkpoints/
# ダウンリンクしたデータとログlogs/data/raw/*.fits
# 秘密情報*.envsecret*config.local.*画像ファイルを *.png のようにまとめて無視すると、README に載せたい図も無視されます。
無視する場合は !docs/images/*.png のように例外を書いてください。
F-3 PR テンプレート
Section titled “F-3 PR テンプレート”.github/PULL_REQUEST_TEMPLATE.md というファイルを置くと、PR を作るときにこの内容が本文欄に自動で入ります。
書くことが決まっていれば、入力で手が止まりません。
## 何をしたか
## なぜ
## 確認してほしいこと.github というフォルダ名も、先頭のドットを忘れないでください。
VS Code 上で作れば問題なく作れます。