Gitコマンド

$config

初期設定・ユーザー情報の確認と設定。Gitを使い始めるときに最初に行う。

Gitの設定の確認を行う。

git config --list

ユーザー名とメールアドレスを設定する。

git config --global user.name "Naughty Ghost"
git config --global user.email "works@naughty-ghost.org"

$init

Gitリポジトリを新規作成・初期化する。新しいプロジェクトでGitを使い始めるときに実行する。

git init

$clone

リモートリポジトリをローカルにダウンロード・複製する。既存のリポジトリをコピーして作業を始めるときに使う。

git clone "リモートリポジトリのURL"

ディレクトリ名を指定してダウンロードする。

git clone "リモートリポジトリのURL" "ディレクトリ名"

特定のブランチを指定してダウンロードする。

git clone -b "ブランチ名" "リモートリポジトリのURL"

$remote

リモートリポジトリのURL管理。追加・変更・削除・確認を行う。

リモートリポジトリのURLを確認する。

git remote -v

新しくリモートリポジトリのURLを追加する。

git remote add "リモートリポジトリの名前" "リモートリポジトリのURL"

リモートリポジトリのURLを変更する。

git remote set-url "リモートリポジトリの名前" "リモートリポジトリのURL"

リモートリポジトリの名前を変更する。

git remote rename "古いリモートリポジトリの名前" "新しいリモートリポジトリの名前"

リモートリポジトリのURLを削除する。

git remote remove "リモートリポジトリの名前"

$fetch

リモートリポジトリから最新の情報を取得する。ローカルのブランチへの反映(マージ)は行わない。取得後に git merge を実行してローカルに変更を取り込む。

git fetch origin main

$pull

リモートリポジトリから最新の変更を取得してローカルのブランチにマージする。ローカルを最新化・同期したいときに使う。

git pull origin main

git pullを実行したあとに競合が発生し、pullの前の状態に戻したい場合

git merge --abort
git reset --hard HEAD

リモートのタグを取得する

git pull --tags

$branch

ブランチの一覧表示・作成・削除・名前変更を行う。

ブランチの一覧を表示する。

git branch

ブランチを作成する。

git branch "新しいブランチ名"

ブランチを削除する。-D オプションに変更するとmainブランチにマージされていないブランチを強制削除出来る。

git branch -d "ブランチ名"

ブランチの名前を変更する。

git branch -m "新しいブランチ名"

$checkout

ブランチの切り替え・移動。作業するブランチを変えるときに使う。

作業ブランチを切り替える

git checkout "ブランチ名"

作業ブランチを作成しながら切り替える

git checkout -b "新しいブランチ名"

タグからチェックアウトしてブランチを作成する

git checkout -b "新しいブランチ名" "タグ名"

$status

変更・追加・削除されたファイルの状態を確認する。コミット前の状態確認に使う。

git status

$ add

コミット対象のファイルをステージングエリアに追加する。コミットの準備。

コミットしたいファイルをステージングする。

git add "ファイル名"

コミットしたい複数のファイルをステージングする。

git add "ファイル名1" "ファイル名2"

コミットしたいファイルをすべてステージングする。「.」はディレクトリとサブディレクトリにあるすべてのファイルを指すワイルドカード。

git add .

$commit

ステージングしたファイルの変更をリポジトリに記録する。ステージングを行うことでコミットファイルの確認とファイルを分割してコミットすることができる。

git commit -m "コミットメッセージ"

直前のコミットメッセージを修正する。

git commit --amend -m "コミットメッセージ"

$push

ローカルのコミットをリモートリポジトリにアップロード・反映する。

git push origin main

$merge

ブランチを統合・取り込む。マージ先のブランチに移動してからマージする。

git merge "マージ元のブランチ名"

$rebase

ブランチのベースを変更して統合する。コミット履歴をきれいに整理したいときに使う。branchAの内容をbranchBにリベースしたい場合。

git checkout branchB
git rebase branchA

競合箇所を修正した後は--continueオプションをつけてリベースを続ける。

git rebase --continue

リベースを中断する場合は--abortオプションをつける。

git rebase --abort

$reset

コミットを取り消す・元に戻す。ステージングを解除する。取り消した履歴は残らない。

直前のコミットを取り消す。

git reset HEAD^

直前のコミットを取り消し、変更を元に戻す。

git reset --hard HEAD^

直前のコミットを取り消す。ステージした変更は残す。

git reset --mixed HEAD^

直前の2つのコミットを取り消す。HEADについている「^」を増やすことでさかのぼるコミットを増やすことも出来る。

git reset --soft HEAD^^

$revert

コミットを打ち消す。取り消した履歴は残る。resetと異なり、共有リポジトリでも安全に使える。

git revert "コミットID"

リバート時にコミットしない。

git revert --no-commit "コミットID"

リバート時にコミットメッセージを変更する。

git revert --edit "コミットID"

マージコミットをリバートする。マージしたコミットのどちらに戻すかを1 or 2で選択する。

git revert -m 1 "コミットID"

$ tag

タグの作成・削除・一覧表示。バージョン管理・リリース管理に使う。

タグの一覧を表示する。

git tag

コメント付きのタグを作成する。

git tag -a "タグ名" -m "コメント"

リモートリポジトリにタグを反映する。

git push origin "タグ名"

リモートリポジトリにすべてのタグを反映する。

git push origin --tags

タグを削除する。

git tag -d "タグ名"

$stash

変更を一時保存・退避させる。コミットせずに作業を中断して別ブランチへ移動したいときに使う。

変更を一時的に退避させる。

git stash

退避した変更を復元する。

git stash pop

退避した変更を確認する。

git stash list

特定の変更を復元する。

git stash apply "stash@{0}"

退避した変更を削除する。

git stash drop

$cherry-pick

別ブランチの特定コミットだけを取り込む。必要な変更だけを選んで適用したいときに使う。

git cherry-pick "コミットID"

$ log

コミット履歴・変更履歴を確認する。誰がいつどんな変更をしたか調べるときに使う。

コミットログを表示する。

git log

コミット時の変更内容を表示する。

git log -p

変更があったファイルの一覧を表示する。

git log --name-only

コミットログを表示する。1行で表示する。

git log --oneline

コミットログをグラフで表示する。

git log --graph

期間で表示を絞り込む。

git log --since="2023-00-00" --until="2023-00-00"

特定のファイルのみを表示する。

git log "ファイル名"

コミットメッセージから絞り込む。

git log --grep="メッセージ"

コミットしたユーザーで絞り込む。

git log --author="ユーザー名"

$show

コミットやタグの詳細な内容・変更内容を確認する。

コミットの詳細を表示する。

git show "コミットID"

タグの詳細を表示する。

git show "タグ名"

$diff

変更内容の差分を確認・比較する。何が変わったか調べるときに使う。

作業ブランチの変更を確認する。

git diff

最新のコミットと差分を確認する。

git diff HEAD

ステージングした変更と差分を確認する。

git diff --cached

コミット間の差分を確認する。

git diff "コミットID1" "コミットID2"

更新履歴