GitのCUIコマンドとは?
GitのCUI(Command Line Interface)コマンドは、バージョン管理を効率的に行うための強力なツールです。
GUIも便利ですが、CUIの方が詳細な操作ができるため、開発者には欠かせないスキルとなってます。
私も普段はSourceTreeを使ってるのですが、複雑なgit操作したり、サーバに接続したりする際はCUIでの操作が必要となるため、その備忘録としても記事としてまとめていきます!
よく使うGitコマンド
以下にGitでよく使うCUIコマンド14個を紹介します。
git init
まずは基本のgit init
コマンドです。
このコマンドは、新しいGitリポジトリを作成する際に使います。初めてプロジェクトをGitで管理するなら、これが出発点になります!
$ git init
実行結果:
Initialized empty Git repository in /path/to/your/project/.git/
これで、ディレクトリがGitリポジトリとして初期化されました!
git clone
次に、既存のリポジトリをコピーするgit clone
です。これは、リモートリポジトリの内容をローカルに持ってくる時に使います。
プロジェクトに参加する時に必須のコマンドです。
$ git clone https://github.com/username/repository.git
実行結果:
Cloning into 'repository'...
remote: Counting objects: 100, done.
remote: Compressing objects: 100% (80/80), done.
Receiving objects: 100% (100/100), 1.23 MiB | 1.23 MiB/s, done.
これでリポジトリがローカルにコピーされます。
git add
変更をステージングエリアに追加するgit add
もよく使います。
ファイルをコミットする前に、まずはgit add
で準備しましょう。全ての変更を追加するにはgit add .
で行えます。
$ git add .
git commit
変更をリポジトリに記録するgit commit
も基本です。
このコマンドで、作業内容をメッセージと共に保存します。メッセージは分かりやすく書くのがポイントです!
$ git commit -m "Initial commit"
実行結果:
[master (root-commit) abcdef1] Initial commit
1 file changed, 1 insertion(+)
create mode 100644 filename.txt
変更がコミットされました!
git status
現在の状態を確認するgit status
も重要です。
どのファイルがステージングされているか、まだ変更があるかをチェックできます。作業中に何度も使うことになりますね。
$ git status
実行結果:
On branch master
nothing to commit, working tree clean
現在の状態が確認できます!
git push
ローカルの変更をリモートリポジトリに送信するgit push
。
これでチーム全体に変更を共有できます。非常によく使うコマンドです。
$ git push origin master
実行結果:
Counting objects: 5, done.
Writing objects: 100% (5/5), 400 bytes | 400.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To https://github.com/username/repository.git
* [new branch] master -> master
リモートリポジトリに変更が反映されました!
git pull
リモートリポジトリの最新の変更を取得するgit pull
も必須です。
チームの他のメンバーの変更を取り込み、自分の作業環境を最新にすることができます。
$ git pull origin master
実行結果:
From https://github.com/username/repository
* branch master -> FETCH_HEAD
Already up to date.
これでリモートリポジトリの変更が取得されました!
git branch
ブランチを作成・管理するgit branch
もよく使います。
新機能を追加する時やバグ修正の際に、作業を分けるために便利です。ブランチの作成はgit branch <ブランチ名>
で行います。
以下のコマンドで新しくブランチを作れます。
git branch feature-branch
git merge
ブランチを統合するにはgit merge
を使います。
作業が終わったら、メインブランチに統合して一つのプロジェクトにまとめます。
$ git merge feature-branch
実行結果:
Updating abcdef1..1234567
Fast-forward
filename.txt | 1 +
1 file changed, 1 insertion(+)
ブランチが統合されました!
git log
最後に、リポジトリの履歴を確認するgit log
です。
過去のコミットメッセージや変更履歴を追うことができます。作業の振り返りに活用します。
$ git log
実行結果:
commit 1234567 (HEAD -> master)
Author: Your Name <your.email@example.com>
Date: Mon May 21 10:00:00 2024 +0900
Add feature
commit abcdef1
Author: Your Name <your.email@example.com>
Date: Mon May 21 09:00:00 2024 +0900
Initial commit
リポジトリの履歴が表示されました!
git history
git history
は、git log
に似ていますが、より簡潔に過去のコミットを一覧表示します。
特にGUIツールや拡張機能で使われることが多いです。CUIでの使用例として、git log --oneline
を紹介します。
$ git log --oneline
実行結果:
3f6a4b1 (HEAD -> master) Add feature
9b1c6d7 Revert "Initial commit"
abcdef1 Initial commit
簡潔な形式でコミット履歴が表示されました!
git revert
git revert
は、指定したコミットの変更を打ち消す新しいコミットを作成します。
ミスをした場合や特定の変更を取り消したいときに使います。
$ git revert abcdef1<commit hash>
実行結果:
[master 9b1c6d7] Revert "Initial commit"
1 file changed, 1 deletion(-)
指定したコミットの変更を取り消す新しいコミットが作成されました!
git checkout
git checkout
は、特定のブランチやコミットに作業ディレクトリを切り替えるためのコマンドです。
新しいブランチを作成することもできます。使用頻度の高い必須のコマンドですね。
$ git checkout -b new-branch
実行結果:
Switched to a new branch 'new-branch'
新しいブランチに切り替えました!
git cherry-pick
git cherry-pick
は、特定のコミットを現在のブランチに適用するためのコマンドです。
必要な変更だけを選んで適用する際に便利です。
$ git cherry-pick 1234567
実行結果:
[master 3f6a4b1] Add feature
Date: Mon May 21 10:00:00 2024 +0900
1 file changed, 1 insertion(+)
指定したコミットの変更が現在のブランチに適用されました!
まとめ
以上が、Gitでよく使うCUIコマンドの紹介でした。
GitのCUIコマンドは、効率的なバージョン管理に欠かせないツールです。普段GUIのアプリでGit操作をしている方も今回紹介したコマンドを覚えておくことで、GUIツールでうまく行かなかった際の作業がスムーズになりますね。