Edited at

よく使うGitコマンド一覧

Gitコマンドをすぐ思い出せるように

Gitを使う時 よく使うコマンドをリストにしました。

また並行して よく使うターミナルコマンドも載せました。


使用環境

mac os High Sierra

git version 2.17.1 (Apple Git-112)


ターミナル(黒画面)コマンド

$ pwd

現在のフォルダ場所(ディレクトリ階層)の確認

$ ls

通常フォルダファイルの確認

$ ls -a

隠しフォルダファイルの確認

$ cd 〜

〜のフォルダに移動

$ history

コマンド履歴の確認

Ctrl + C

コマンドクリア(進む)

Command + L

コマンドクリア(戻る)

Ctrl + W

前の単語削除

参考:Mac のターミナルのキーボードショートカット - Apple サポート


Gitコマンド


確認

慣れない内はかなり使う確認コマンド。

何度打っても何も変更されない安心コマンド。

$ git branch

リモート追跡ブランチ以外の Local Branch 確認

$ git branch -a

全ての Local Branch 確認

$ git status

ファイル状態確認

$ git add --dry-run .

addで実行される予定内容表示

$ git ls-files

Local Repository Staging ファイルリスト表示

$ git diff

WorkTree と Staging の差異表示

(ソース差異なので膨大なログが表示されます)

$ git diff --staged

Staging と Committing の差異表示

$ git log -2

Commit 履歴 最新2コミット表示

$ git log -2 --stat

Commit 履歴2コミット表示 + 変更ファイル表示

$ git log -2 --patch

$ git log -2 --p

Commit ファイル差分 2コミット表示

( そのままだとコード全表示で膨大な行数 になるため、

 $ git log -2 -p など表示を減らすためオプションを組み合わせるのがオススメ )

$ $ git log -p ファイルパス/ファイル名

( 誰が編集したかなど ) 特定ファイルの変更履歴を表示

$ git stash list

保存状態一覧表示

$ git clean -nd

Untrackedファイルの確認

$ git show

最新 Commit 内容表示

$ git branch -r

Remote Branch 確認

$ git remote

Remoteリポジトリ表示

$ git remote -v

Remoteリポジトリ + URL 表示

$ git remote rm origin

Remoteリポジトリ削除

$ git help

ヘルプページ表示

$ git help -a

Git全コマンドリスト

$ git tag

Tag 一覧表示

$ git reflog

過去の HEAD Commit 一覧表示

$ git config -l

Repository 設定内容表示

$ git config user.email

設定 e-mail 表示

$ git config user.name

設定ユーザー名 表示

$ find ~/ -name ".git"

gitフォルダの場所を忘れてしまった際に使用。.gitがあるフォルダがローカルリポジトリフォルダ

$ git --version

gitインスールバージョン確認


変更

$ git add .

WorkTree ファイルを全て add で Staging

$ git commit -m "commit comment"

コメントを付けて commit 実行

$ git commit -am "commit comment"

add & コメント付きで commit 実行

$ git commit -F- <<EOM

複数行コメントでコミット 1

$ git commit -F- <<EOM

> 要約
>
> 詳細
>
> EOM

$ git commit -m "コメント1行目" -m "コメント2行目" -m "コメント3行目"

複数行コメントでコミット 2

$ git commit --amend

直前のコミットを編集

$ git push origin master

Remote Repository に Local Repository を反映

$ git push -f origin master

Remote Repository に Local Repository を強制反映

上記 -f なしで conflict などで rejected エラー発生したときも

エラー回避しPush可能。

$ git fetch

Remote Bookmark をダウンロード。FETCH_HEADブランチ作成

$ git pull

Local WorkTree に Remote Repository を ダイレクト反映

※ git pull しても、git fetch と同じ状態になり merge まで実行されないケースがある。

 その際は再度 git merge origin/ブランチ名 で解決する。

$ git pull origin <Remote Branch Name>

既に存在する Local Branch へ 最新の Remote Branch を反映

! [rejected] error: failed to push some refs ~

 といったコンフリクト(競合)エラー発生時にも有効

$ git branch <branch name>

branch 作成

$ git branch -m <old branch name> <new branch name>

branch 名 変更

$ git checkout <branch name>

作業 branch (HEAD) 変更

WorkTree / Index も 作業branch に合わせたファイル内容に変更

$ git checkout -b <branch name>

上記 branch作成 & 作業 branch (HEAD) 変更 (同時実行)

$ git checkout -b feature/hogehoge origin/feature/hogehoge

( developなどをpullした上で )

ローカル上にない Remote Branch を、ローカル上に作成・移動

$ git merge <branch name>

現在の HEAD branch の Working / Index / Local Repository 全てに、

別の branch を 統合

merge - 親 Commit が2つになる

Rebase - 親 Commit が1つになる

$git stash

変更退避


取り消し

HEAD = 作業 branch Commit のイメージ

$ git branch --delete ブランチ名

$ git branch -D ブランチ名

ブランチ削除

$ git reflog

削除したブランチの最後のコミットを見つけ

$ git branch ブランチ名 HEAD@{ログ番号}

ブランチ復活

$ git reset

全ての add を取り消し

Index を WorkTree 状態に戻す

$ git reset HEAD <file>

Staging を Commit の状態に戻す

$ git reset --soft HEAD^

Local Repository のみ 以前の Commit 状態に戻す ( 最新の Commit 取り消し )

$ git reset HEAD^

Local Repository / Staging 2つを、以前の Commit 状態に戻す

$ git reset --hard HEAD

HEAD / Index / WorkTree 全てを、最新 Commit 状態に戻す

( WorkTree差分データが消えるので要注意 )

$ git reset --hard HEAD^

HEAD / Index / WorkTree 全て を 一つ前の Commit 状態に戻す

( WorkTree差分データが消えるので要注意 )

$ git checkout -- <file>

WorkTree を Staging の状態に戻す

$ git revert

コミット打ち消して記録残る

$ git clean -fd

Untracked ファイルの削除

$ git merge --abort

直前 Merge 取り消し

$ git reflog

復活する可能性のある呪文。。

$ git push --delete origin リモートブランチ名

GitHubなどのリモート上ブランチを削除する

$ git rm -r --cached .

ファイル全体キャッシュ削除

$ git rm -r --cached [ファイル名]

ファイル指定してキャッシュ削除