Git と GitHub を使い始めたときに迷いやすいのは、コマンドそのものよりも「どのタイミングで何を使うのか」だと思います。
この記事では、ローカルで作ったプロジェクトを GitHub に置く流れ、GitHub から手元に持ってくる流れ、普段の作業でよく使うコマンドを順番に整理します。
ローカルのプロジェクトを Git 管理する
まずは、今いるディレクトリを Git で管理できる状態にします。
git initこれで、そのディレクトリの変更履歴を Git が追跡できるようになります。
次に、GitHub 上のリモートリポジトリと紐づけます。
git remote add origin "URL"URL には、GitHub のリポジトリ URL を指定します。HTTPS と SSH のどちらを使うかで形式が変わります。
HTTPS: https://github.com/ユーザー名/レポジトリ名
SSH: git@github.com:ユーザー名/レポジトリ名.gitすでに登録済みのリモート URL を変更したい場合は、次のコマンドを使います。
git remote set-url origin "URL"GitHub のリポジトリを手元に持ってくる
すでに GitHub にあるリポジトリをローカル環境へダウンロードする場合は、clone を使います。
git clone リモートリポジトリのURLclone すると、リポジトリのファイルだけでなく Git の履歴やリモート設定も一緒に取得できます。新しく開発に参加するときは、まずこのコマンドを使うことが多いです。
普段の変更を記録する
ファイルを編集したら、まず Git の記録対象に追加します。
git add ファイル名複数の変更をまとめて追加したい場合は、次のように書くこともできます。
git add .追加した変更は、commit で履歴として保存します。
git commit -m "コミットメッセージ"コミットメッセージには、「何を変更したか」が後から分かる内容を書いておくと便利です。
ブランチを使って作業を分ける
ブランチを作ると、メインの作業場所を保ったまま別の作業を進められます。
git branch 作成するブランチ名作成したブランチへ移動するには、switch を使います。
git switch 移動したいブランチ名古い書き方として checkout も使えます。
git checkout 移動したいブランチ名ブランチを作成して、そのまま移動したい場合は次のように書けます。
git switch -c 作成するブランチ名作業が終わったブランチを main などに統合する場合は、まず統合先のブランチへ移動します。
git switch main
git merge 統合したいブランチ名ブランチの一覧を確認したいときは、用途に応じて次のコマンドを使います。
git branch # ローカルブランチ
git branch -r # リモートブランチ
git branch -a # ローカルとリモートの両方ローカルとリモートを同期する
ローカルでコミットした内容を GitHub に送るときは、push を使います。
git push origin <ブランチ名>はじめて push するブランチでは、次のように -u を付けておくと、それ以降は git push だけで同じリモートブランチへ送れるようになります。
git push -u origin main今いるブランチをそのまま push したい場合は、HEAD を使う書き方もあります。
git push origin HEAD反対に、GitHub 側の変更をローカルへ取り込むときは pull を使います。
git pull origin main共同開発では、作業を始める前に pull して最新状態にしておくと、差分の衝突を減らしやすくなります。
過去のコミットを確認して戻す
コミット履歴を短く確認したいときは、次のコマンドが便利です。
git log --oneline特定のコミット時点を一時的に見たい場合は、switch --detach を使います。
git switch --detach コミットハッシュこの状態は通常のブランチ作業とは少し違うため、確認が終わったら元のブランチへ戻ります。
git switch main特定のファイルだけを過去のコミット時点に戻したい場合は、restore を使います。
git restore --source=コミットハッシュ -- 戻したいファイルのパスまとめ
Git の基本操作は、次の流れで覚えると整理しやすいです。
作業する
git add で変更を追加する
git commit で履歴に残す
git push で GitHub に送る
git pull で GitHub の変更を取り込む最初はコマンドを丸暗記するよりも、「ローカルで記録する操作」と「リモートと同期する操作」を分けて考えると理解しやすくなります。