リポジトリ#
# 現在のディレクトリに新しいGitリポジトリを作成する
$ git init
# 新しいディレクトリを作成し、Gitリポジトリとして初期化する
$ git init [project-name]
# プロジェクトとその全てのコード履歴をダウンロードする
$ git clone [url]
設定#
# 現在のGitの設定を表示する
$ git config --list
# Gitの設定ファイルを編集する
$ git config -e [--global]
# コミット時のユーザー情報を設定する
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
ファイルの追加 / 削除#
# 指定したファイルをステージングエリアに追加する
$ git add [file1] [file2] ...
# 指定したディレクトリとそのサブディレクトリをステージングエリアに追加する
$ git add [dir]
# 現在のディレクトリの全てのファイルをステージングエリアに追加する
$ git add .
# 変更ごとに確認を求める
# 同じファイルの複数の変更を分割してコミットすることができる
$ git add -p
# ワーキングディレクトリのファイルを削除し、削除をステージングエリアに追加する
$ git rm [file1] [file2] ...
# 指定したファイルのトラッキングを停止するが、ワーキングディレクトリには残す
$ git rm --cached [file]
# ファイルの名前を変更し、変更をステージングエリアに追加する
$ git mv [file-original] [file-renamed]
コミット#
# ステージングエリアをリポジトリにコミットする
$ git commit -m [message]
# ステージングエリアの指定したファイルをリポジトリにコミットする
$ git commit [file1] [file2] ... -m [message]
# 直前のコミット以降の変更をワーキングディレクトリからリポジトリに直接コミットする
$ git commit -a
# コミット時に全ての差分情報を表示する
$ git commit -v
# 直前のコミットを新しいコミットで置き換える
# 変更がない場合、直前のコミットのメッセージを変更するために使用する
$ git commit --amend -m [message]
# 直前のコミットをやり直し、指定したファイルの新しい変更を含める
$ git commit --amend [file1] [file2] ...
ブランチ#
# 全てのローカルブランチを表示する
$ git branch
# 全てのリモートブランチを表示する
$ git branch -r
# 全てのローカルブランチとリモートブランチを表示する
$ git branch -a
# 新しいブランチを作成し、現在のブランチにとどまる
$ git branch [branch-name]
# 新しいブランチを作成し、そのブランチに切り替える
$ git checkout -b [branch]
# 新しいブランチを作成し、指定したコミットを指す
$ git branch [branch] [commit]
# 新しいブランチを作成し、指定したリモートブランチを追跡する
$ git branch --track [branch] [remote-branch]
# 指定したブランチに切り替え、ワーキングディレクトリを更新する
$ git checkout [branch-name]
# 前のブランチに切り替える
$ git checkout -
# 既存のブランチと指定したリモートブランチの間に追跡関係を作成する
$ git branch --set-upstream [branch] [remote-branch]
# 指定したブランチを現在のブランチにマージする
$ git merge [branch]
# 指定したコミットを選択し、現在のブランチにマージする
$ git cherry-pick [commit]
# ブランチを削除する
$ git branch -d [branch-name]
# リモートブランチを削除する
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
タグ#
# 全てのタグを表示する
$ git tag
# 現在のコミットに新しいタグを作成する
$ git tag [tag]
# 指定したコミットに新しいタグを作成する
$ git tag [tag] [commit]
# ローカルのタグを削除する
$ git tag -d [tag]
# リモートのタグを削除する
$ git push origin :refs/tags/[tagName]
# タグの情報を表示する
$ git show [tag]
# 指定したタグをリモートにプッシュする
$ git push [remote] [tag]
# 全てのタグをリモートにプッシュする
$ git push [remote] --tags
# 新しいブランチを作成し、指定したタグを指す
$ git checkout -b [branch] [tag]
情報の表示#
# 変更があるファイルを表示する
$ git status
# 現在のブランチのバージョン履歴を表示する
$ git log
# コミット履歴と各コミットでの変更ファイルを表示する
$ git log --stat
# キーワードに基づいてコミット履歴を検索する
$ git log -S [keyword]
# 指定したコミット以降の変更を、各コミットを一行で表示する
$ git log [tag] HEAD --pretty=format:%s
# 指定したコミット以降の変更で、"コミットメッセージ"が検索条件に一致するものを表示する
$ git log [tag] HEAD --grep feature
# 指定したファイルのバージョン履歴を表示する(ファイル名の変更も含む)
$ git log --follow [file]
$ git whatchanged [file]
# 指定したファイルに関連する各コミットのdiffを表示する
$ git log -p [file]
# 過去5つのコミットを表示する
$ git log -5 --pretty --oneline
# 提出したユーザーを表示し、コミット回数でソートする
$ git shortlog -sn
# 指定したファイルを変更した人と変更日時を表示する
$ git blame [file]
# ステージングエリアとワーキングディレクトリの差分を表示する
$ git diff
# ステージングエリアと直前のコミットの差分を表示する
$ git diff --cached [file]
# ワーキングディレクトリと現在のブランチの最新コミットとの差分を表示する
$ git diff HEAD
# 2つのコミット間の差分を表示する
$ git diff [first-branch]...[second-branch]
# 今日書いたコードの行数を表示する
$ git diff --shortstat "@{0 day ago}"
# 指定したコミットのメタデータと内容の変更を表示する
$ git show [commit]
# 指定したコミットで変更されたファイルを表示する
$ git show --name-only [commit]
# 指定したコミット時の指定したファイルの内容を表示する
$ git show [commit]:[filename]
# 現在のブランチの最近のコミットを表示する
$ git reflog
リモート同期#
# リモートリポジトリの変更をダウンロードする
$ git fetch [remote]
# 全てのリモートリポジトリを表示する
$ git remote -v
# 指定したリモートリポジトリの情報を表示する
$ git remote show [remote]
# 新しいリモートリポジトリを追加し、名前を付ける
$ git remote add [shortname] [url]
# リモートリポジトリの変更を取得し、ローカルブランチとマージする
$ git pull [remote] [branch]
# ローカルの指定したブランチをリモートリポジトリにアップロードする
$ git push [remote] [branch]
# コンフリクトがある場合でも、現在のブランチをリモートリポジトリに強制的にプッシュする
$ git push [remote] --force
# 全てのブランチをリモートリポジトリにプッシュする
$ git push [remote] --all
取り消し#
# ステージングエリアの指定したファイルをワーキングディレクトリに復元する
$ git checkout [file]
# 指定したコミットの指定したファイルをステージングエリアとワーキングディレクトリに復元する
$ git checkout [commit] [file]
# ステージングエリアの全てのファイルをワーキングディレクトリに復元する
$ git checkout .
# ステージングエリアの指定したファイルを直前のコミットと同じ状態にリセットするが、ワーキングディレクトリは変更しない
$ git reset [file]
# ステージングエリアとワーキングディレクトリを直前のコミットと同じ状態にリセットする
$ git reset --hard
# 現在のブランチのポインタを指定したコミットにリセットし、ステージングエリアをリセットするが、ワーキングディレクトリは変更しない
$ git reset [commit]
# 現在のHEADを指定したコミットにリセットし、ステージングエリアとワーキングディレクトリを指定したコミットと同じ状態にリセットする
$ git reset --hard [commit]
# 現在のHEADを指定したコミットにリセットし、ステージングエリアとワーキングディレクトリは変更しない
$ git reset --keep [commit]
# 指定したコミットを取り消すために新しいコミットを作成する
# 後者の変更は前者によって取り消され、現在のブランチに適用される
$ git revert [commit]
# 一時的に未コミットの変更を削除し、後で復元する
$ git stash
$ git stash pop
Hexo#
# キャッシュをクリアする
$ hexo clean
# 静的ファイルを生成する
$ hexo generate
# プレビューする
$ hexo server