概要
ターミナルでGitコマンドは普段使っていてもすぐに忘れがちですね。
ターミナル版のコマンド一覧をまとめてみました。
gitを設定する [config]
Git全体に関する初期設定、global変数等々を保存する。
$ git config -l |
使用されるリポジトリの設定を表示する |
$ git config --global user.name [username] |
ユーザ名の設定 |
$ git config --global user.email [email] |
メールアドレスの設定 |
$ git config --global color.ui auto |
出力結果を色づけする |
リポジトリを作成 [init]
$ git init |
ディレクトリにリポジトリを作成 |
$ git init --bare |
ベアリポジトリの作成 |
$ git init --shared |
グループ書き込み権限を有効にする |
ステージングエリアに登録 [add]
$ git add [filename] |
ファイルやディレクトリをステージングエリアに登録 |
$ git add . |
ワーキングツリーに新規作成された、もしくは変更されたファイルをadd |
$ git add -u | 一つ前と最新のステージを比較して、変更があった部分のみをadd。 つまり、新しく作られたファイルはaddされされない。 |
$ git add -A |
git add . と git add -u を足したもの。 |
ステージングエリアからリポジトリに上げる [commit]
$ git commit |
ステージングエリアに追加されたファイルをコミットする |
$ git commit -m “[comment]” |
コミットメッセージを同時に指定 |
$ git commit -a |
変更されたファイル(新規を除く)を
ステージングエリアに追加し,コミットする |
$ git commit --amend |
直前のコミットを修正する |
前回のコミットと比較してどのファイルが変更されたかを表示 [status]
コミットのログ [log]
git log |
一覧表示 |
$ git log --oneline |
コミットログの先頭7桁のコミットIDを表示する |
$ git log --decorate |
コミットログのHEADの位置を明示する |
$ git log --graph |
コミットログを縦グラフで表示する |
$ git log --grep [filter] |
指定した文字がコミットログに含まれるコミットを表示する |
コミットのログ
git log |
一覧表示 |
$ git log --oneline |
コミットログの先頭7桁のコミットIDを表示する |
$ git log --decorate |
コミットログのHEADの位置を明示する |
$ git log --graph |
コミットログを縦グラフで表示する |
$ git log --grep [filter] |
指定した文字がコミットログに含まれるコミットを表示する |
ステージングエリアとワーキングツリーの差異 [diff]
$ git diff |
差異を表示 |
$ git diff --cache |
HEADとステージングエリアの差分を表示 |
$ git diff [commit id 1] [commit id 2] |
コミット間の差異を表示する |
ブランチ [blanch]
$ git branch &[new branch] |
現在のブランチの確認、新しいブランチを作成する |
$ git branch -a |
すべてのブランチを確認する |
$ git branch -r |
リモートブランチを確認する |
$ git branch -d [branch] |
ブランチを削除する |
$ git branch -m [branch] [new branchname] |
ブランチの名前を変更する |
$ git branch --set-upstream [my branch] [other branch] |
他のユーザーのブランチと自分のブランチを関連付ける |
ブランチを切り替える(checkout)
$ git checkout [branch] |
ブランチを変更する |
$ git checkout --ours [filename] |
マージでコンフリクトしたときに情報を指定してファイル内容を採用する |
$ git checkout --theirs [filename] |
マージでコンフリクトしたときに下方を指定してファイル内容を採用する |
$ git checkout [commit id] [filename] |
コミットされた過去のファイルを復元する |
コミット内容を表示 [show]
$ git show] |
最新のコミット内容を表示 |
$ git show [tagname]] |
タグを指定してコミット内容を表示 |
元に戻す [reset]
$ git reset [commit id] |
ステージングエリアを現在のHEADの状態にする |
$ git reset HEAD [filename] |
ステージングエリアからファイルをアンステージする |
$ git reset --hard [commit id] |
ワークツリーを含めたすべてをコミットIDの状態に戻す |
$ git reset --hard HEAD@{[number]} |
git reflogで確認した番号の状態に戻す |
$ git reset --hard ORIG_HEAD |
直前の状態に戻す |
削除 [rm]
$ git rm [filename] |
ワークツリーとステージングエリアからファイルを削除 |
$ git rm --cache [filename] |
ステージングエリアのファイルを削除 |
ファイル名の変更 [mv]
$ git mv [filename 1] [filename 2] |
ファイル名を変更(ステージングエリアとワークツリーに同ファイル存在時)
|
取り消し [revert]
$ git revert [commit id] |
コミットIDのコミットを取り消す |
取り消し2 [rebase]
$ git rebase -i [commit id] |
コミットIDから古い順にコミットが表示され
コミットの行を消すとコミットの取り消し
先頭のpickをほかのものに置き換えるとコミットメッセージなどの編集が可能になる |
$ git rebase --abort |
直前のgit rebaseの編集を中止する |
$ git rebase --continue |
git rebaseの変更を適応する |
リモートレポリトリを管理する [remote]
$ git remote |
リモートリポジトリの一覧表示 |
$ git remote add [username] [remote repository PATH] |
名前とリモートリポジトリを関連付けする(リモートリポジトリの追加) |
$ git remote rename [remoterepository] [new name] |
リモートリポジトリの名前を変更する |
$ git remote show [remote repository] |
リモートリポジトリの情報を見る |
$ git remote prune [remote repository] |
リモートリポジトリで排除されたブランチをローカルからも削除する |
複製 [clone]
$ git clone [repository PATH] [new repository PATH] |
リポジトリをコピーする |
リモートリポジトリに変更を書き込む [push]
$ git push [remote repository PATH] [branch] |
アップロードする |
$ git push [remote repository] --tags |
すべてのタグをアップロードする |
$ git push [remote repository] [tagname] |
指定したタグをアップロードする |
$ git push [remote repository] :[branch or tagname] |
リモートリポジトリの指定したブランチ,もしくはタグ削除する |
リモートリポジトリの変更を取り込む [pull]
$ git pull [remote repository PATH] [branch] |
取り込み
|
リモートレポジトリの最新情報の管理 [fetch]
リモートリポジトリで更新された最新情報をローカルリポジトリに持ってくるコマンド。
しかしpullのようにファイルが更新されるわけではありません。
$ git fetch [remote repository] |
リモートリポジトリで更新された最新情報をローカル
リポジトリに持ってくる |
リモートレポジトリの最新情報の管理 [fetch]
リモートリポジトリで更新された最新情報をローカル
リポジトリに持ってくるコマンドのことです。
しかしpullのようにファイルが更新されるわけではありません。
$ git fetch [remote repository] |
リモートリポジトリの最新情報を追加する |
$ git fetch --prune |
リモートリポジトリの削除情報をローカルに更新する |
ブランチの統合 [merge]
$ git merge [branch] |
現在のブランチをほかのブランチとマージする |
タグをつけて管理 [tag]
$ git tag |
タグの一覧を表示 |
$ git tag -n[number]@ |
タグとそのメッセージ[行数指定]の一覧を表示する(行数指定なしの場合1行)
|
$ git tag -l [filter] |
タグを,フィルターをかけて表示する |
$ git tag [tagname] |
現在のコミットIDにタグを関連付けする |
$ git tag [tagname] [commit id] |
コミットIDを指定してタグを関連付けする |
$ git tag -a [tagname] |
現在のコミットIDにメッセージ付きのタグを関連付けする |
$ git tag -d [tagname] |
指定したタグを削除する |
|
変更を一時的に退避 [stash]
作業中に一時その作業を中断し、変更を退避し別な作業を完了後退避した内容を戻し作業を再開する。
$ git stash |
現在の状態を保存する |
$ git stash save “[message]” |
メッセージ付きで現在の状態を保存する |
$ git stash list |
保存した状態の一覧を表示する |
$ git stash pop |
最新の保存状態を復元する |
$ git stash pop stash@{[numbar]} |
番号を指定して保存状態を復元する |
$ git stash apply |
保存状態をリストに残したまま最新の保存状態を復元する |
$ git stash apply stash@{[number]} |
保存状態をリストに残したまま指定した番号の保存状態を復元する |
$ git stash drop stash@{[number]} |
保存状態を削除する |
$ git stash clear |
保存状態をすべて削除する |
過去のあらゆるコミット履歴を見る [reflog]
各個人のローカルリポジトリに存在
ブランチの切り替え、新たに加えられた変更のプル、履歴の書き換え、あるいは単なる新規コミットの実行などを記録
$ git reflog |
過去にHEADが指していたコミット一覧をを表示する |
$ git reflog [branch] |
ブランチを指定して過去にHEADが指していたコミット一覧を表示する |
他ブランチの特定コミットのみを反映 [cherry-pick]
他ブランチの特定コミットのみを反映されることができるコマンド
リモートにあるブランチをcherry-pickしたい場合、まずはfetchしてローカルリポジトリにコミット後
cheery-pickで任意のコミットIDを指定し適用させる。
$ git cherry-pick [commit id] |
別のブランチのコミットを現在のブランチにコピーする |