0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

gitコマンドを、使用頻度別にまとめました。日々の基本操作からブランチ運用、コミット履歴の確認、うっかりミスの取り消し方まで、実務でよく使う範囲を中心に整理しています。

ghコマンド(GitHub公式CLI)とは別物です。gitはバージョン管理そのものを行う本体のコマンドで、GitHub以外のホスティングサービスでも共通して使えます。ghはGitHubのAPIを叩いてPR作成・Issue操作・リポジトリ作成などGitHub固有の操作を行うための別ツールです。

本記事の見方

  • 🔥:ほぼ毎日使う。反射的に打てるようにしておきたい
  • ⭐:頻度は高くないが、覚えておくと役立つ
  • 📝:知っていると便利な発展コマンド
  • ⚠️:実行前に内容をよく確認すべき、注意が必要なコマンド

初期設定・準備

頻度 コマンド 説明
🔥 git init カレントディレクトリを新規Gitリポジトリとして初期化
🔥 git clone <URL> リモートリポジトリを丸ごと複製してローカルに取得
git config --global user.name "名前" commitに記録されるユーザー名を設定
git config --global user.email "メール" commitに記録されるメールアドレスを設定
📝 git config --list 現在の設定値を一覧表示
git clone https://github.com/user/repo.git       # HTTPS経由でクローン
git clone git@github.com:user/repo.git           # SSH鍵認証でクローン
git clone --depth 1 <URL>                        # 履歴を持たない浅いクローン(高速)

状態確認・差分確認

頻度 コマンド 説明
🔥 git status 変更済み・未追跡ファイルの状態を確認
🔥 git diff 作業ディレクトリとインデックス(ステージ)の差分を表示
🔥 git diff --staged インデックスと直前のcommitとの差分を表示(--cachedも同義)
🔥 git log コミット履歴を表示
git log --oneline 履歴を1コミット1行で簡潔に表示
git log --graph --oneline --all ブランチの分岐・マージをグラフで可視化
git show <commit> 特定のコミットの詳細内容(差分含む)を表示
📝 git blame <ファイル> ファイルの各行が最後に変更されたコミット・作者を表示
git log --oneline -10          # 直近10件だけ簡潔に表示
git diff HEAD~1 HEAD           # 直前のコミットと1つ前のコミットの差分
git diff main feature-branch   # 2つのブランチ間の差分

ステージング・コミット

頻度 コマンド 説明
🔥 git add <ファイル> 指定ファイルをステージ(コミット対象)に追加
🔥 git add . カレントディレクトリ以下の変更を全てステージに追加
🔥 git commit -m "メッセージ" ステージ済みの変更をコミット
git commit -am "メッセージ" 追跡済みファイルの変更をステージ追加とコミットを同時に実行(新規ファイルは対象外)
git restore --staged <ファイル> ステージから外す(コミット対象から除外、変更内容は保持)
📝 git commit --amend 直前のコミットを、メッセージや追加変更ごと修正する
git add src/*.py                       # 特定パターンのファイルだけステージ
git commit --amend -m "新しいメッセージ" # 直前のコミットメッセージを修正
git commit --amend --no-edit           # メッセージは変えず、追加のステージ内容だけ直前コミットに含める

--amendまだリモートにpushしていないコミットに対してのみ使うのが安全です。push済みのコミットを書き換えると、他の人の履歴と食い違いが生じます。


ブランチ操作

頻度 コマンド 説明
🔥 git branch ローカルブランチの一覧を表示(現在地に*が付く)
🔥 git switch <ブランチ名> 指定ブランチに切り替える(新しいcheckoutの代替コマンド)
🔥 git switch -c <新ブランチ名> 新規ブランチを作成して同時に切り替える
🔥 git merge <ブランチ名> 指定ブランチを現在のブランチに取り込む
git branch -d <ブランチ名> マージ済みのブランチを削除
git branch -D <ブランチ名> 未マージでも強制的にブランチを削除
git branch -a リモート追跡ブランチも含めて全ブランチを表示
📝 git checkout <ブランチ名> ブランチ切り替え(従来の書き方、switch登場前からの互換コマンド)
📝 git rebase <ブランチ名> 現在のブランチのコミットを、指定ブランチの先端に付け替える
git switch -c feature/login-page    # 新規ブランチを作って移動
git switch main                     # mainブランチに戻る
git merge feature/login-page        # feature/login-pageをmainに取り込む

rebaseは履歴を書き換える操作です。すでに他の人とpush/pullで共有済みのブランチに対しては使わないのが基本です(履歴の食い違いによるトラブルの元になります)。自分のローカル作業ブランチを整理する用途に留めましょう。


リモート操作

頻度 コマンド 説明
🔥 git push ローカルのコミットをリモートリポジトリに反映
🔥 git push -u origin <ブランチ名> 初回push時に、リモートブランチとの追跡関係も同時に設定
🔥 git pull リモートの変更を取得し、現在のブランチに取り込む(fetch+merge相当)
git fetch リモートの変更情報を取得するだけ(自動マージはしない)
git remote -v 設定されているリモートリポジトリの一覧を表示
📝 git pull --rebase pull時にmergeではなくrebaseで取り込む(履歴を直線的に保ちたい場合)
📝 git remote add origin <URL> リモートリポジトリを新規に登録する
git push -u origin feature/login-page   # 初回push(以降は git push だけでOKになる)
git fetch origin                        # リモートの最新情報だけ取得(作業内容には影響しない)

取り消し・やり直し系(要注意コマンド)

頻度 コマンド 説明
🔥 git restore <ファイル> 作業ディレクトリの変更を、直前のコミット時点の状態に戻す(未ステージの変更を破棄)
git revert <commit> 指定コミットの変更を打ち消す新しいコミットを作成する(履歴は消さない、安全な取り消し方)
⭐⚠️ git reset --soft <commit> 指定コミットまで戻すが、変更内容はステージ済みのまま保持する
⭐⚠️ git reset --mixed <commit> 指定コミットまで戻し、変更内容はステージ解除した状態で保持する(--mixedはデフォルト)
⚠️ git reset --hard <commit> 指定コミットまで戻し、それ以降の変更内容を完全に破棄する(復元困難)
📝 git stash 作業中の変更を一時的に退避する(コミットせずに別ブランチへ切り替えたい時など)
📝 git stash pop 退避した変更を作業ディレクトリに戻す
git revert HEAD                # 直前のコミットの内容を打ち消す新規コミットを作る(公開履歴向けの安全な取り消し)
git reset --hard HEAD~1        # 直前のコミット自体をなかったことにする(ローカルのみ、変更内容も消える)
git stash                      # 今の変更を一旦退避
git stash pop                  # 退避した変更を復元

git reset --hardは、コミットされていない変更を問答無用で完全に消去します。実行前にgit statusgit diffで本当に不要な変更かを必ず確認してください。特に共有ブランチで実行すると、他の人の作業にも影響が及ぶ可能性があります。


タグ

頻度 コマンド 説明
git tag 既存のタグ一覧を表示
git tag <タグ名> 現在のコミットにタグを付ける(軽量タグ)
📝 git tag -a <タグ名> -m "メッセージ" メッセージ付きの注釈タグを作成(リリースバージョン管理などで推奨)
📝 git push origin <タグ名> 作成したタグをリモートに反映(タグはgit pushだけでは送られない)
git tag -a v1.0.0 -m "初回リリース"
git push origin v1.0.0
git push origin --tags          # ローカルの全タグをまとめてpush

.gitignore・トラブルシューティング系

頻度 コマンド 説明
git rm --cached <ファイル> Gitの追跡対象からは外すが、実ファイルは削除しない(後から.gitignoreに追加したい時に使う)
📝 git clean -n .gitignore未対象の未追跡ファイルを、削除せず一覧表示(ドライラン)
📝 git clean -f 未追跡ファイルを実際に削除する(-nで確認してから実行推奨)
📝 git update-index --chmod=+x <ファイル> ファイルの実行権限フラグをGit管理上で立てる(シェルスクリプト等をcloneし直しても実行可能なままにしたい場合)
git rm --cached .env             # 誤って追跡してしまった.envをGit管理から除外
git clean -n                     # 削除される予定のファイルを確認
git clean -fd                    # 未追跡ファイル・ディレクトリを実際に削除

まとめ:迷ったときの基本フロー

git status              # 1. 今の状態を確認
git diff                # 2. 変更内容を確認
git add .                # 3. ステージに追加
git commit -m "..."      # 4. コミット
git push                 # 5. リモートに反映

これにgit switch -cでのブランチ作成、git pullでの最新化を組み合わせれば、日常的なGit操作の大半はカバーできます。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?