よく使いそうな Git コマンドのまとめです。
以下、git は省略します。
コマンドの詳細は以下を参照
用語の確認
Git では、プロジェクトのファイルが保存される場所は以下の3つに分けられます。
括弧内は別名です。
- リポジトリ
コミットの履歴やブランチなどが保存されている場所
- ステージングエリア (インデックス, 索引)
リポジトリと作業ツリーの間に位置し、リポジトリにコミットする前にコミットの内容を調整できる場所
- 作業ツリー (作業ディレクトリ)
実際にチェックアウトされたファイルのツリー
その他の用語は以下を参照
Git ユーザマニュアル
初期化
| init [--bare] | GIT リポジトリを作成 |
日常作業
| status | 作業ツリーとステージングエリアの状態を表示 |
| diff [--cached] [ファイル名] | 差分表示 |
| checkout ファイル名 | 作業ツリーの変更を元に戻す |
| add [-p] [-i] [-u] [ファイル名] | ファイルをステージ |
| reset [ファイル名] | アンステージ |
| commit [-m "コメント"] | ステージされているファイルをコミット |
| commit -a [-m "コメント"] | 変更されたファイルを全てステージ & コミット |
| commit [-m "コメント"] --amend | 直前のコミットに上書きコミット |
| log [-表示数] [--oneline] [--stat] [-C -C] [-p] | コミットログ表示 |
| mv ファイル名 新ファイル名 | ファイル名を変更 |
| stash [save [コメント]] | 現在の作業ツリーを stash に保存し、作業ツリーとステージングエリアの変更をリセット |
| stash list | stash に保存した作業ツリーを一覧表示 |
| stash (pop | apply) [stash@{番号}] | 最後に保存した作業ツリーを取り出す |
ブランチ・タグ
| branch [-a] | ブランチを一覧表示 |
| tag | タグを一覧表示 |
| checkout ブランチ名/タグ名/オブジェクト名 | ブランチやタグなどをチェックアウト |
| branch ブランチ名 | ブランチ作成 |
| checkout -b ブランチ名 | ブランチ作成、同時にチェックアウト |
| branch (-d | -D) ブランチ名 | ブランチ削除 |
| branch -m ブランチ名 新ブランチ名 | 名前変更 |
| merge ブランチ名 | 直接マージ |
| merge --squash ブランチ名 | 圧縮コミット |
| cherry-pick [-n] オブジェクト名 | チェリーピック |
リモートリポジトリ
| clone [--bare] [--depth ダウンロードするコミット数] リポジトリのパス | リポジトリをクローン |
| fetch [リモートリポジトリ] [refspec] | ブランチを取得 |
| pull [リモートリポジトリ] | 変更を取得してマージ |
| push [リモートリポジトリ] [ローカルブランチ[:リモートブランチ]] | 変更をプッシュ |
| push [リモートリポジトリ] :リモートブランチ | リモートブランチを削除 |
| remote add 名前 リポジトリのパス | 新しいリモートリポジトリを追加 |
Subversion との連携
| svn clone [--prefix ブランチ名のプレフィックス/] [-s] リポジトリのパス [-r リビジョン] | SVN リポジトリをインポート |
| svn rebase | 変更を取得 |
| svn dcommit | 変更をプッシュ |
その他
| help [コマンド名] | コマンドの説明を表示 |
| blame [-L (開始行 | 正規表現), (終了行 | +-n)] [-C -C] [オブジェクトID] ファイル名 | 行ごとに最終変更情報を表示 |
| reflog | ブランチに対する変更の履歴を削除されたものも含めて表示 |
| gc [--aggressive] | 履歴の格納方法を最適化 |
[amazon asin="427406767X" /]