その他

Gitコマンドチートシート:初心者向けの簡単ガイド【Git/CUI】

その他
この記事は約7分で読めます。

はじめに

株式会社インプルの奈良です。

Gitを用いて開発するときに、GUIクライアントに慣れすぎて、CUI(CLI)を疎かにしていませんか?

確かにGUIクライアントを利用する方が操作方法が確立されているため安定性があります。

しかし、GUIクライアントが重いときはターミナルからコマンドを叩いた方が圧倒的に早い・・・!だけではなく、エンジニアぽくてカッコいいですよね(大切)

この記事では、GUIクライアントに慣れすぎてCUI(CLI)を疎かにしている全Gitユーザーに向けてGitの基本的なコマンドと簡単な解説をまとめます。

Gitのセットアップ

git config

下記のコマンドでGitのユーザー名とメールアドレスを設定します。この設定により、gitのコミット等の操作を行えるようになります。

git config --global user.name "あなたの名前"
git config --global user.email "あなたのメールアドレス"

リポジトリの作成

git init

新しいGitリポジトリを初期化します。この作業を行うことで、新しいプロジェクトでGitを使用する準備が整います。やっていることはローカルリポジトリを作成しています。

git init

git clone

既存のリポジトリのコピーを作成します。既存のプロジェクトをローカルで作業するためにダウンロードします。リポジトリURLはGitHubやGitLabからコピーできます。

git clone [リポジトリURL]

変更のステージングとコミット

git status

どのファイルが変更されたか、またはステージングされているかを確認します。

git status

git add

変更をステージングエリアに追加します。この作業はコミットの準備段階です。

git add [ファイル名]
git add .

git commit

ステージングされた変更をリポジトリに記録します。コミットメッセージには、行った変更の説明を含めることが重要です。

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

リモートリポジトリとの連携

git push

ローカルのコミットをリモートリポジトリにアップロードします。

git push origin [ブランチ名]

git pull

リモートリポジトリから最新の変更を取得して、ローカルリポジトリに統合します。

git pull

ブランチの操作

git branch

新しいブランチを作成するか、利用可能なブランチのリストを表示します。

git branch [ブランチ名] # 新しいブランチを作成
git branch # ブランチのリストを表示
git branch -d [ブランチ名] # ブランチの削除

git checkout

別のブランチに切り替えるか、新しいブランチを作成して切り替えます。

git checkout [ブランチ名]
git checkout -b [新しいブランチ名]

マージとコンフリクトの解決

git merge

別のブランチの変更を現在のブランチに統合します。

git merge [ブランチ名]

コンフリクトが発生した場合は、対象のファイルを開いて手動で解決し、解決後に再度コミットを行います。

作業中の変更を一時保存する

git stash

作業中の変更を一時的に保存して作業ディレクトリをクリーンな状態に戻します。ことができます。

git stash # 現在の変更をスタッシュ

git stash pop

スタッシュされた変更を現在のワーキングディレクトリに再適用し、同時にそのスタッシュをリストから削除します(後で再び取り出して作業を再開する)。最新のスタッシュがデフォルトで適用されますが、特定のスタッシュを適用したい場合は、スタッシュの名前(例:stash@{0})を指定できます。

git stash pop # スタッシュした変更を取り出す
git stash pop stash@{0}

git stash list

現在保存されているすべてのスタッシュのリストを表示します。これにより、どのようなスタッシュが保存されているかを確認できます。

git stash list

git stash drop

指定されたスタッシュエントリをスタッシュリストから削除します。スタッシュを名前で指定しない場合、最新のスタッシュ(stash@{0})が削除されます。

git stash drop
git stash drop stash@{0}

コミット履歴の確認

git log

コミット履歴には、各コミットの詳細と共にハッシュが表示されます。以下のコマンドを実行すると、コミット履歴が表示され、そこから任意のハッシュを見つけることができます。

git log

特定のファイルのコミット履歴の確認

特定のファイルやディレクトリに関連するコミットのみを表示したい場合は、以下のようにコマンドを使用します。

git log -- [ファイルパス]

最新のコミットハッシュのみを表示

最新のコミットのハッシュのみを表示するには、以下のコマンドを実行します。

git log -1 --format="%H"

特定の条件で検索

特定の作者によるコミットや、ある期間内のコミットを検索する場合は、--author--since--untilオプションを使用します。

git log --author="ユーザー名"
git log --since="2023-01-01" --until="2023-12-31"

過去のコミットを取り消す

git revert

選択したコミットの変更を取り消す新しいコミットを作成します。これは、過去の変更を無かったことにするのではなく、その変更を打ち消すための安全な方法です。

git revert [コミットハッシュ]

特定のコミットを適用する

git cherry-pick

別のブランチの特定のコミットを現在のブランチに適用します。これにより、必要な変更のみをピックアップして適用することができます。

git cherry-pick [コミットハッシュ]

ブランチの基点変更と履歴整理

git rebase

ブランチのコミット履歴を整理するために使用されます。特に、メインブランチに対して行われた更新を現在の作業ブランチに適用したい時に便利です。

git rebase [新しいベースブランチ名] 

ファイルの変更点を比較

git diff

ファイルの変更点を比較して表示するために用います。作業中の変更点やステージングされた変更、過去のコミットとの差分を確認することができます。

git diff

リモートの最新情報を取得

git fetch

リモートリポジトリから最新の情報をローカルに取得するために使用します。取得後、変更を適用するためには別途git mergeやgit rebaseの実行が必要です。

git fetch

コミットした内容を取り消す

git reset

現在のブランチのHEADを指定した状態に戻します。このコマンドによって、ステージングエリア(インデックス)やワーキングディレクトリの変更を取り消すことができます。

git reset # 最後のコミットを保持しながら、ステージングされた変更を取り消します。
git reset --soft [コミットハッシュ] # 指定したコミットまで戻りますが、ワーキングディレクトリの変更はそのまま保持します。
git reset --hard [コミットハッシュ] # 指定したコミットまで完全に戻り、ワーキングディレクトリの変更も破棄します。

リモートリポジトリを管理するための様々な操作

リモートリポジトリの一覧表示

リポジトリに設定されているすべてのリモートリポジトリを一覧表示します。

git remote

リモートリポジトリの詳細を表示

各リモートリポジトリの名前とURLを詳細に表示します。

git remote -v

新しいリモートリポジトリを追加

新しいリモートリポジトリを追加します。例えば、GitHubのリポジトリをoriginという名前で追加する場合は、git remote add origin <GitHubのリポジトリURL>のようになります。

git remote add <名前> <URL>

リモートリポジトリの名前を変更

既存のリモートリポジトリの名前を変更します。

git remote rename <旧名前> <新名前>

リモートリポジトリのURLを変更

指定したリモートリポジトリのURLを変更します。

git remote set-url <名前> <新しいURL>

リモートリポジトリを削除

指定したリモートリポジトリの設定を削除します。

git remote rm <名前>

さいごに

僕はGUIが好き。