Git/GitHub チートシート

エンジニアのための実践リファレンス

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 + merge を一度に実行

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

プルリクエストの流れ

1

git checkout -b feature-branch

2

コードを編集・コミット

3

git push -u origin feature-branch

4

GitHubでPull Request作成

5

レビュー・マージ

実務で役立つ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で登録

基本的なワークフロー

1 git pull
2 コード編集
3 git add .
4 git commit
5 git push

この流れを繰り返してバージョン管理を行います

注意が必要なコマンド

git reset --hard

コミット履歴と変更を完全削除。復元不可能

git push --force

リモート履歴を強制上書き。チーム開発では要注意

git clean -fd

未追跡ファイルを完全削除。取り消し不可