Gitはバージョン管理システムで、コードの変更履歴を記録したり、チームでの開発をスムーズにするための今や必須ツール。最初は難しく感じるかもしれないけど、基本的なコマンドはそんなに多くない。
この記事では、実際の開発現場で使う頻度の高いGitコマンドを、初心者にもわかりやすく解説していく。これ読めば、明日から自信を持ってGit使えるようになるはず。
Gitとは?なぜ必要なのか
Gitは、ファイルの変更履歴を記録・管理するためのツール。
例えば、こんな経験ない?
- コード修正したら動かなくなって、元に戻したいけど戻せない
- 「最終版.txt」「最終版2.txt」「最終版_本当に最終.txt」みたいなファイルが増えまくる
- 複数人で同じファイル編集して、誰がどこ変えたかわからなくなる
Gitを使えば、こういう問題が全部解決する。変更履歴が自動で記録されるから、いつでも過去の状態に戻せるし、複数人での開発もスムーズになる。
Gitの基本概念
コマンド学ぶ前に、3つの重要な概念を理解しておこう。
ワークディレクトリ:実際に作業してるフォルダのこと。ここでファイル編集する。
ステージングエリア(インデックス):コミットする前の準備エリア。変更したファイルの中から、記録したいものだけ選んで置く場所。
リポジトリ:変更履歴が保存される場所。ローカルリポジトリ(自分のPC内)とリモートリポジトリ(GitHub等のサーバー上)がある。
初期設定のコマンド
Git初めて使う時は、まず自分の名前とメールアドレスを設定する。
git config --global user.name "あなたの名前"
git config --global user.email "your-email@example.com"この情報は、誰がコミット(変更を記録)したか識別するために使われる。
一回設定すれば、もう不要で後で編集も可能。
設定内容確認するには、これを使用。
git config --listリポジトリの作成・複製
新しくリポジトリを作る
既存のプロジェクトフォルダでGit使い始める場合は、そのフォルダ内でこのコマンド実行。
git initこれで「.git」っていう隠しフォルダが作られて、そこに変更履歴が保存されるようになる。
既存のリポジトリをコピーする
GitHubとかにあるリポジトリを自分のPCにコピーしたい時は、cloneコマンドを使う。
git clone https://github.com/ユーザー名/リポジトリ名.gitこれで、リモートリポジトリの内容が丸ごと自分のPC内にコピーされる。
日常的に使う基本コマンド
ここからが一番重要。実際の開発で毎日使うコマンドを紹介していく。
現在の状態を確認する
git statusこのコマンドめちゃくちゃよく使う。どのファイルが変更されてるか、ステージングエリアに何があるか確認できる。困ったら、まずこれ実行する癖つけとこう。
変更をステージングエリアに追加する
// ファイルを指定する場合
git add ファイル名
// 変更を全て追加する場合
git add .ただし、「.」で全部追加すると、不要なファイルまで追加しちゃうことあるから注意。
変更を記録する(コミット)
git commit -m "コミットメッセージ"コミットメッセージには、何を変更したか簡潔に書く。例えば「ログイン機能を追加」「バグを修正」とか。後から履歴見た時にわかりやすいメッセージ心がけよう。
addとcommit同時に行う場合は、このショートカットも使える(ただし新規ファイルには使えない)。
git commit -am "メッセージ"変更履歴を見る
git logこれまでのコミット履歴が新しい順に表示される。誰が、いつ、何を変更したかわかる。
見やすく表示するには、このオプション便利。
git log --oneline --graphリモートリポジトリとの連携
リモートリポジトリを追加する
git remote add origin https://github.com/ユーザー名/リポジトリ名.git「origin」は、リモートリポジトリの別名。慣習的にorigin使うけど、別の名前でも大丈夫。
リモートリポジトリに送信する(プッシュ)
git push origin main自分のPCでコミットした内容を、リモートリポジトリに反映させる。「main」はブランチ名で、プロジェクトによっては「master」の場合もある。
初回のプッシュ時は、こんな感じで「-u」オプションつける。
git push -u origin mainこれで、次から「git push」だけで済むようになる。
リモートリポジトリから取得する(プル)
git pull origin mainリモートリポジトリの最新状態を、自分のPCに取り込む。チームで開発してる場合、作業始める前に必ずpullして、最新の状態にしとこう。
ブランチの操作
ブランチは、メインの開発ラインから分岐して、独立して作業するための機能。新機能開発する時や、実験的な変更試す時に使う。
ブランチ一覧を見る
git branch現在のブランチには「*」がつく。
新しいブランチを作る
git branch ブランチ名ブランチを切り替える
git checkout ブランチ名ブランチの作成と切り替え同時に行うには、これ使う。
git checkout -b ブランチ名最近のGitでは、checkoutの代わりにswitchコマンドも使える。
git switch ブランチ名
git switch -c ブランチ名 # 作成して切り替えブランチを統合する(マージ)
別ブランチでの変更を、現在のブランチに統合する。
git merge ブランチ名例えば、mainブランチにfeatureブランチの内容統合したい場合は、まずmainブランチに切り替えてから、mergeコマンド実行する。
変更を取り消す・元に戻す
ワークディレクトリの変更を取り消す
git checkout -- ファイル名まだaddしてない変更を、全部破棄して元に戻す。
ステージングエリアから除外する
git reset HEAD ファイル名addしたけど、やっぱりコミットしたくない時に使う。ファイルの変更内容は残る。
直前のコミットを修正する
git commit --amendコミットメッセージ間違えた時や、コミットし忘れたファイル追加したい時に便利。
よく使うその他のコマンド
差分を確認する
git diffワークディレクトリとステージングエリアの差分が表示される。何を変更したか詳しく見たい時に使う。
ファイルを削除する
git rm ファイル名ファイル削除して、その変更をステージングエリアに追加する。
ファイル名を変更する
git mv 旧ファイル名 新ファイル名ファイル名の変更を、Gitに認識させながら行う。
一時的に変更を退避する
git stash今の変更を一時的に保存して、ワークディレクトリをクリーンな状態に戻す。別のブランチに急いで切り替えたい時とかに便利。
退避した変更戻すには、これ使う。
git stash pop初心者がよくやる失敗と対処法
コミットメッセージ間違えた
直前のコミットなら、amendで修正できる。
git commit --amend -m "正しいメッセージ"間違ったファイルをコミットしちゃった
直前のコミット取り消すには、これ使う。
git reset --soft HEAD^これでコミットは取り消されるけど、変更内容は残るから、再度正しくコミットできる。
ブランチ間違えてコミットした
コミットを別のブランチに移動させられる。まず正しいブランチ作成・切り替えて、これ実行する。
git cherry-pick コミットIDその後、元のブランチでそのコミット取り消す。
コンフリクト(競合)が発生した
複数人で同じファイル編集すると、マージ時にコンフリクト起こることある。その場合、該当ファイル開いて、手動で修正する必要がある。
ファイル内に「<<<<<<<」「=======」「>>>>>>>」みたいなマーカーが表示されるから、正しい内容残してマーカー削除して、再度コミットする。
まとめ
Gitの基本コマンド紹介してきた。最初はたくさんあって大変に感じるかもだけど、実際に頻繁に使うのはこの5つ。
- git status(状態確認)
- git add(ステージング)
- git commit(記録)
- git push(送信)
- git pull(取得)
まずはこれら使いこなせるようになること目指そう。慣れてきたら、ブランチ操作や履歴の修正とか、より高度な使い方にも挑戦してみて。
Gitは使えば使うほど便利さわかってくる。最初は失敗恐れず、どんどん試してみるのが上達の近道。ローカルリポジトリで練習すれば、誰にも迷惑かけずに学べるからね。
