この記事について
- どんな記事?:gitの復習として、基本用語、コマンドなどについてまとめた記事の第2回です!
- 対象者はどんな方?:gitをしっかり理解できていない方、 gitをなんとなく使えるけど説明はできない方
前回の記事はこちら
基本コマンドの復習
cloneについて
-
cloneコマンドとは
既存のリモートリポジトリをローカルリポジトリとして自身のマシンに複製するコマンドのこと。 -
実際の使い方
$ git clone [クローンしたいリポジトリ] [クローン先のディレクトリ(省略可)] # 例えば以下のように! $ git clone https://github.com/Ryo-Sasaki-xxx/example
通信方式としてhttps、sshなどがある。クローン先のディレクトリを省略するとカレントディレクトリにクローンされる。
-
オプションについて
$ git clone -b [クローンしたいブランチ名] [クローンしたいリポジトリ] [クローン先のディレクトリ(省略可)]
のようにbオプションを加えることで、タグやブランチを指定した複製ができる。
branchについて
-
branchコマンドとは
リポジトリ内のブランチを管理するコマンドのこと。具体的には一覧表示、作成、削除などができる。 -
実際の使い方
#新しくブランチを作成する場合 $ git branch [ブランチ名] #既にあるブランチを表示する場合 $ git branch
-
オプションについて
$ git branch -a
のようにaオプションを加えることでローカルとリモート両方のブランチを表示できる。
$ git branch -d [ブランチ名]
のようにdオプションを加えることでそのブランチを削除できる。ただしdオプションの場合は現在のブランチにマージされたブランチのみ削除でき、Dオプションであれば強制的に削除できる。
checkoutについて
-
checkoutコマンドとは
ブランチの切り替えや変更履歴からある状態の復元をするコマンドのこと。より具体的に言うと、指定したコミット、ブランチでHEADを更新するコマンドである。 -
実際の使い方
#ブランチを切り替える場合 $ git checkout [ブランチ名]
#変更履歴から状態を復元する場合 $ git checkout [コミットハッシュ値] [パス]
-
オプションについて
$ git checkout -b [ブランチ名]
のようにbオプションを加えるとブランチの新規作成と切り替えが同時にできる。
logについて
-
logコマンドとは
指定されたコミットから順に親のコミットを辿ることによって到達可能なコミットをリスト化し、表示するコマンドのこと。 -
実際の使い方
#全てのコミットの履歴を表示する場合 $ git log #特定のコミット以前の履歴を表示する場合 $ git log [コミットハッシュ値]
また^をコミットハッシュ値の前につけるとそのコミットから到達可能なコミットは出力から取り除かれる。
さらに ^ [コミットハッシュ値1] [コミットハッシュ値2] の省略形として、特別な表記[コミットハッシュ値1] .. [コミットハッシュ値2] がある。 -
オプションについて
$ git log --author=[コミッター名]
のようにauthorオプションを加えるとコミッターで履歴を絞り込める。
statusについて
-
statusコマンドとは
インデックスとHEADに違いがあるパス、ワークツリーとインデックスに違いがあるパス、追跡されないワークツリー内のパスを表示するコマンド。1番目はコミットする必要があるものであり、2番目と3番目はコミットする前にステージングする必要があるもの
である。 -
実際の使い方
$ git status
-
オプションについて
$ git status -s
のようにsオプションを加えるとショートフォーマットで出力される。
addについて
- addコマンドとは
ワークツリーの内容に基づいてインデックスを更新するコマンド。 - 実際の使い方
ファイル名で指定した場合は指定されたファイルのみステージングする。ディレクトリ名で指定した場合はそのディレクトリ配下のファイルをステージングする。
$ git add [ファイル名 or ディレクトリ名]
- オプションについて
のようにAオプションを加えるとワークツリーの全てのファイルがステージングされる。
$ git add -A
commitについて
- commitコマンドとは
インデックスの現在の内容と変更を説明するメッセージを含む新しいコミットを作成するコマンドのこと。 - 実際の使い方
$ git commit
- オプション
のようにmオプションを加えるとメッセージを追加できる。
$ git commit -m "[メッセージ]"
のようにaオプションを加えると変更、削除されたファイルを自動的にステージングした上でコミットできる。$ git commit -a
diffについて
-
diffコマンドとは
ワークツリーとインデックス、最新のコミット、指定したコミット間等の差分を表示するコマンドのこと。 -
実際の使い方
#ワークツリーとインデックスの差分を表示する場合 $ git diff #ワークツリーと最新のコミットとの差分を表示する場合 $ git diff HEAD #ワークツリーと指定したコミットとの差分を表示する場合 $ git diff [コミットハッシュ値]
-
オプションについて
$ git diff --cached
のようにcachedオプションを加えるとインデックスと最新のコミットの差分を表示できる。addコマンドでステージングした後に
確認のためよく用いられる。
pushについて
- pushコマンドとは
ローカルの変更履歴をリモートリポジトリに反映させるコマンド。 - 実際の使い方
リモートリポジトリ名は通常originとして登録しているはず。
$ git push [リモートリポジトリ名] [ブランチ名]
- オプションについて
のようにdelateオプションを加えるとリモートリポジトリの指定したブランチを削除できる。
$ git push [リモートリポジトリ名] --delete [ブランチ名]
fetchについて
- fetchコマンドとは
リモートブランチの現在の状態をリモート追跡ブランチに反映させるコマンドのこと。リモート追跡ブランチとはローカルリポジトリに存在するリモートブランチの状態を把握するブランチのこと。 - 実際の使い方
リモートリポジトリ名やブランチ名で特定のリポジトリやブランチからの更新のみを取得できる。
$ git fetch [リモートリポジトリ名(省略可)] [ブランチ名(省略可)]
- オプションについて
のようにallオプションを加えると全てのリモートリポジトリから更新を取得できる。
$ git fetch --all
mergeについて
- mergeコマンドとは
あるブランチから別のブランチに変更を反映させるコマンドのこと。 - 実際の使い方
指定したブランチの変更履歴を現在いるブランチに反映させている。
$ git merge [マージ元ブランチ名]
- オプションについて
特筆すべきオプションはない!
pullについて
- pullコマンドとは
リモートリポジトリからの変更を現在のローカルブランチに反映させるコマンドのこと。より具体的にはリモートリポジトリからリモート追跡リポジトリにフェッチし、リモート追跡リポジトリをローカルブランチにマージするコマンドのこと。 - 実際の使い方
$ git pull [リモートリポジトリ名]
- オプションについて
特筆すべきオプションはない!