萌えハッカーニュースリーダー

2025/05/02 15:22 Git Commands That Cover 90% of a Developer's Daily Workflow

出典: https://jsdev.space/15-git-commands/
hakase
博士

やあ、ロボ子。今日はGitの基本コマンドについておさらいするのじゃ。

roboko
ロボ子

博士、こんにちは。Gitの基本コマンドですね!承知いたしました。よろしくお願いいたします。

hakase
博士

まずは`git init`からじゃ。これは現在のフォルダに新しいGitリポジトリを作るコマンドじゃぞ。プロジェクトのGit追跡を設定して、コミット履歴とかブランチとかのメタデータが入った`.git`ディレクトリを作るんじゃ。

roboko
ロボ子

なるほど、プロジェクトの初期化ですね。では、リモートリポジトリをローカルにコピーする場合はどうすれば良いでしょうか?

hakase
博士

ふむ、それには`git clone`を使うんじゃ。例えば、`git clone https://github.com/test/hello-world.git`とすれば、リモートリポジトリのすべてのファイル、履歴、ブランチをコピーできるぞ。

roboko
ロボ子

`git clone`は便利ですね!ローカルでの作業中、現在の状態を確認するにはどうすれば良いですか?

hakase
博士

`git status`じゃ。ワーキングディレクトリとステージングエリアの状態を表示してくれるぞ。変更されたファイル、ステージングされたファイル、追跡されていないファイルがわかるんじゃ。

roboko
ロボ子

状態を確認したら、次は変更をコミットする準備ですね。`git add`でファイルをステージングエリアに追加するんでしたね。

hakase
博士

その通り!`git add #file`で特定のファイルを追加、`git add .`で現在のディレクトリ以下のすべての変更を追加じゃ。`git status`でどのファイルをステージングするか確認するのがおすすめじゃぞ。

roboko
ロボ子

ファイルをステージングしたら、`git commit`で変更を保存ですね。コミットメッセージは重要ですか?

hakase
博士

もちろんじゃ!`git commit -m "@feature auth added"`みたいに、変更理由を明確かつ簡潔に書くのが大事じゃぞ。後で履歴を見返すときに役立つんじゃ。

roboko
ロボ子

コミットした後で、変更点を確認したい場合はどうすれば良いでしょうか?

hakase
博士

`git diff`を使うんじゃ。`git diff`だけだと、まだステージングされていない変更が表示されるぞ。`git diff --staged`なら、ステージングされているけどコミットされていない変更が見れるんじゃ。

roboko
ロボ子

なるほど。過去のコミット履歴を確認するには`git log`ですね。

hakase
博士

`git log --oneline --graph --decorate`を使うと、コンパクトな視覚的履歴が見れて便利じゃぞ。

roboko
ロボ子

コミットを取り消したい場合はどうすれば良いですか?

hakase
博士

`git reset`じゃ。`git reset #file`でステージングされた変更を元に戻せるぞ。`git reset --soft HEAD~1`だと、コミットを元に戻すが変更は保持されるんじゃ。`git reset --hard HEAD~1`は、コミットを元に戻して変更を削除するから、使うときは要注意じゃぞ!

roboko
ロボ子

`--hard`は危険ですね。ブランチを切り替えるには`git checkout`を使うんでしたね。

hakase
博士

そうじゃ。`git checkout main`でブランチを切り替えられるぞ。ファイルを最後にコミットされたバージョンに戻したいなら、`git checkout -- index.html`じゃ。でも、Git 2.23以降では、`git restore #file`や`git switch #branch`が推奨されてるみたいじゃな。

roboko
ロボ子

新しいブランチを作成したり、既存のブランチを削除するにはどうすれば良いですか?

hakase
博士

`git branch`コマンドじゃ。`git branch`でブランチをリスト表示、`git branch @feature/login-form`で新しいブランチを作成、`git branch -d old-feature`でブランチを削除できるぞ。

roboko
ロボ子

ブランチをマージするには`git merge`ですね。

hakase
博士

`git checkout main; git merge @feature/login-form`で、`feature`ブランチを`main`ブランチにマージできるぞ。競合が発生したら、手動で解決する必要があるんじゃ。

roboko
ロボ子

リモートリポジトリから変更をダウンロードしてマージするには`git pull`ですね。

hakase
博士

`git pull origin main`は、`git fetch`と`git merge`を組み合わせたものじゃ。`git pull --rebase`を使うと、不要なマージコミットを避けられるぞ。

roboko
ロボ子

ローカルの変更をリモートリポジトリにアップロードするには`git push`ですね。

hakase
博士

`git push origin main`で、他の人と作業を共有できるぞ。

roboko
ロボ子

まだコミットしたくない変更を一時的に保存するには`git stash`ですね。

hakase
博士

`git stash`でワーキングディレクトリをクリアにして、ブランチをクリーンに切り替えられるぞ。`git stash pop`で退避させた変更を復元、`git stash list`で全ての退避を表示できるんじゃ。

roboko
ロボ子

リモートリポジトリを管理するには`git remote`ですね。

hakase
博士

`git remote -v`でリモートをリスト表示、`git remote add origin https://github.com/user/repo.git`で新しいリモートを追加、`git remote rename origin upstream`でリモートの名前を変更できるぞ。

roboko
ロボ子

Gitの基本コマンド、よくわかりました!ありがとうございます、博士!

hakase
博士

どういたしまして。これでロボ子もGitマスターじゃな!最後に一つ。もしGitが擬人化されたら、きっといつも「ステージング中…」ってつぶやいてると思うぞ。アハハ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search