MENU
やすひら
やすひらと申します。
長靴を履いたタヌキ(ITエンジニア)です。
モノ作りの楽しさを発信中。
X(旧Twitter)のフォローもお願いします。

[Linuxコマンド]gitコマンドの概要と使い方

Gitはファイルのバージョンを管理するためのツールです。
Linuxではgitコマンドによりファイルバージョンを管理することができます。
本記事では、gitコマンドの概要と使い方を紹介します。

やすひら

gitコマンドの概要と使い方を紹介します

この記事でわかること
  • gitコマンドの概要
  • gitコマンドの使い方
目次

コマンド概要

gitは、バージョン管理システムであり、ソースコードやドキュメントの変更履歴を管理することができます。
gitを使うことで、複数人での共同作業が容易になり、変更履歴の追跡やブランチを使った並行開発が可能になります。
リポジトリ(repository)という単位でプロジェクトを管理でき、その中でファイルの変更や追加することができます。

コマンドオプション

コマンドオプションを紹介します。

コマンドオプション意味
configGitの設定変更/設定確認
initリポジトリを作成/初期化
cloneリポジトリをコピー
statusリポジトリの状態確認
addファイルをステージングエリアに追加
rmファイルを削除
resetステージングエリアへの追加内容を取り消す
diffファイルの差分を表示
commitステージングエリアの変更内容をリポジトリにコミット
remoteローカルリポジトリとリモートリポジトリを紐付け
pushローカルリポジトリの変更内容をリモートリポジトリに反映
pullリモートリポジトリの変更内容をローカルリポジトリに反映
fetchリモートリポジトリの変更内容をローカルリポジトリに反映(ワークツリーへ反映なし)
branchブランチを作成/削除
checkoutブランチの切り替え/特定のコミットに移動/ワークツリーの変更を取り消す
mergeブランチをマージ
logコミット履歴を確認

コマンドの使い方

gitコマンドの使い方を紹介します。

Gitの設定を変更

Gitの設定を変更します。

コマンド形式

git config --global user.name [ユーザ名]
git config --global user.email [メールアドレス]

コマンド実行例

$ git config --global user.name user
$ git config --global user.email user@email.com

Gitの設定を変更できます。

Gitの設定を確認

Gitの設定を確認します。

コマンド形式

git config -list

コマンド実行例

$ git config --list
user.name=user
user.email=user@email.com

Gitの設定を確認できます。

リポジトリを作成/初期化

リポジトリを作成/初期化します。

コマンド形式

git init

コマンド実行例

$ git init
Initialized empty Git repository in /home/user/hogehoge/.git/

リポジトリを作成/初期化しました。

リポジトリをコピー

リポジトリをコピーします。

コマンド形式

git clone [リポジトリURL]

コマンド実行例

$ git clone https://github.com/user/hogehoge.git
Cloning into 'hogehoge'...
Username for 'https://github.com': user
Password for 'https://user@github.com': 
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 7 (delta 1), reused 6 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (7/7), done.
$ ls
hogehoge
$ ls hogehoge
hogehoge.txt

リポジトリをコピーしました。

リポジトリの状態確認

リポジトリの状態を確認します。

コマンド形式

git status

コマンド実行例

$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    hogehoge.txt

nothing added to commit but untracked files present (use "git add" to track)

リポジトリの状態を確認しました。

ファイルをステージングエリアに追加

ファイルをステージングエリアに追加します。

コマンド形式

git add [ファイル名]

コマンド実行例

$ git add hogehoge.txt 
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   hogehoge.txt

ファイルをステージングエリアにしました。

ファイル削除

ファイルを削除します。

コマンド形式

git rm [ファイル名]

コマンド実行例

$ git rm hogehoge1.txt 
rm 'hogehoge1.txt'
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    deleted:    hogehoge1.txt

ファイルを削除できます。

ステージングエリアへの登録内容を取り消す

ステージングエリアへの登録内容を取り消します。

コマンド形式

git reset

コマンド実行例

$ git status
On branch hogehoge1
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   hogehoge1.txt

$ git reset
$ git status
On branch hogehoge1
nothing to commit, working tree clean

ステージングエリアへの登録内容を取り消して、git addをキャンセルできます。

ワーキングエリアの変更内容を取り消す

ワーキングエリアの変更内容を取り消します。

コマンド形式

git checkout -- [ファイル/ディレクトリパス]

コマンド実行例

$ echo "hogehoge" >> hogehoge.txt
$ cat hogehoge.txt                                        
hogehoge
hogehoge
$ git diff
diff --git a/hogehoge.txt b/hogehoge.txt
index e9bc110..e8a1012 100644
--- a/hogehoge.txt
+++ b/hogehoge.txt
@@ -1 +1,2 @@
 hogehoge 
+hogehoge
$ git checkout -- hogehoge.txt
$ git diff

ワーキングエリアの変更内容を取り消せます。

ワークツリーとステージングエリアの差分を確認

ワークツリーとステージングエリアの差分を確認します。

コマンド形式

git diff

コマンド形式

$ echo "hogehoge" >> hogehoge.txt 
$ git diff
diff --git a/hogehoge.txt b/hogehoge.txt
index e9bc110..e8a1012 100644
--- a/hogehoge.txt
+++ b/hogehoge.txt
@@ -1 +1,2 @@
 hogehoge
+hogehoge

ワークツリーとステージングエリアの差分が表示されます。

ステージングエリアと前回コミットとの差分を確認

ステージングエリアと前回コミットとの差分を確認します。

コマンド形式

git diff --cached

コマンド形式

$ git diff --cached
diff --git a/hogehoge1.txt b/hogehoge1.txt
deleted file mode 100644
index 41e26a0..0000000
--- a/hogehoge1.txt
+++ /dev/null
@@ -1 +0,0 @@
-hogehoge1

ステージングエリアと前回コミットとの差分が表示されます。

ステージングエリアの変更をリポジトリにコミット

ステージングエリアの変更をリポジトリにコミットします。

コマンド形式

git commit -m "[メッセージ]"

コマンド実行例

$ git commit -m "add: hogehoge.txtのファイル追加" -m "Git/GitHubの動作確認を行う
ため、hogehoge.txtを追加する。"
[master (root-commit) ae123ff] add: hogehoge.txtのファイル追加
 1 file changed, 1 insertion(+)
 create mode 100644 hogehoge.txt

ステージングエリアの変更をリポジトリにコミットしました。

ローカルリポジトリとリモートリポジトリを紐付け

ローカルリポジトリとリモートリポジトリを紐付けます。

コマンド形式

git remote add origin [URL]

コマンド実行例

$ git remote add origin https://github.com/user/hogehoge.git

ローカルリポジトリとリモートリポジトリを紐付けしました。

ローカルブランチの変更をリモートリポジトリに反映

ローカルブランチの変更をリモートリポジトリに反映します。

コマンド形式

git push [リモートリポジトリ名] [ブランチ名]

コマンド実行例

$ git push origin master
Username for 'https://github.com': user
Password for 'https://user@github.com': 
Counting objects: 3, done.
Writing objects: 100% (3/3), 319 bytes | 319.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/user/hogehoge.git
 * [new branch]      master -> master

ローカルブランチの変更をリモートリポジトリに反映しました。
ブランチの変更をプッシュして、プルリクエストを送ることができます。

リモートリポジトリの変更をローカルリポジトリに反映(pull)

pull指定で、リモートリポジトリの変更をローカルリポジトリに反映します。

コマンド形式

git pull [リモートリポジトリ名] [ブランチ名]

コマンド実行例

$ git pull origin master
Username for 'https://github.com': user
Password for 'https://user@github.com': 
From https://github.com/user/hogehoge
 * branch            master     -> FETCH_HEAD
Already up to date.

リモートリポジトリの変更をローカルリポジトリに反映しました。

リモートリポジトリの変更をローカルリポジトリに反映(fetch)

fetch指定で、リモートリポジトリの変更をローカルリポジトリに反映します。

コマンド形式

git fetch [リモートリポジトリ名]

コマンド実行例

$ git fetch origin
Username for 'https://github.com': user
Password for 'https://user@github.com': 

リモートリポジトリの変更をローカルリポジトリに反映しました。

pullとの違いは、ワークツリーへの反映はされません。
ワークツリーへ反映させるためには、pullするかマージが必要です。

現在のブランチを表示

現在のブランチを表示します。

コマンド形式

git branch

コマンド実行例

$ git branch
* master

現在のブランチを表示しました。

ブランチを作成

ブランチを作成します。

コマンド形式

git branch [ブランチ名]

コマンド実行例

$ git branch hogehoge1
$ git branch
  hogehoge1
* master

ブランチを作成しました。

ブランチを削除

ブランチを削除します。

コマンド形式

git branch -d [ブランチ名]

コマンド実行例

$ git branch
  hogehoge1
* master
$ git branch -d hogehoge1
Deleted branch hogehoge1 (was d24019c).
$ git branch
* master

ブランチを削除しました。

ブランチを切り替え

ブランチを切り替えます。

コマンド形式

git checkout [ブランチ名]

コマンド実行例

$ git checkout hogehoge1
Switched to branch 'hogehoge1'
$ git branch
* hogehoge1
  master

ブランチを切り替えました。

ブランチをマージ

ブランチをマージします。

コマンド形式

git merge [ブランチ名]

コマンド実行例

$ git merge hogehoge1
Updating ae123ff..d24019c
Fast-forward
 hogehoge1.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 hogehoge1.txt

ブランチをマージしました。

コメント履歴を確認

コメント履歴を確認します。

コマンド形式

git log

コマンド実行例

$ git log
commit ae123ff10573e9558d0f0f8e97285858d47639fa (HEAD -> master)
Author: user <user@email.com>
Date:   Mon Aug 19 13:02:38 2024 +0900

    add: hogehoge.txtのファイル追加

   Git/GitHubの動作確認を行うため、hogehoge.txtを追加する。

コメント履歴を確認します。

まとめ

gitコマンドの概要と使い方を紹介しました。

gitコマンドは
  • リポジトリを作成/初期化できる
  • リポジトリをコピーできる
  • リポジトリの状態確認できる
  • ファイルをステージングエリアに追加できる
  • ファイル削除できる
  • ステージングエリアへの追加内容を取り消せる
  • ワーキングエリアの変更内容を取り消せる
  • ワークツリーとステージングエリアの差分を確認できる
  • ステージングエリアと前回コミットとの差分を確認できる
  • ステージングエリアの変更をリポジトリにコミットできる
  • ローカルリポジトリとリモートリポジトリを紐付けできる
  • ローカルリポジトリの変更をリモートリポジトリに反映できる
  • リモートリポジトリの変更をローカルリポジトリに反映できる
  • 現在のブランチを表示できる
  • ブランチを作成できる
  • ブランチを削除できる
  • ブランチを切り替えできる
  • ブランチをマージできる
  • コメント履歴を確認できる

gitコマンドは、ソースコードの管理で欠かせないコマンドです。
かなり多用するコマンドですので、覚えて実践していきましょう。

  • URLをコピーしました!
目次