普段使っている Git コマンドをまとめてみる
知識の整理も兼ねて、普段使っている Git コマンドをまとめてみようと思います。
「こんなコマンドも便利だよ」というものがあれば、ぜひコメントで教えてください!
git branch
新しいブランチを作成するためのコマンド。
git checkout -b branch_name
の形で、ブランチを新規作成しつつ checkout することが多い。
git branch # ブランチを一覧表示
git branch branch_name # branch_name というブランチを新規作成
git branch -m new_branch_name # 現在のブランチ名を new_branch_name に変更
git checkout
ブランチを切り替えるためのコマンド。
git checkout branch_name # branch_name というブランチをチェックアウト
git checkout -b branch_name # branch_name というブランチを新規作成しつつチェックアウト
git add
現在の modified の内容を staged に上げるためのコマンド。
staged にあげた内容は git commit
でコミットすることができる。
git add filepath # 指定したファイルの変更を staged に上げる
git add -A # すべての変更を staged に上げる
git restore
staged の内容を modified に下げたり、modified の内容を unmodified に下げたりするためのコマンド。
git add
の逆の操作をするイメージ。
git restore --staged filepath # staged の内容を modified に下げる
git restore filepath # modified の内容を unmodified に下げる
git stash
modified や staged の内容を、一時的に別の場所 (modified でも staged でもない場所) に退避するためのコマンド。
あるブランチの実装中、別のブランチの作業する必要がある場合などに用いる。
git stash -u stash_name # untracked の内容も含めて、すべての未コミットの変更を退避
git stash list # stash を一覧表示
git stash apply stash@{N} # N 番目に stash した内容を現在のブランチに反映
git stash drop stash@{N} # N 番目に stash した内容をスタッシュ一覧から削除
git stash clear # すべてのスタッシュを削除
git diff
ある地点間での内容の差分を表示するためのコマンド。
git diff # 現在のブランチにおける unmodified と modified の差分を表示
git diff --staged # 現在のブランチにおける "unmodified" と staged の差分を表示
git diff commit_id_a..commit_id_b # commit A, B 間の差分を表示
git diff --name-only # 差分があるファイル名のみを表示
git diff --shortstat # 差分の行数のみを表示する
git status
現在のブランチの untracked, modified, staged にあるファイル名一覧を表示するためのコマンド。
git status # 現在のブランチの untracked, modified, staged にあるファイル名一覧を表示
git commit
コミットを行うためのコマンド。
git commit -m "commit message" # コミットメッセージを残しつつ staged の内容をコミット
git commit --amend # 最新のコミットに統合する形で staged の内容をコミット
git commit --amend -m "new commit message" # コミットメッセージを変更しつつコミットアメンド
git commit --amend --no-edit # コミットメッセージはそのままでコミットアメンド
git reset
コミットを取り消すためのコマンド。
git reset --hard HEAD # 現在の変更内容をすべて削除して、最新のコミットを行った状態に戻す
git log
コミットの履歴を確認するためのコマンド。
git log # コミットの履歴一覧を表示
git log --oneline # 各履歴を 1 行に短縮してコミットの履歴一覧を表示
git log --oneline --graph # 各履歴を 1 行に短縮しつつ、ブランチの分岐・統合の履歴をグラフ表示
git push
ローカルリポジトリのコミット履歴をリモートリポジトリに反映するためのコマンド。
git push # リモートリポジトリにプッシュ
git push -u origin HEAD # 現在のブランチと同名の上流ブランチを作成しつつプッシュ
git push -f # ローカル/リモートリポジトリの間コミットログの不整合を無視して強制的にプッシュ
git pull
リモートリポジトリのコミット履歴をローカルリポジトリに反映するためのコマンド。
git pull # リモートリポジトリからプル
git clone
リモートリポジトリを複製し、ローカルリポジトリを作成するためのコマンド。
開発環境を構築するタイミングなどで用いる。
git clone https://github.com/repository_name.git # リモートリポジトリをクローン
git merge
マージ (ブランチの統合) を行うためのコマンド。
git merge branch_name # 現在のブランチに branch_name のブランチをマージ
git rebase
リベース (ブランチの分岐元の変更) を行うためのコマンド。
その他、過去のコミットの修正・統合を行うこともできる。
git rebase branch_name # 現在のブランチの分岐元を branch_name のブランチに変更
git rebase -i HEAD~5 # 最新のコミットから 5 つ分のコミットについて、内容の修正・統合を行う
※ git rebase -i
は非常に便利ですが使い方が少し難しいので、追々別の記事を作成する予定です。
まとめ
今回は自分が普段使っている Git コマンドについてまとめてみました。
ところで、ここまで紹介したコマンドを毎回入力するのって面倒だと思いませんか?
Git alias を用いるとコマンドを省略することができるので、ぜひ「Git 操作を少しだけ楽にする Git Aliases」もご覧ください。
内容に間違いがあれば、コメントでご指摘いただけると嬉しいです。
いいね、フォローもぜひお願いします 🐳🐣🐙
Discussion