Gitコマンドメモ
ほぼ「独習GIT」のまんまだが・・・
初期設定系
最初にやると、次回以降設定不要なやつ
git config
- 名前をグローバル設定に追加
git config --global user.name "your name"
- メアドをグローバル設定に追加
git config --global user.email "your email"
- 全てのGit設定を表示
git config --list
- 表示
git config user.name
基本コマンド系
git init
Gitレポジトリの初期化
git init
git status
Gitの作業ディレクトリの状態表示。
作業ディレクトリとステージングエリア、ステージングエリアとレポジトリのファイル状態が確認できる。
git status
git add
ファイルをステージングエリアに追加
git add <ファイル>
git add
でなにが実行されるかを示す。実際にaddされるわけじゃない。
git add --dry-run
作業ディレクトリ内の新たしいファイルを全てステージングエリアに追加する。
git add .
ステージングエリアに追加する変更部分を手作業で選択する。ファイルの一部をステージングエリアにあげたい場合に利用。
git add -p
git commit
変更をGitレポジトリにコミットし、メッセージをつける。
メッセージのあと、1行あけて詳細な説明を書くこともできる。
git commit -m "メッセージ" #1行メッセージの場合 git commit # 詳細メッセージ記入する場合。エディタが開く
エディタに記入
10 first commit #メッセージ 11 #1行開けて... 12 some message..... #詳細な説明を記述する 13 detail.......
git add
とgit commit
を一度に実行する場合
git commit -a -m "メッセージ"
git log
Gitレポジトリのログ(ヒストリー)表示
git log # ログとともに、変更されたファイルを表示する場合 git log --stat #各コミットを1行で表示 git log --oneline #ヒストリー表示。個々のコミット間の変更されたファイルの概要表示 git log --patch # ヒストリー表示。patchとstatの組み合わせ git log --patch-with-stat #指定ファイルのヒストリー表示。 git log --oneline <ファイル> # ヒストリー表示。親のSHA1 ID表示。 git log --parent # SHA1 IDの短縮表示 git log --parent --abbrevcommit # 履歴をコミットごとに1行で表示し、 # 各コミットで変更されたファイルのリストを1行で表示する場合 git log --shortstat --oneline #レポジトリの履歴を表示する。全ブランチ分。 git log --graph --decorate --pretty=oneline --all --abbrev-commit #上記コマンドのalias git config --global alias.lol "log --graph --decorate --pretty=oneline --all --abbrev-commit"
git ls-files
レポジトリ内のファイルをリスト表示
git ls-files
git diff
作業ディレクトリ、ステージングエリア、レポジトリのファイル比較をする。ただし追跡用ファイルとして登録している必要があるのでgit add
で登録されていないと対象外となる。
# 作業ディレクトリとステージングエリアのファイル比較 git diff #ステージングエリアとレポジトリのファイル比較 git diff --staged
ブランチ間での比較をする
# BRANCH1とBRANCH2の差分比較 git diff BRANCH1...BRANCH2 #ブランチ間の違いを、ファイル名と状態で簡易表示 git diff --name-status BRANCH1...BRANCH2
git rm
ファイルをステージングエリアから削除(remove)する。
git rm <ファイル>
git mv
ステージングエリアで、ファイル1の名前をファイル2に変更する。
git mv <ファイル1> <ファイル2>
git reset
ステージングエリアをリセット(reset)して、ファイルをコミット予定から外す。このときステージングエリアに加えた変更は破棄されるが、作業ディレクトリに加えた変更はそのままなのは注意。
git reset <ファイル>
git checkout
ファイルの「最後にコミットしたバージョン」をチェックアウトして、ワーキングディレクトリに入れる。
git checkout <ファイル>
作業ディレクトリにSHA1IDのバージョンと一致させる。
git checkout <SHA1ID> #作業ディレクトリにブランチを反映 git checkout <ブランチ>
git tag
SHA1IDを参照するタグを作成する。
git tag <TAG_NAME> -m "メッセージ" <MY_SHA1ID> #タグのリストを出力 git tag #タグの情報出力 git show <TAG_NAME>
git branch
ブランチのリスト出力。SHA1IDをつける場合は-v
git branch git branch -v #ブランチの新規作成 git branch <ブランチ> #作業ディレクトリにブランチを反映 git checkout <ブランチ> #MY_SHA1IDのブランチmy_branchを作成する git branch my_branch MY_SHA1ID #ブランチ作って、チェックアウトまで一回でやる場合 git checkout -b my_branch MY_SHA1ID #ブランチ削除 git branch -d <ブランチ>
git clone
した場合、HEADで指しているブランチしか見えない。全てのブランチを見る場合
git branch --all
git reflog
これまでにgit checkout
によって行ったブランチ切り替えの全ての記録を表示する。
git reflog
git merge/merge-base
BRANCH2を現在の(カレント)ブランチにマージ
git merge BRANCH2 #ブランチ間のマージを中止 git merge --abort # BRANCH1とBRANCH2に共通するベースコミットを表示 git merge-base BRANCH1 BRANCH2
使わない系
git stash
git stash git stash list git stash pop