Gitの基本的な使い方: Gitコマンド
基本操作
Gitに慣れ親しむために、少し時間を取って実際にコマンドを実行し、挙動を確認しておくとよいでしょう。
デスクトップなどにディレクトリーを作成し、各コマンドを実行するだけですので難しくはありません。
init
git init
Git管理したいディレクトリに移動後コマンドを実行するとリポジトリ(.gitディレクトリ)を作成します。
コマンドを実行したディレクトリ以下に作成するディレクトリ構造をワークツリーと呼び、ワークツリーでの変更をリポジトリに記録し管理していきます。
リポジトリに記録することにより、過去のデータも自由に取り出すことができるようになります。
Gitでの管理を辞めたくなった場合はリポジトリ(.gitディレクトリ)を削除するだけです。
練習用に作成したり削除したり、挙動を確認してみるとよいでしょう。
add
git add ファイル名.txt
Gitではコミット前に対象ファイルをステージ領域(インデックスというデータ構造)に登録する必要があります。
ステージ領域に登録することをステージングするという場合が多いようです。
上記コマンドでワークツリーで作成したデータをステージングし、コミット前状態にします。
ワークツリーにある全ファイルを一括してステージングする場合はファイル名ではなく.(ピリオド)を指定し以下のようにコマンドを実行します。
git add .
commit
git commit
ステージ領域に登録されているデータをGitリポジトリに記録します。
リポジトリに記録したデータは、以降自由に取り出し復元することができるようになります。
後述する-mオプションを指定しない場合はコメントを記述するエディタが立ち上がります。
ここで起動するエディタは設定ファイルで指定したエディタです。
参考:Gitの基本的な使い方: Gitの設定
ログ確認コマンドやツールは以下のフォーマットを前提に作られていますので、フォーマットに準拠して記述するとよいでしょう。
1行目:コミットする変更内容の要約(タイトルや概要)
2行目:空行
3行目:変更した理由や詳細を記述
1行目の要約の先頭にはコミットの目的が一目でわかるよう、以下のようなコミット種別を記述しておくことが多いようです。
この辺りは個人的な拘りがあったりしますので、チームでルールを決めておくとよいでしょう。
- add : ファイルの追加
- fix : バグ修正
- hotfix : クリティカル(致命的)なバグの修正
- update : 機能修正(バグではない)
- change : 仕様変更
- clean : 整理(リファクタリングなど)
- remove : ファイルの削除
- upgrade : バージョンアップ
またGitHubなどのリポジトリ管理ツールを使用する場合、特定の文字列を入力するとGitHubと連携することが出来ます。
例えばIssueと紐づけるためにIssue番号(例:#12)を記述したり、fixやcloseと記述することでIssueをclose状態に変更したりすることができます。
何も編集せずにエディタを終了すればコミットはキャンセルされます。
-mオプション
git commit -m “コミットメッセージ"
エディタを立ち上げず、1行コメントを指定してコミットします。
詳細が必要ない場合などはコミット種別を付与し、このコミットでもよいでしょう。
-amオプション
git commit -am “コミットメッセージ"
git addによるステージングと、git commit -m “コミットメッセージ"を同時に実行します。
status
git status
現在のGit管理状態を確認できます。
どういった情報が得られるのか確認しておきましょう。
ログ表示
log
git log
現在のブランチ全体のログを表示します。
コミットしたユーザーやメールアドレス、日時、コミットを特定するハッシュ値が表示されます。
log ディレクトリ名/ファイル名
git log ディレクトリ名/ファイル名
ディレクトリ名やファイル名を指定することでログ表示する対象を絞り込むことができます。
–pretty=shortオプション
git log –pretty=short
ログの要約を表示します。
-pオプション
git log -p
コミットで行われた差分が表示されます。
他のオプションと組み合わせることができます。
git log -p README.md
とすればREADME.mdのコミットログと差分が表示されます。
–graphオプション
git log –graph
複数のブランチを使って開発している場合、分岐やマージをグラフでわかりやすく表示します。
比較表示
diff
git diff
ワークツリー、ステージ領域の差分を確認するコマンド。
慣れるまでは表記がわかりにくいのでいろいろ試して何度も確認してみるとよいでしょう。
diff HEAD
git diff HEAD
ワークツリー、HEADの差分を確認するコマンド。
HEADは現在の最新コミットがどこにあるかを表すポインタです。