Git チートシート
最終更新
セットアップと設定
コミットが正しく記録されるよう、一度だけ行う設定。
| コマンド | 機能 |
|---|---|
git config --global user.name "Ada" | コミットの名前を設定 |
git config --global user.email you@x.com | コミットのメールアドレスを設定 |
git config --list | 現在のすべての設定を表示 |
git config --global init.defaultBranch main | 新規リポジトリの最初のブランチを main にする |
git config --global core.editor "code --wait" | 既定のエディタを設定 |
git --version | インストールされている Git のバージョンを表示 |
作成とクローン
新しいリポジトリを始めるか、既存のものをコピーします。
| コマンド | 機能 |
|---|---|
git init | 現在のフォルダに新しいリポジトリを作成 |
git clone <url> | リモートリポジトリをローカルにコピー |
git clone <url> mydir | 指定した名前のフォルダにクローン |
git clone --depth 1 <url> | 浅いクローン (最新のコミットのみ) |
git clone -b dev <url> | クローンして dev ブランチをチェックアウト |
ステージングとコミット
変更をプロジェクトの履歴に記録します。
| コマンド | 機能 |
|---|---|
git add file.txt | ファイル 1 つをステージング |
git add . | 現在のディレクトリのすべての変更をステージング |
git add -p | 選んだ変更箇所を対話的にステージング |
git commit -m "message" | ステージングした変更をコミット |
git commit -am "message" | 追跡中のファイルをステージングしてコミット |
git commit --amend | 直前のコミットを編集 |
git rm file.txt | ファイルを削除し、その削除をステージング |
ブランチ
変更を切り離して作業します。
| コマンド | 機能 |
|---|---|
git branch | ローカルブランチを一覧表示 |
git branch feature | 新しいブランチを作成 |
git switch feature | 既存のブランチに切り替え |
git switch -c feature | 作成と切り替えを一度に |
git checkout feature | ブランチを切り替える古い方法 |
git branch -d feature | マージ済みのブランチを削除 |
git branch -m newname | 現在のブランチ名を変更 |
マージとリベース
2 つのブランチの作業を統合します。
| コマンド | 機能 |
|---|---|
git merge feature | feature を現在のブランチにマージ |
git merge --no-ff feature | 常にマージコミットを作成 |
git rebase main | 自分のコミットを main の上に並べ直す |
git rebase -i HEAD~3 | 直近 3 件のコミットを対話的に編集 |
git rebase --continue | 競合を解決した後に再開 |
git rebase --abort | 進行中のリベースを中止 |
git cherry-pick <hash> | コミット 1 つをこのブランチに適用 |
リモート (push、pull、fetch)
ローカルリポジトリを GitHub などのリモートと同期します。
| コマンド | 機能 |
|---|---|
git remote -v | 設定済みのリモートを一覧表示 |
git remote add origin <url> | origin という名前のリモートを紐付け |
git fetch | マージせずにリモートの変更をダウンロード |
git pull | リモートブランチを取得してマージ |
git push | コミットをリモートにアップロード |
git push -u origin main | プッシュして上流ブランチを設定 |
git push origin --delete feature | リモートブランチを削除 |
確認 (status、log、diff)
何が変わり、何が起きているかを確認します。
| コマンド | 機能 |
|---|---|
git status | ステージング済み・未ステージング・未追跡のファイルを表示 |
git log | コミット履歴を表示 |
git log --oneline --graph | ブランチグラフ付きのコンパクトな履歴 |
git diff | 未ステージングの変更とインデックスを比較 |
git diff --staged | ステージング済みの変更と直前のコミットを比較 |
git show <hash> | 1 つのコミットの変更を表示 |
git blame file.txt | 各行を最後に変更した人を表示 |
変更の取り消し
ミスから安全に復旧します。
| コマンド | 機能 |
|---|---|
git restore file.txt | ファイルの未ステージングの変更を破棄 |
git restore --staged file.txt | ファイルのステージングを解除 (変更は保持) |
git reset --soft HEAD~1 | 直前のコミットを取り消し、変更はステージングしたまま |
git reset --hard HEAD~1 | 直前のコミットを取り消し、変更も破棄 |
git revert <hash> | 別のコミットを打ち消す新しいコミットを作成 |
git stash | 変更を一時的に退避 |
git stash pop | 最新の stash を再適用 |
よく使う Git コマンドを 1 ページにまとめました。この Git チートシートは、日々のバージョン管理のクイックリファレンスです。Git の設定、ステージングとコミット、ブランチ、マージとリベース、リモートとの同期、ミスの取り消しを収録しています。
これらは標準の Git コマンドで、Linux、macOS、Windows で同じように動作します。必要なものをコピーするか、ターミナルプレイグラウンドでその場で試してみてください。ブラウザ上の本物のシェルで、インストールは不要です。
Git チートシート よくある質問
この Git チートシートは無料ですか?
はい。この Git チートシートは完全に無料で、登録も不要です。ブックマークしておけば、ブランチ、コミット、変更の取り消しのコマンドを調べたいときにいつでも戻ってこられます。
merge と rebase の違いは何ですか?
git merge は新しいマージコミットを作って 2 つのブランチを統合し、両方の履歴をそのまま結び付けて保持します。git rebase はその代わりに、自分のコミットを 1 つずつ別のブランチの上に並べ直し、マージコミットのない一直線の履歴を作ります。merge は安全で非破壊的です。rebase はよりきれいな履歴を作りますがコミットを書き換えるので、他の人がすでに pull したブランチはリベースしないようにしましょう。Git でコミットを取り消すには?
プッシュ済みかどうかによります。ローカルのコミットなら、
git reset --soft HEAD~1 は直前のコミットを取り消しつつ変更をステージングしたまま残し、git reset --hard HEAD~1 は変更も完全に破棄します。すでに共有されているコミットには、git revert <hash> を使って、履歴を書き換えずにそれを打ち消す新しいコミットを作成します。Git コマンドをオンラインで練習できますか?
はい。ターミナルプレイグラウンドを開けば、ブラウザ上の本物のシェルで Git コマンドを実行できます。インストールは不要です。体系的に学びたいときは、Coddy の無料インタラクティブ Git コースが、最初のコミットからブランチ、マージ、リモートまで段階的に導いてくれます。
このチートシートは初心者に向いていますか?
はい。セットアップとコミット (日々の基本) からリベースや変更の取り消しへと並べてあるので、初日から上のセクションを使い、応用的なワークフローには慣れながら進めます。