【Git】Gitコマンドチートシート‐シチュエーション編 - j-komatsu/myCheatSheet GitHub Wiki

Gitコマンド チートシート-シチュエーション編

目的

Gitの基本操作や応用技術をまとめ、バージョン管理やコラボレーションを効率的に行う。
各フローごとに、シチュエーションや具体例を含めたガイドを提供。


インデックス

  1. ユーザー作成・設定
  2. リポジトリ作成・編集
  3. リポジトリからクローンしてくる
  4. ローカルで編集、コミット、プッシュ、プル
    • コミットログの操作を含む
  5. ブランチ操作
  6. その他

1. ユーザー作成・設定

主なシチュエーション

  • 初めてGitをインストールして設定を行う。
  • 複数のプロジェクトで異なるユーザー情報を使いたい。

チート内容(説明付き)

  • Gitのインストール確認
    (Gitが正しくインストールされているかを確認する)

    git --version
  • ユーザー名とメールアドレスの設定(グローバル)
    (全リポジトリで使用するユーザー情報を設定する)

    git config --global user.name "Your Name"
    git config --global user.email "[email protected]"
  • 現在の設定確認
    (設定済みのユーザー情報を表示する)

    git config --global --list
  • 設定をリポジトリ単位で行う
    (特定のリポジトリで異なるユーザー情報を設定する)

    git config user.name "Repo Specific Name"
    git config user.email "[email protected]"

2. リポジトリ作成・編集

主なシチュエーション

  • 新規プロジェクトを開始する。
  • 既存のプロジェクトをGit管理下に置く。
  • リモートリポジトリとの接続を行う。

チート内容(説明付き)

  • 新しいリポジトリの作成
    (現在のフォルダをGit管理下にする)

    git init
  • 既存プロジェクトをGit管理下に追加
    (既存プロジェクトをGitで管理するために初期化し、最初の変更をコミットする)

    git init
    git add .
    git commit -m "Initial commit"
  • リモートリポジトリを追加
    (リモートリポジトリを現在のプロジェクトに関連付ける)

    git remote add origin <repository-URL>
  • リモートリポジトリのURL確認
    (現在設定されているリモートリポジトリのURLを確認する)

    git remote -v
  • リモートリポジトリの変更
    (既存のリモートリポジトリURLを新しいものに変更する)

    git remote set-url origin <new-repository-URL>
  • リポジトリのクリーンアップ(不要ファイルの削除)
    (ステージングされていない不要なファイルやフォルダを削除する)

    git clean -f -d
  • サブモジュールを追加
    (リポジトリ内に別のリポジトリをサブモジュールとして追加する)

    git submodule add <repository-URL>
  • サブモジュールを更新
    (サブモジュールを最新の状態に更新する)

    git submodule update --remote

3. リポジトリからクローンしてくる

主なシチュエーション

  • リモートリポジトリの内容を手元で操作したい。
  • 必要なブランチだけをローカルにコピーして軽量化したい。

チート内容(説明付き)

  • リポジトリをクローン
    (リモートリポジトリのすべてのファイルと履歴をローカルにコピーする)

    git clone <repository-URL>
  • 特定のブランチのみをクローン
    (指定したブランチのみをローカルにコピーして効率化する)

    git clone -b <branch-name> --single-branch <repository-URL>

4. ローカルで編集、コミット、プッシュ、プル

主なシチュエーション

  • ファイルを追加・編集してGitに記録する。
  • 他のブランチやリモートリポジトリと同期する。
  • コミットログを整理して履歴をわかりやすくする。

チート内容(説明付き)

一般的な操作

  • ファイルをステージング(add)
    (変更されたファイルを次のコミットに含めるためにステージングする)

    git add <file>
    git add <directory>
    git add .
  • コミット
    (ステージングされた変更をローカルリポジトリに保存する)

    git commit -m "Commit message"
  • コミットメッセージを修正
    (直前のコミットメッセージを修正する)

    git commit --amend -m "Updated commit message"
  • フェッチ(リモート変更の確認)
    (リモートリポジトリの最新の変更を取得するが、ローカルには反映しない)

    git fetch origin
  • プッシュ
    (ローカルのコミットをリモートリポジトリに反映する)

    git push origin <branch-name>
  • プル(フェッチ+マージ)
    (リモートリポジトリの変更をローカルに取り込み、ローカルのブランチとマージする)

    git pull origin <branch-name>
  • マージ
    (別のブランチの変更を現在のブランチに取り込む)

    git merge <branch-name>
  • リベース
    (現在のブランチを別のブランチの先頭に移動させて履歴を整える)

    git rebase <branch-name>
  • 変更の確認
    (現在の変更内容やステージング状況を確認する)

    git status
    git diff
    git diff --cached
  • 特定ファイルをチェックアウト(変更を破棄)
    (特定のファイルの変更を破棄し、最後のコミット時点に戻す)

    git checkout -- <file>

コミットログの操作

  • ログ確認
    (コミット履歴を詳細または簡易形式で表示する)

    git log
    git log --oneline
    git log --graph --oneline --all
  • コミットログの編集(インタラクティブリベース)
    (複数のコミットをまとめたり、順序を変更したりする)

    git rebase -i HEAD~<コミット数>
  • 特定のコミットを取り消す(revert)
    (指定したコミットを打ち消す新しいコミットを作成する)

    git revert <コミットID>
  • 不要なコミットを破棄する(reset)
    (指定したコミット以降の変更を取り消す)

    git reset --soft HEAD~1  # ステージングを維持
    git reset --hard HEAD~1  # 全ての変更を破棄
  • 特定のコミットを別ブランチに適用(cherry-pick)
    (指定したコミットを現在のブランチに取り込む)

    git cherry-pick <コミットID>

5. ブランチ操作

主なシチュエーション

  • 新しい機能開発や修正作業を分岐して進めたい。
  • 不要なブランチを削除してリポジトリを整理したい。

チート内容(説明付き)

  • ブランチ一覧を表示
    (ローカルに存在するすべてのブランチを表示する)

    git branch
  • 新しいブランチを作成
    (現在のブランチから新しいブランチを作成する)

    git branch <new-branch-name>
  • 新しいブランチを作成して切り替え
    (新しいブランチを作成し、同時にそのブランチに切り替える)

    git checkout -b <new-branch-name>
  • 既存のブランチに切り替え
    (指定したブランチに切り替える)

    git checkout <branch-name>
  • リモートブランチを追跡するローカルブランチを作成
    (リモートブランチに対応するローカルブランチを作成する)

    git checkout -b <new-branch-name> origin/<branch-name>
  • ローカルブランチを削除
    (マージ済みのブランチを削除する)

    git branch -d <branch-name>
  • 強制的にローカルブランチを削除
    (未マージのブランチを強制的に削除する)

    git branch -D <branch-name>
  • リモートブランチを削除
    (リモートリポジトリ上の不要なブランチを削除する)

    git push origin --delete <branch-name>
  • リモートブランチを一覧表示
    (リモートリポジトリに存在するすべてのブランチを表示する)

    git branch -r
  • ローカルおよびリモートブランチをすべて表示
    (ローカルとリモートの両方のブランチを一覧表示する)

    git branch -a

6. その他

主なシチュエーション

  • 作業中の変更を一時的に退避させたい。
  • 不要なブランチやタグを削除してリポジトリを整理したい。

チート内容(説明付き)

  • タグの作成
    (特定のコミットに名前を付けてわかりやすく管理する)

    git tag <tag-name>
  • タグをリモートにプッシュ
    (ローカルで作成したタグをリモートリポジトリに送信する)

    git push origin <tag-name>
  • スタッシュ
    (作業中の変更を一時的に退避させ、作業ディレクトリをクリーンな状態に戻す)

    git stash
  • スタッシュの適用
    (退避させた変更を再度適用する)

    git stash apply
  • スタッシュの一覧表示
    (保存したすべてのスタッシュを表示する)

    git stash list
  • 特定のスタッシュを適用
    (指定したスタッシュを適用する)

    git stash apply stash@{<index>}
  • スタッシュの削除
    (指定したスタッシュを削除する)

    git stash drop stash@{<index>}
  • すべてのスタッシュを削除
    (保存したスタッシュをすべて削除する)

    git stash clear
  • ブランチの削除(ローカル)
    (不要になったローカルブランチを削除する)

    git branch -d <branch-name>
  • ブランチの削除(リモート)
    (不要になったリモートブランチを削除する)

    git push origin --delete <branch-name>

⚠️ **GitHub.com Fallback** ⚠️