Git 辞典
Git コースで覚える git のサブコマンドの一覧です。ファイルの操作(pwd・cd・ls・mkdir・touch・cp・mv・rm・less・cat・echo・head・tail・grep・vi・sed・diff・wc・tree・find)は最初から使えます。
gitバージョン管理(記録の書)Lv1 で覚える
git <サブコマンド> [オプション] git help
ファイルの変更の歴史を記録します。サブコマンド(init・add・commit…)ごとに働きが違います。
git initリポジトリを作るLv1 で覚える
git init [ディレクトリ] git init --bare パス
今のディレクトリに .git を作り、記録を始めます。--bare は作業ツリーのない共有用(リモート用)のリポジトリ。
$ git init
git status今の状態を見るLv1 で覚える
git status git status -s
どのブランチにいるか、ステージした変更・まだの変更・追跡していないファイルが分かります。-s で短く(A 追加・M 変更・?? 未追跡)。
$ git status
git addステージに上げるLv2 で覚える
git add ファイル... git add . git add -A
次のコミットに入れる変更を選びます(ステージ)。. で今のディレクトリ以下すべて。
$ git add README.md $ git add .
git commit記録するLv2 で覚える
git commit -m "メッセージ" git commit -am "メッセージ" git commit --amend [-m …] [--no-edit]
ステージした内容を 1 つのコミットとして記録します。-a は追跡中のファイルの変更を自動でステージ。--amend は直前のコミットを作り直します。
$ git commit -m "Add README"
git config設定するLv3 で覚える
git config --global user.name "名前" git config --global user.email メール git config --list git config pull.rebase false
--global はすべてのリポジトリ、付けなければ今のリポジトリだけの設定。コミットに記録される名前とメールアドレスを最初に設定します。
git log / git show履歴を見るLv4 で覚える
git log [--oneline] [--graph] [--all] [-n 数] git log --author=名前 --grep=語 -- ファイル git show [コミット] git show コミット:ファイル
新しい順にコミットを表示します。--oneline で 1 行ずつ、--graph で枝分かれ。show はコミットの中身(差分)を見ます。
$ git log --oneline --graph --all
git diff違いを見るLv5 で覚える
git diff git diff --staged git diff コミット コミット git diff main..feature git diff --stat
引数なしは作業ツリーとステージの違い、--staged はステージと最新コミットの違い。
$ git diff --staged
git restore変更を取り消すLv6 で覚える
git restore ファイル git restore --staged ファイル git restore --source=コミット ファイル
作業ツリーの変更を捨てて元に戻します。--staged はステージから下ろす(作業ツリーは残る)。
$ git restore --staged main.py
git rm / git mvファイルを消す・名前を変えるLv6 で覚える
git rm ファイル git rm --cached ファイル git mv 古い名前 新しい名前
--cached は追跡だけやめてファイルは残します(間違って追跡したファイルに)。
git branchブランチを作る・一覧Lv8 で覚える
git branch git branch 名前 [起点] git branch -d 名前 git branch -m 新しい名前 git branch -a / -v / -vv / --merged
ブランチはコミットを指す名札です。-d はマージ済みのブランチを消し、-D は強制的に消します。
$ git branch feature
git switch / git checkoutブランチを切り替えるLv9 で覚える
git switch ブランチ git switch -c 新しいブランチ [起点] git switch - git switch --detach コミット git checkout ブランチ / -b 名前 / -- ファイル
HEAD(今いる場所)を移します。-c で作って移動、- で直前のブランチへ。
$ git switch -c feature/login
git mergeブランチを合わせるLv10 で覚える
git merge ブランチ git merge --no-ff ブランチ git merge --abort
相手のブランチの変更を今のブランチに取り込みます。一直線なら早送り(Fast-forward)、分かれていればマージコミット。コンフリクトしたら直して add と commit。
$ git merge feature
git tag目印をつけるLv13 で覚える
git tag 名前 [コミット] git tag -a 名前 -m "メッセージ" git tag -l "v1.*" git tag -d 名前
リリースなどのコミットに名前をつけます。-a は作者とメッセージを持つ注釈付きタグ。
$ git tag -a v1.0 -m "First release"
git stash作業を一時しまうLv15 で覚える
git stash [-u] [-m メモ]
git stash list
git stash pop / apply [stash@{n}]
git stash drop / showまだコミットしたくない変更を一時的に退避して、作業ツリーをきれいにします。pop で戻して一覧からも消します。
$ git stash $ git stash pop
git resetHEAD を戻すLv17 で覚える
git reset --soft コミット git reset [--mixed] コミット git reset --hard コミット git reset ファイル
--soft は HEAD だけ、--mixed はステージも、--hard は作業ツリーまで戻します(--hard は変更が消える)。HEAD~1 は 1 つ前。
$ git reset --soft HEAD~2
git revert打ち消すコミットを作るLv18 で覚える
git revert コミット [--no-edit]
指定したコミットと逆の変更をする新しいコミットを作ります。共有済みの履歴を消さずに取り消せます。
$ git revert HEAD
git reflogHEAD の動きの記録Lv19 で覚える
git reflog
git reset --hard HEAD@{n}HEAD がどこを指してきたかの記録です。reset --hard で消えたように見えるコミットも、ここから探して戻せます。
git cherry-pickコミットを 1 つ取り込むLv20 で覚える
git cherry-pick コミット... git cherry-pick --continue / --abort
別のブランチの特定のコミットだけを、今のブランチにコピーします。
git rebase土台を付け替えるLv22 で覚える
git rebase 土台のブランチ git rebase --continue / --skip / --abort
今のブランチのコミットを、土台のブランチの先に付け直して一直線にします。共有済みのコミットの rebase は避けます。
$ git rebase main
git remoteリモートを管理するLv27 で覚える
git remote -v git remote add 名前 URL git remote remove 名前 git remote show origin
共有用のリポジトリ(リモート)の名前と場所。clone すると origin という名前で登録されます。
git cloneリポジトリを複製するLv27 で覚える
git clone URL [ディレクトリ]
リモートのリポジトリを手元に複製し、origin を登録して最初のブランチを取り出します。
git pushリモートに送るLv28 で覚える
git push git push -u origin ブランチ git push origin --delete ブランチ git push --tags git push --force-with-lease
手元のコミットをリモートに送ります。リモートに知らないコミットがあると rejected になるので、pull してから送ります。
$ git push -u origin feature
git fetchリモートの変更を取ってくるLv29 で覚える
git fetch [リモート] git fetch --all --prune
リモートの新しいコミットを取ってきて origin/main などを更新します。自分のブランチはまだ変わりません。
git pull取ってきて取り込むLv30 で覚える
git pull git pull --rebase git pull --no-rebase git pull --ff-only
fetch してから、上流のブランチを今のブランチに merge(または rebase)します。分かれているときはどちらにするか指定が要ります。
git blame行ごとに最後に変えた人Lv35 で覚える
git blame ファイル
ファイルの各行を、最後に変更したコミット・作者・日時と一緒に表示します。
git bisectバグが入ったコミットを探すLv35 で覚える
git bisect start git bisect bad [コミット] git bisect good コミット git bisect reset
良いコミットと悪いコミットの間を半分ずつ調べて、最初に悪くなったコミットを見つけます。
git clean追跡していないファイルを消すLv36 で覚える
git clean -n git clean -f [-d] [-x]
-n で何が消えるかを確かめてから、-f で消します。-d はディレクトリも、-x は無視しているファイルも。