Gitコマンド

$config

Gitの設定の確認を行う。

git config --list

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

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

$init

プロジェクトにgitリポジトリを作成する。

git init

$clone

リモートリポジトリをローカルにコピーする。

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

リモートリポジトリをローカルにコピーする。ディレクトリ名を指定する。

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

リモートリポジトリをローカルにコピーする。ブランチを指定する。

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

$remote

リモートリポジトリの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

rebaseの場合、競合箇所を修正した後は--continueオプションをつけてrebaseを続ける。

git rebase --continue

rebaseを中断する場合は--abortオプションをつける。

git rebase --abort

$reset

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

git reset HEAD^

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

git reset --hard HEAD^

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

git reset --mixed HEAD^

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

git reset --soft HEAD^^

$revert

コミットを取り消す。取り消した履歴は残る。

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"

更新履歴