Gitのコマンドについて

今回はGitでよく使われるコマンドについて解説します。

Gitについてよくわからない方や用語がわからない方はこちら

 

目次

  1. git remoteコマンド
  2. git cloneコマンド
  3. git initコマンド
  4. git addコマンド
  5. git commitコマンド
  6. git resetコマンド
  7. git pushコマンド
  8. git pullコマンド
  9. git branchコマンド
  10. git checkoutコマンド
  11. git diffコマンド
  12. git logコマンド
  13. git statusコマンド
  14. git stashコマンド

 

 

git remoteコマンド

このコマンドは他のリポジトリとの接続の作成、内容確認、削除を行うときに使われます。

git remote

これは他のリポジトリへの接続の一覧を表示するコマンドです。

git remote -v

これは他のリポジトリへの接続の一覧をURL付きで表示するオプションです。

git remote add (エイリアス名) (リモートリポジトリ情報)

リモートリポジトリをローカルリポジトリと紐付ける時に使うコマンドです。 エイリアス名にはoriginがよく使われます。リモートリポジトリ情報はURLなどが入ります。

git remote rm (エイリアス名)

指定の名前のリモートリポジトリへの接続を削除するコマンドです。

git remote rename (古い名前) (新しい名前)

これは古い名前から新しい名前にリモート接続の名前を変更するコマンドです。

 

git cloneコマンド

既存のリモートリポジトリをローカル環境にコピーするコマンドです。

git clone (リモートリポジトリ情報)

このコマンドを実行するとリモートリポジトリが今いるディレクトリにクローンされます。git remoteコマンドを使わなくてもリモートリポジトリとローカルリポジトリが紐付けられた状態になります。

git clone -b (ブランチ名) (リモートリポジトリ情報)

このコマンドはクローンするブランチを選べます。ブランチ名のリポジトリをクローンします。

 

git initコマンド

これはリポジトリをgitで管理することを指定するコマンドです

git init

このコマンドは今いるディレクトリに.gitディレクトリが作成されます。

git init (ディレクトリ名)

このコマンドはディレクトリ名をつけられます。今いるディレクトリの下にディレクトリ名のディレクトリ。その下に.gitが作成されます。

git init --bare --share

リモートリポジトリを作る時に使うコマンドです --bareは作業ディレクトリを作らなくさせるオプションです。--shareはリポジトリが複数のユーザーに共有にできるようにさせるオプションです。

このコマンドを使うと使った環境にリモートリポジトリとして使えるリポジトリができます。

 

git addコマンド

ワーキングツリーからインデックスにファイルの登録をするコマンドです。

git add (ファイル名)

これは指定のファイルを登録するコマンドです。

git add .

これは今いるディレクトリにあるファイルを全て登録するコマンドです。

git add -u

これはローカルリポジトリと比較して変更が加えられたファイルを登録してくれるコマンドです。

git add -A

これはワーキングツリーにある全てのファイルを登録するコマンドです。

 

git commitコマンド

インデックスにあるファイルをローカルリポジトリに登録するコマンドです。

git commit -m "(コミットメッセージ)"

このコマンドはダブルクォートで囲まれた部分をコミットメッセージとしてコミットが登録されます。

git commit --amend -m "(コミットメッセージ)"

このコマンドは直前のコミットのコミットメッセージをこのコマンドで入力したコミットメッセージに変更します。

git commit --amend --no-edit

このコマンドは直前のコミットにインデックスのファイルを追加できます。

 

Git resetコマンド

このコマンドはインデックスを取り消したりコミットを任意の履歴まで戻すことができます。

git reset

このコマンドはインデックスされているファイルをすべてリセットしてgit addする前に戻します。

git reset (ファイル名)

ファイル名のファイルだけをインデックスから解除します。

git reset (コミット番号)

このコマンドはコミット番号のコミットまで履歴が戻ります。何もオプションを指定しないとmixedというオプションで実行されます。

git reset HEAD^

このコマンドは^がひとつ前のコミットという意味なので現在のブランチの最新のコミットのひとつ前のコミットに履歴がもどります。これもmixedというオプションで実行されます。

git reset --soft (コミット番号)

このオプションは指定したコミットまで戻ってそれまでに変更した更新内容をインデックスに登録した状態にします。

git reset --hard (コミット番号)

このオプションは指定したコミットまで戻ってそれまでに変更した更新内容削除します。作業ディレクトリにも残りません。

git reset --mixed (コミット番号)

このオプションは指定したコミットまで戻ってそれまでに変更した更新内容を作業ディレクトリに残します。インデックスはされていない状態です。オプションを指定しないとこの状態になります。

 

git pushコマンド

ローカルリポジトリに加えた変更をリモートリポジトリに登録するコマンドです。

git push (エイリアス名) (ブランチ名)

このコマンドは指定したリポジトリの指定したブランチにローカルリポジトリの変更を登録します。

 

git pullコマンド

リモートリポジトリから最新の状態をローカルリポジトリに反映するコマンドです。

git pull (エイリアス名) (ブランチ名)

このコマンドは指定したリモートリポジトリの指定したブランチの情報をローカルリポジトリに反映します。実際にはfetchとmargeという処理をしています。

 

git branchコマンド

ブランチを確認したり作成するコマンド

git branch

このコマンドは存在しているブランチの一覧を表示します。表示されたブランチで*がついているものが現在いるブランチになります。

git branch (ブランチ名)

ブランチ名に入力された名前のブランチが作成されます。

 

git checkoutコマンド

ブランチを切り替えるコマンド

git checkout (ブランチ名)

このコマンドは現在のブランチから指定したブランチに移動します。また、ブランチ名に「-」を指定するとひとつ前にいたブランチに切り替えらえます。

git checkout -b (新しいブランチ名)

このコマンドは指定したブランチが存在しなければ新しくブランチを作ってそのブランチに切り替えます。-bではなく-Bとすると指定したブランチが存在しても一度ブランチを削除して新しく作り直して切り替えます。

 

git diffコマンド

変更されたことについて見ることが出来るコマンドです。

git diff

このコマンドはワークツリーとインデックスを比較します。そのためgit addした後では何も表示されません。

git diff --cached

このコマンドはgit addした後にインデックスと最新のコミットとの変更点を表示してくれます。

git diff HEAD^..HAED

このコマンドは最新のコミットと最新のひとつ前のコミットの変更点を表示してくれます。..の右側にあるものが新しいものとして認識されます。

git diff (ブランチ名)

このコマンドは指定ブランチとワークツリーの変更点を表示してくれます。

git diff (ローカルブランチ名) (エイリアス名/ブランチ名)

このコマンドは指定したローカルのブランチと指定したリモートリポジトリのブランチとの変更点を表示してくれます。右側にあるものが新しいものとして認識されます。

 

git logコマンド

コミットの履歴が見れるコマンド

git log

このコマンドはローカルリポジトリのコミットの履歴を表示します。上の物が新しく下に行くほど古い物になります。

git log -n (数字)

このコマンドは数字で指定した分のコミットの履歴を新しい物から表示します。

git log -p

このコマンドはコミット履歴に何を変更したのかまで表示してくれるようになります。

git log (ファイル名)

このコマンドは指定したファイルのコミット履歴を表示してくれます。

 

git statusコマンド

現在のディレクトリの状態を確認するコマンドです。

git status

このコマンドはワークツリーで変更を加えたファイルがあるのか、git addしたのか、git commitしたのかどうかを表示してくれます。

 

git stashコマンド

コミットしていない変更を退避させることが出来るコマンド

git stash

このコマンドはコミットされていないローカルの変更差分を退避させます。追跡されていないファイルや無視に設定されたファイルは退避されません。「-u」をつけると未追跡のファイルも「-a」を付けると無視されたファイルも退避できます。

git stash save "メッセージ"

このコマンドはメッセージ付きで退避させることができます。ことらも追跡されていないファイルや無視に設定されたファイルは退避されません。「-u」をつけると未追跡のファイルも「-a」を付けると無視されたファイルも退避できます。

git stash list

このコマンドは退避された変更を一覧で確認できます。

git stash pop

このコマンドは最新の退避させた変更を現在のブランチに反映させつつ一覧からは削除されます。リスト番号を指定するとその番号の変更を反映させます。

git stash apply

このコマンドは最新の退避させた変更を現在のブランチに反映させて一覧に残します。リスト番号を指定するとその番号の変更を反映させます。

git stash drop

このコマンドは退避リストの最新の物が削除されます。リスト番号を指定するとその番号の変更を削除します。

 

 

 

以上よく使われるようなコマンドでした。

他にもあれば追記したり別で記事を作ろうと思います。

Gitとは?

今回はGitとは何かやGitで使われる用語を簡潔に解説します。

Gitって何?

Gitは分散型バージョン管理システムと呼ばれるものです。

バージョン管理システムとはファイルやフォルダに対しての変更を記録してファイルの状態を管理するツールのことです。

バージョン管理システムには集中型と分散型があります。

集中型はメインとなる一つのサーバーにファイルを配置して管理するものです。

作業中は常にサーバーに接続する必要があります。

変更はすべての作業者に影響します。

分散型は作業者それぞれの環境にファイルをコピーして変更内容をサーバーに同期することで変更を管理します。

集中型とは違い、常にサーバーに接続する必要はありません。

変更も同期するまで他の作業者に影響しません。

 

用語について

ここからはGitで使われる用語を解説します。

目次

  1. リポジトリ
  2. 作業ディレクトリ
  3. ステージング
  4. インデックス
  5. コミット
  6. ブランチ
  7. プッシュ
  8. プル

 

 

リポジトリ

リポジトリはデータを保存しておく場所のことです。

Gitではファイルやデータ、バージョン履歴等が保存されます。

また、Gitではリモートリポジトリとローカルリポジトリがあります。

リモートリポジトリは複数人で共有するもので、ローカルリポジトリはそれぞれ個人で使うものをいいます。

 

作業ディレクト

作業ディレクトリとは簡単に言ってしまえばフォルダのことです。

その名の通りGitの作業をする際に使うフォルダのことを言います。

また、ワーキングツリーといわれることもあります。

 

ステージング

ステージングはコミットするファイルを選ぶことです。

インデックスにファイルを登録することを言います。

 

インデックス

インデックスはコミットする前に変更したいファイルを登録しておくところです。

「インデックスする」と「ステージングする」は同じ意味です。

 

コミット

コミットはファイルやプログラムの何を更新したのかの履歴等をインデックスからローカルリポジトリに反映させることを言います。

またこの時作成されたものをコミットやリビジョンといいます。

 

ブランチ

ブランチはどこに作業を加えるかを示すポインターのようなものです。

一つしかないというわけではなく同じコミットから複数分岐させることもできます。

 

プッシュ

プッシュはローカルリポジトリに加えられた変更をリモートリポジトリに同期させること言います。

 

プル

プルはリモートリポジトリの状態をローカルリポジトリに反映させること言います。

 

 

 

今回はGitで使われている用語について簡潔にまとめてみました。

次回はよく使われるコマンドをまとめたいと思います。

コマンドの記事はこちら