Gitはファイルのバージョンを管理するためのツールです。
Linuxではgitコマンドによりファイルバージョンを管理することができます。
本記事では、gitコマンドの概要と使い方を紹介します。
gitコマンドの概要と使い方を紹介します
- gitコマンドの概要
- gitコマンドの使い方
コマンド概要
gitは、バージョン管理システムであり、ソースコードやドキュメントの変更履歴を管理することができます。
gitを使うことで、複数人での共同作業が容易になり、変更履歴の追跡やブランチを使った並行開発が可能になります。
リポジトリ(repository)という単位でプロジェクトを管理でき、その中でファイルの変更や追加することができます。
コマンドオプション
コマンドオプションを紹介します。
コマンドオプション | 意味 |
---|---|
config | Gitの設定変更/設定確認 |
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 config -list
コマンド実行例
$ git config --list
user.name=user
user.email=user@email.com
リポジトリを作成/初期化
リポジトリを作成/初期化します。
コマンド形式
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 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':
現在のブランチを表示
現在のブランチを表示します。
コマンド形式
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コマンドは、ソースコードの管理で欠かせないコマンドです。
かなり多用するコマンドですので、覚えて実践していきましょう。