GitHubリポジトリ操作 チートシート
『GitHubのレポジトリ管理方法をしっかり理解する』本編で扱ったコマンドを、参照しやすいように一覧化したものです。詳しい説明は本編の該当章をご覧ください。
リポジトリの作成・クローン(第1章)
gh repo create REPOSITORY --public
新しいリポジトリを作成する(--private / --internal も指定可)
gh repo create REPOSITORY --public --clone
作成と同時にローカルへクローンする
git clone https://github.com/OWNER/REPO
リポジトリをHTTPS経由でクローンする
gh repo clone REPOSITORY
GitHub CLIでクローンする(OWNER/省略時は自分のアカウント扱い)
git branch -a
リモートを含むすべてのブランチを一覧表示する
git checkout BRANCH
指定したブランチに切り替える(存在しない場合は追跡ブランチを作成)
最初のコミット(第1章)
git add .
変更をステージする
git commit -m "メッセージ"
ステージした変更をコミットする
git push --set-upstream origin HEAD
現在のブランチを初回プッシュし、以後の追跡先を設定する
リモートの確認・変更(第1章)
git remote -v
設定されているリモートURLを確認する
git remote set-url origin NEW_URL
リモートのURLを変更する(改名・移行後の追従に使用)
リポジトリの複製・ミラーリング(第1章)
git clone --bare https://github.com/OWNER/OLD-REPO.git
ベアクローン(作業ディレクトリを持たないクローン)を作成する
git push --mirror https://github.com/OWNER/NEW-REPO.git
ベアクローンの内容を新しいリポジトリへミラープッシュする
git clone --mirror https://github.com/OWNER/REPO.git
継続的に同期するミラーを作成する(フェッチのたびに全参照が上書きされる)
git remote set-url --push origin PUSH_URL
フェッチ元とプッシュ先を分離する(ミラー運用時に使用)
git fetch -p origin && git push --mirror
ミラーを最新状態に更新する
ブランチの改名に伴う後始末(第2章)
git remote set-url origin NEW_URL
リポジトリ改名後、ローカルのリモートURLを更新する
ファイルの追加・移動(第6章)
git add path/to/file
新規・更新ファイルをステージする
git status
ステージ状況を確認する(renamed: でGitが移動を自動検知したことが分かる)
git commit -m "Move file to new directory"
ファイルの移動をコミットする
コードの変更履歴(第6章)
git blame --ignore-revs-file .git-blame-ignore-revs
大規模リファクタリングのコミットをBlame表示から除外する
git config blame.ignoreRevsFile .git-blame-ignore-revs
上記の除外設定をローカルGitの既定動作にする
リポジトリ履歴からのファイル削除(第6章)
git rm --cached ファイル名
直近の未プッシュコミットからファイルを取り除く(ディスク上には残す)
git commit --amend -CHEAD
直前のコミットを、メッセージそのままで修正する
Git LFS(第6章)
git lfs install
Git LFSをローカル環境に導入する
git lfs track "*.psd"
指定した拡張子のファイルをLFSで追跡する(.gitattributesに記録される)
git add path/to/file.psd && git commit -m "add file.psd" && git push
LFS追跡ファイルを通常どおり追加・コミット・プッシュする
git lfs fetch --all
リポジトリ内のLFSオブジェクトをすべて取得する
git lfs push --all origin
LFSオブジェクトをすべて明示的にプッシュする(アップロード失敗の再試行にも使用)
git lfs migrate
既存ファイルを通常のGit管理からLFS管理へ移行する
git lfs uninstall
リポジトリでのLFS利用をやめる(1.1.0未満はgit lfs uninit)
リリース(第7章)
gh release create v1.0.0 --title "タイトル" --notes "メモ" --prerelease
プレリリースを作成する(--prereleaseを外せば正式リリース)
gh release edit TAG -t "新しいタイトル"
リリースのタイトルを変更する
gh release delete TAG -y
確認なしでリリースを削除する
参考:主要な設定ファイルの置き場所
| ファイル | 配置場所 | 役割 |
|---|---|---|
.gitattributes |
リポジトリルート | Git LFS追跡、diff・言語統計からの除外設定 |
CODEOWNERS |
.github/、ルート、docs/のいずれか |
コードレビュー担当の自動割り当て |
FUNDING.yml |
.github/ |
スポンサーボタンの設定 |
CITATION.cff |
リポジトリルート | 学術的な引用情報 |
release.yml |
.github/ |
リリースノート自動生成のカテゴリ設定 |
.git-blame-ignore-revs |
リポジトリルート | Blame表示から除外するコミット一覧 |
参考:fnmatchパターンの基本(第5章)
| パターン | マッチする例 |
|---|---|
*release* |
release、my-release-branchを含む名前 |
qa/* |
qa/foo(1階層のみ、qa/foo/barは不一致) |
qa/**/* |
qa/foo/bar/baz(任意の深さ) |
releases/**/* |
releases/配下すべて |
本チートシートは『GitHubのレポジトリ管理方法をしっかり理解する』の抜粋・要約です。各コマンドの前提条件や注意点は本編をご参照ください。
