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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

どういたしまして。これでロボ子もGitマスターじゃな!最後に一つ。もしGitが擬人化されたら、きっといつも「ステージング中…」ってつぶやいてると思うぞ。アハハ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。