Git/GitHubとは?
Gitは分散型バージョン管理システムで、コードの変更履歴を記録・管理します。GitHubはGitリポジトリをホスティングし、チーム開発を支援するプラットフォームです。
初期設定
最初に一度だけ設定します
# ユーザー名とメールアドレスを設定
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 設定確認
git config --list
● --global: 全リポジトリに適用
● --local: 現在のリポジトリのみ
リポジトリ作成・クローン
# 新規リポジトリ作成
git init
# リモートリポジトリをクローン
git clone https://github.com/user/repo.git
# ブランチ指定でクローン
git clone -b branch-name https://github.com/user/repo.git
init
新規作成
clone
リモートをコピー
ステージング・コミット
# 状態確認
git status
# ステージングエリアに追加
git add file.txt # 特定ファイル
git add . # すべての変更
# コミット
git commit -m "コミットメッセージ"
# 追加とコミットを同時実行
git commit -am "メッセージ"
-aオプションは新規ファイルには使えません
ブランチ操作
# ブランチ一覧
git branch # ローカル
git branch -r # リモート
git branch -a # すべて
# ブランチ作成
git branch feature-branch
# ブランチ切り替え
git checkout feature-branch
# 作成と切り替えを同時実行
git checkout -b feature-branch
# ブランチ削除
git branch -d feature-branch
● -d: マージ済みのみ削除
● -D: 強制削除
リモート操作
Push(アップロード)
# リモートに送信
git push origin main
# 初回push
git push -u origin main
-uで上流ブランチを設定
Pull(ダウンロード)
# リモートから取得+マージ
git pull origin main
# リベース方式
git pull --rebase
Fetch(取得のみ)
# リモートから取得のみ
git fetch origin
# すべてのリモートから
git fetch --all
マージ・リベース
マージ(統合)
# feature-branchをmainに統合
git checkout main
git merge feature-branch
# コンフリクト解決後
git add .
git commit -m "Merge feature-branch"
リベース(履歴整理)
# feature-branchをmainの先端に移動
git checkout feature-branch
git rebase main
# コンフリクト解決後
git add .
git rebase --continue
変更の取り消し・修正
ファイルの変更を破棄
# 特定ファイル
git checkout -- file.txt
# すべて
git checkout -- .
ステージング解除
# 特定ファイル
git reset HEAD file.txt
# すべて
git reset HEAD .
コミット取り消し
# 直前のコミットを取り消し
git reset --soft HEAD~1
# 変更も破棄
git reset --hard HEAD~1
--hardは危険
履歴・差分確認
コミット履歴
# 履歴表示
git log
# 1行表示
git log --oneline
# グラフ表示
git log --graph --oneline --all
# 特定ファイルの履歴
git log file.txt
差分確認
# 作業ディレクトリとステージング
git diff
# ステージングとHEAD
git diff --cached
# ブランチ間の差分
git diff branch1 branch2
# 特定ファイルの差分
git diff file.txt
GitHub固有操作
リモートリポジトリ管理
# リモート一覧
git remote -v
# リモート追加
git remote add origin https://github.com/user/repo.git
# リモートURL変更
git remote set-url origin https://github.com/user/new-repo.git
# リモート削除
git remote remove origin
プルリクエストの流れ
git checkout -b feature-branch
コードを編集・コミット
git push -u origin feature-branch
GitHubでPull Request作成
レビュー・マージ
実務で役立つTips
.gitignore
不要なファイルをバージョン管理から除外。node_modules/、.envなどを記述
Stash(一時保存)
git stashで変更を退避、git stash popで復元
タグ管理
git tag v1.0.0でバージョンをマーク、git push --tagsでリモートへ
SSH認証
SSHキーを設定すると毎回パスワード入力不要。GitHubのSettings→SSH keysで登録
基本的なワークフロー
この流れを繰り返してバージョン管理を行います
注意が必要なコマンド
git reset --hard
コミット履歴と変更を完全削除。復元不可能
git push --force
リモート履歴を強制上書き。チーム開発では要注意
git clean -fd
未追跡ファイルを完全削除。取り消し不可