Gitコマンドと基本用語の解説

はじめに

Gitの操作(CUI)と基本用語の解説を行います。

remote(リモート)

説明

remote(リモート)名とはGitのURLにつける別名(エイリアス名)のことでURLは以下のようなものです。

file

以下のコマンドでremote(リモート)名を確認できます。

git remote

また、以下のコマンドでリモート名のURLを確認できます。

git remote -v

コマンド実行例

例えば、以下の場合は現在のリモート名が「origin」となります。

$ git remote
origin

また、以下の場合は現在のリモート名のURLが「origin」となります。

$ git remote
origin  git@github.com:T-H9703EnAc/kotlin.git (fetch)

※慣習的に「origin 」という名前をつけることが多いです。デフォルトで設定されるリモート名も「origin 」です。

branch(ブランチ)

説明

branchとは元となるプロジェクトとのソースコード等をコピーしたもので、そのコピーしたものにつける新しい名前がブランチ名です。

file

例えば、以下の用途でブランチの作成や切り替えを行います。

  • master: リリース時に使用するための環境
  • develop: リリースはしていないが、新しく開発した機能(ある程度テストまで完了している)
  • feature: 新しく開発した機能をあげる環境(結合テスト等を行う際にあげる環境)
  • topic: 個人の作業の反映を行う環境

ブランチ名の一覧を確認する場合は、以下のコマンドで確認できます。

git branch

現在のブランチ名を確認する場合は、以下のコマンドで確認できます。

git branch --show-current

ブランチを作成する場合は、以下のコマンドで作成できます。

git branch 新しいブランチ名

作業ブランチを別のブランチに切り替える場合は以下のコマンドで切り替えます。

git checkout 任意のブランチ名

コマンド実行例

例えば、現在のブランチの一覧の結果が以下とします。

$ git branch
* master

新しくdevelopブランチを作成します。

$ git branch develop

developブランチがあることを確認します。

$ git branch
  develop
* master

現在の作業ブランチはまだ、masterブランチがあることを確認します。

$ git branch --show-current
master

developブランチに切り替えます。

$ git checkout develop
Switched to branch 'develop'

現在のブランチがdevelopブランチであることを確認します。

$ git branch --show-current
develop

add(アド)

説明

add(アド)は以下の図のように変更した情報(新しくファイルを作成、既存ファイルの変更、既存ファイルの削除)をインデックス(ステージングエリア)に追加する際のコマンドです。インデックス(ステージングエリア)はコミット時にこれらの変更をGitに伝えるための一時的な領域です。

file

以下のように追加します。

git add 変更対象のファイル名

また、変更ファイルを全て追加する場合は以下のコマンドで追加できます。

git add .

以下のコマンドで追加されたファイルの情報を確認できます。

git status

ステータスメッセージは以下のようなものがあります。

  • new file: ファイルの新規作成
  • modified: ファイルの更新
  • deleted: ファイルの削除

コマンド実行例

新しく「ControlIf.kt」というファイルを作成したとします。これをインデックス(ステージングエリア)に追加する場合は、移管コマンドを実行します。

$ git add ControlIf.kt

または、以下のコマンドで一度に追加します。

$ git add .

インデックス(ステージングエリア)に追加されたファイルを確認します。

$ git status
On branch develop
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   ControlIf.kt

reset(リセット)

reset(リセット)は以下の図のようにインデックス(ステージングエリア)に追加したファイルをもとに戻すコマンドです。

説明

file

以下のように元に戻します。

git reset 変更対象のファイル名

また、変更ファイルを元に戻す場合は以下のコマンドで追加できます。

git reset .

以下のコマンドで元に戻されたファイルの情報を確認できます。

git status

コマンド実行例

ControlIf.kt」をインデックス(ステージングエリア)から戻す場合は、以下のコマンドを実行します。

$ git reset ControlIf.kt

または、以下のコマンドで一度で戻します。

$ git reset .

インデックス(ステージングエリア)から戻されたファイルを確認します。

$ git status
On branch develop
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        ControlIf.kt

commit(コミット)

説明

commit(コミット)は以下の図のように、インデックス(ステージングエリア)に追加された変更内容をローカルリポジトリろ履歴に反映します。これにより、後でその状態を参照したり、変更を追跡できるようになります。

file

以下のコマンドで実行します。

git commit -m "任意のコメント"

コマンド実行例

※ 前提事項としてあらかじめインデックス(ステージングエリア)に追加されていること

以下のように実行します。

$ git commit -m "ControlIf.ktを新規作成"
[develop 88e184b] ControlIf.ktを新規作成
 1 files changed, 11 insertions(+)
 create mode 100644 ControlIf.kt

push(プッシュ)

説明

push(プッシュ)は以下の図のように、ローカルリポジトリにcommit(コミット)コミットされた変更内容をリモートリポジトリに反映します。

file

以下のコマンドで実行します。

git push リモート名 ブランチ名

また、以下のように実行するとこともできます。

git push -u リモート名 ブランチ名

上記のコマンドで以下のコマンドでpush(プッシュ)すると以降のpush(プッシュ)はブランチを変えない場合は以下のように実行できます。

git push

コマンド実行例

以下のように、リモート名がoriginでブランチ名がdeveloppush(プッシュ)をします。

$ git push origin develop
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 639 bytes | 319.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'develop' on GitHub by visiting:
remote:      https://github.com/T-H9703EnAc/kotlin/pull/new/develop
remote:
To github.com:T-H9703EnAc/kotlin.git
 * [new branch]      develop -> develop

fetch(フェッチ)

説明

Fetch(フェッチ)は以下の図のように、リモートリポジトリの最新の状態をローカルリポジトリに取り込む操作です。

file

git fetch [リモート名]

コマンド実行例

以下は、リモート名がoriginの最新の状態をローカルブランチに取り込みます。

git fetch origin

merge(マージ)

説明

merge(マージ)は以下の図のように、Fetch(フェッチ)で更新したローカルリポジトリの内容をワーキングディレクトリ(作業ディレクトリ)に取り込む操作です。

file

git merge リモート名/ブランチ名

コマンド実行例

以下は、リモート名がoriginでブランチ名がdevelopmerge(マージ)を行う操作です。

$ git merge origin/develop
Already up to date.

pull(プル)

説明

pull(プル)は以下の図のように、Fetch(フェッチ)merge(マージ)の操作を一度に行う操作です。

file

以下のコマンドで実行できます。

git pull リモート名 ブランチ名

以下のようにトラッキング情報を設定をすると簡単にpull(プル)を行うこともできます。
※基本的にリモートブランチ名ローカルブランチ名は同じブランチ名です。

git branch --set-upstream-to=リモート名/リモートブランチ名 ローカルブランチ名

上記を設定すると以下のように実行できます。

git pull

さらに、以下のように実行するとトラッキング情報を設定したすべてのブランチの情報をpull(プル)できます。

git pull --all

コマンド実行例

以下は、リモート名がoriginでブランチ名がdeveloppull(プル)を行う操作です。

$ git pull origin develop
From github.com:T-H9703EnAc/kotlin
 * branch            develop    -> FETCH_HEAD
Already up to date.

以下は、リモート名がoriginでリモート・ローカルブランチ名がdevelopトラッキング情報を設定する操作です。

$ git branch --set-upstream-to=origin/develop develop
Branch 'develop' set up to track remote branch 'develop' from 'origin'.

トラッキング情報設定後のpull(プル)操作です。

$ git pull
Already up to date.

全てのブランチのpull(プル)操作です。

$ git pull --all
Fetching origin
Already up to date.

clone(クローン)

説明

clone(クローン)は、既存のリポジトリをローカル環境にコピーするコマンドです。リモートリポジトリとローカルリポジトリはどちらもclone(クローン)することがきます。

カレントディレクトリ(現在のディレクトリ)にリモートリポジトリをclone(クローン)する場合は、以下のように実行できます。

git clone リポジトリURL

ブランチ名を指定してclone(クローン)する場合は、以下のように実行できます。

git clone -b ブランチ名 リポジトリURL

任意のディレクトリにclone(クローン)する場合は、以下のように実行できます。

git clone リポジトリURL ディレクトリのパス

ローカル環境をclone(クローン)する場合は、以下のように実行できます。

git clone リポジトリパス クローン先のディレクトリパス

コマンド実行例

例えば、カレントディレクトリ(現在のディレクトリ)がtestという名前のディレクトリの場合に、ここにclone(クローン)する場合は、以下のように実行できます。

~/test$ git clone git@github.com:T-H9703EnAc/kotlin.git
Cloning into 'kotlin'...
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 14 (delta 3), reused 13 (delta 2), pack-reused 0
Receiving objects: 100% (14/14), done.
Resolving deltas: 100% (3/3), done.

ブランチ名developを指定して、clone(クローン)する場合は、以下のように実行します。

~/test$ git clone -b develop git@github.com:T-H9703EnAc/kotlin.git
Cloning into 'kotlin'...
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 14 (delta 3), reused 13 (delta 2), pack-reused 0
Receiving objects: 100% (14/14), done.
Resolving deltas: 100% (3/3), done.

例えば、カレントディレクトリ(現在のディレクトリ)がtestでその下にtest2があり、その下にclone(クローン)する場合は、以下のように実行します。

~/test$ git clone -b develop git@github.com:T-H9703EnAc/kotlin.git ./test2
Cloning into './test2'...
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 14 (delta 3), reused 13 (delta 2), pack-reused 0
Receiving objects: 100% (14/14), done.
Resolving deltas: 100% (3/3), done.

例えば、カレントディレクトリ(現在のディレクトリ)がtestでその下にtest2test3があり、test2がローカルリポジトリでtest3clone(クローン)する場合は、以下のように実行します。

git clone -b develop ./test2 ./test3
Cloning into './test3'...
done.

コメント

タイトルとURLをコピーしました