Menu/Prof
スズキマコト
自由人
元々は楽器屋のギター兄ちゃん。
趣味でプログラミングしてるうちに
本職になってしまった人。

過去に喋っていた言語
c pascal Assembler
perl PHP Python Ruby など
javascriptなどは都度必要に応じて。
最近Mac買ったのでswift勉強してます。

体ぶっ壊して死にかけたので人生RESET中。

Git CUIチートシート|基本操作・ブランチ運用・マージ手順まで体系整理

Some visuals are licensed via Canva Pro (includes commercial rights).
Usage complies with Canva’s license terms at the time of use.
License policy: canva.com/policies/content-license-agreement

X
     この記事はプロモーションを含みます

CUI操作に慣れたつもりでも、いざという場面で「あれ、何のコマンドだっけ?」と手が止まることがある。テンプレート100本以上を作り込む中で、ChatGPTにgit操作の一部を任せた際、「merge」と「rebase」の出力が毎回変わることに気づいた。その揺らぎを検証する過程で、やはり人の側も“構造的な理解”を持っておく必要があると痛感した。

この記事は、そうした経験を踏まえ、「Git CUIの基本操作から応用までを、実務で使える構造で整理」することを目的に書きました。手元の自分用の備忘録としても、コマンドの意味を再確認したいときのリファレンスとしても、役立つ一枚になるはずです。

contents

Git CUIの意義と使いどころ

CUIでGitを操作するシーンを象徴するイメージ。GUIツールと比較して高い汎用性を持つCUIの利点を象徴。

GUIツールに慣れていても、CUI操作が必要になる場面は確実に存在します。
筆者自身も普段はForkを使っているものの、CIトラブル調査やSSH先での作業時には「結局CUIが一番確実だった」と再認識することが多々あります。

CUI操作が重要な理由

  • どんな環境でも通用する
    → GUIが使えないサーバーでも、CUIなら確実にGit操作が可能。
  • CI/CDの自動処理のトラブル調査に必須
    → 実行ログや履歴の追跡では、git logdiff を手で打って確認するしかない場面がある。
  • スクリプトによる一括処理が可能
    → 複数リポジトリを対象とした一括更新やバックアップなど、CUIなら自動化が容易。

GUIでは見えにくい「Gitの動作原理」が分かる

CUIで操作することで、Gitの仕組みそのものがよく見えるようになります。
たとえば rebasereset のような履歴操作は、GUIの抽象化では把握しにくく、コマンド実行を通じて初めて「何がどう動いているか」が実感できるようになります。

Git基本操作ガイド【初学者向け】

Gitの初期設定やコミット操作など、基本コマンドの流れをビジュアルで示す図解。

Gitをこれから使い始める人や、実務で「基本だけ押さえておきたい」人に向けた操作ガイドです。
このセクションでは、初期設定〜コミット〜履歴確認といった、一連の流れをシンプルに紹介します。

リポジトリ初期化とユーザー設定

  • リポジトリの作成(初期化)
    git init.git フォルダが作成され、ローカルリポジトリが開始されます。
  • ユーザー名とメールの設定(初回のみ)
    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
  • ※ –global (グローバル設定)すれば全リポジトリ共通。個別に設定することも可能です。
  • ※ リポジトリごとに別のユーザー情報を設定の場合は、--globalを外してリポジトリ内で実行します。

ステージングとコミットの基本

  • 変更状況の確認git status
    追跡対象か、ステージ済みか、未コミットかが一覧で分かります。
  • 変更の追加
    – ファイル単体:git add ファイル名
    – 一括追加:git add .
  • コミットの作成
    git commit -m "変更内容の説明"
    ローカルリポジトリに履歴が記録されます。

状態確認と履歴調査の基本

  • 履歴一覧の確認
    git log で全履歴、git log --oneline で簡易表示が可能。
  • 差分の確認
    – 作業中の差分:git diff
    – 1つ前との比較:git diff HEAD~1
  • 特定ファイルだけの履歴を追う
    git log ファイル名 で、ファイル単位の変更履歴を確認できます。

このセクションで登場した基本コマンド一覧

操作目的コマンド例概要(何をするか)
リポジトリを作るgit init.git フォルダを生成して新しいローカルリポジトリを開始
ユーザー設定(名前)git config --global user.name "名前"コミット履歴に記録するユーザー名を指定
ユーザー設定(メール)git config --global user.email "アドレス"コミット履歴に記録するメールアドレスを指定
状態を確認するgit status変更・ステージ・未追跡ファイルの状態を表示
変更をステージするgit add ファイル名 / git add .対象ファイルをコミット対象(ステージ)に追加
コミットを作成するgit commit -m "メッセージ"ステージ済みの変更を履歴として保存
差分を確認するgit diff / git diff HEAD~1作業中や過去のコミットとの差分を表示
履歴を確認するgit log / git log --onelineコミット履歴を詳細または簡易表示
ファイル単位の履歴git log ファイル名特定ファイルだけの変更履歴を追跡

ブランチの作成・切り替え・管理

Gitにおけるブランチ操作の概念図。分岐・統合の流れや複数ブランチの視覚的な関係性を示す。

Gitのブランチは、「作業の分岐点」を柔軟に作れる強力な機能です。
機能ごとの開発、バグ修正の切り分け、他の作業への影響を防ぐために活用されます。

ここでは、ブランチの作成・切り替え・確認・削除といった基本操作に加え、git switch の登場による操作の変化も整理します。

ブランチの作成と切り替え

  • ブランチを作るだけgit branch feature/login
    → ブランチは作成されるが、まだ切り替わっていない状態。
  • 作成と同時に切り替えるgit checkout -b feature/login
    → こちらのほうが一般的。1コマンドで切り替えまで完了。
  • 既存ブランチに移動git checkout main または git switch main
    → Git 2.23以降は switch が推奨。
  • 新しいブランチへ切り替えつつ作成git switch -c feature/signup
    -c--create の略。安全かつ直感的なコマンド。

ブランチ一覧・削除・リモート操作

  • ローカルのブランチ一覧git branch
    → 現在のブランチには * マークが付く。
  • リモートブランチも含めて表示git branch -a
    remotes/origin/ブランチ名 のように表示される。
  • ローカルブランチを削除git branch -d feature/login
    -D で未マージでも強制削除可能。
  • リモートブランチを削除git push origin --delete feature/login

checkout / switch / restore の使い分けチャート

Git 2.23以降では、機能を明確に分けた新コマンドが登場しました。

  • ブランチの切り替え専用 → git switch
  • ファイルの復元専用 → git restore
  • 従来の統合型コマンド → git checkout

用途がはっきり分かれてきたため、初心者にも安心して使える構造に進化しています。

ブランチ操作コマンド チートシート

操作内容コマンド例補足
ブランチを作成(切り替えなし)git branch ブランチ名ただ作るだけ。移動しない。
作成して切り替えgit checkout -b ブランチ名古くからの定番方法
Git 2.23以降の新方式git switch -c ブランチ名-c--create の略
既存ブランチに切り替えgit switch ブランチ名安全で直感的
ブランチ一覧git branch* が現在のブランチ
リモート含む一覧git branch -aremotes/origin/〜 で表示
ローカルブランチ削除git branch -d ブランチ名-D で強制削除
リモートブランチ削除git push origin --delete ブランチ名誤操作に注意

git switch の使い方をケーススタディで理解する

Git 2.23以降で登場した git switch は、ブランチの切り替え専用コマンドです。
従来の git checkout と比べて操作が明確に分離され、より直感的に扱えるようになりました。

ここでは具体的な操作シーンをもとに、git switch の活用パターンを整理します。

ケース1:既存の main ブランチに移動したい

状況:
作業ブランチにいたが、元の main ブランチに戻りたい。

対応コマンド:
git switch main

結果:
作業ブランチから main に切り替わる。
ステージされていない変更があるとエラーや警告が出ることがあるため、事前に git status の確認が安心。

ケース2:新しい作業用ブランチを作って切り替えたい

状況:
main ブランチから feature/login というブランチを新規作成し、そこへすぐ移動したい。

対応コマンド:
git switch -c feature/login

結果:
feature/login という新しいブランチが作成され、そのまま移動する。
-c--create の省略形で、新規ブランチ作成を意味する。

ケース3:誤って checkout を使いそうになる

状況:
従来の経験で git checkout を打ちかけたが、switch の方が安全だと気づいた。

対応判断:

  • git checkout は切り替えとファイル復元を兼ねるため、誤操作のリスクがある
  • git switch は「ブランチ専用」なので、操作ミスを防ぎやすい

推奨アクション: 今後は switchrestore を使い分ける習慣にすることで、安全性が向上する。

ケース4:作業内容が未保存で切り替えができないとき

状況:
変更中のファイルがある状態でブランチを切り替えようとしたらエラーが出た。

対応手順:

  • git status で状態を確認
  • git stash で変更を一時退避
  • git switch 目的のブランチ名 で切り替え

ポイント: switch は未コミットの変更があると切り替えを拒否する仕様。
切り替え前に stash しておくのが安全策。

git switch コマンド チートシート

git switch の基本操作を目的別に一覧で整理しました。旧来の checkout との違いも併せて確認できます。

操作内容コマンド例補足
既存ブランチへ切り替えgit switch ブランチ名checkout より安全
新しいブランチを作成して切り替えgit switch -c ブランチ名-c--create の略
変更があると切り替え拒否git switch 実行時にエラーgit stash で退避を
ステータス確認git status切り替え前の状態確認
旧方式(非推奨)git checkout ブランチ名復元操作と混在しやすい

git restore の使い方をケーススタディで理解する

Git 2.23以降で登場した git restore は、ファイルの変更取り消しに特化した直感的なコマンドです。ここでは実際の操作シーンを想定しながら、具体的な使い方と注意点を整理します。

ケース1:作業中のファイル変更を取り消したい(未ステージ)

状況:
index.html を変更して保存したが、「やっぱりこの変更は不要だった」と気づいた。

対応コマンド:
git restore index.html

結果:
作業ディレクトリの index.html が最後のコミット状態に戻る。ステージされていない変更だけが対象

注意: 一度実行すると、変更内容は元に戻せない(undoできない)ため、本当に不要かを事前に確認しておくのが安心。

ケース2:git add してしまったけど、やっぱりステージを取り消したい

状況:
main.cssgit add したが、まだコミットしたくない。

対応コマンド:
git restore --staged main.css

結果:
ステージ領域から main.css が外れ、再び「変更済み・未ステージ」の状態に戻る。作業内容はそのまま保持される。

補足: 同じことは git reset HEAD main.css でも可能。ただし restore のほうが目的別に整理されていてわかりやすい

ケース3:両方の取り消し(ステージと作業内容の両方)

状況:
app.js に変更を加え、git add もしてしまったが、すべてなかったことにしたい。

対応コマンド:
git restore --source=HEAD --staged --worktree app.js

結果:
コミット時点までファイルが完全に戻る。作業ツリーとステージ両方を巻き戻す操作。

注意: 明示的で安全な巻き戻しだが、強力なため慎重に扱う。

ケース4:GUIと併用していたが、差異が出て混乱したとき

状況:
SourceTreeやForkなどのGUIツールで変更が混在し、どのファイルを戻すか迷ってしまった。

対応方法:

  • git status で状態確認
  • 戻したいファイルに対して git restore ファイル名

ポイント: git restoreファイル単位で部分的に巻き戻しできるので、GUIで追えない細かい操作に向いている。

git restore コマンド チートシート

Git 2.23以降で導入された git restore の使い分けを一覧表にまとめました。状況に応じて安全に操作できるよう、目的別に整理しています。

操作内容コマンド例補足
作業ディレクトリの変更取り消しgit restore ファイル名最後のコミット時点に戻す(未ステージのみ対象)
ステージング取り消しgit restore --staged ファイル名git reset HEAD 相当/変更内容は残る
両方取り消し(完全巻き戻し)git restore --source=HEAD --staged --worktree ファイル名コミット時点まで完全に戻す/慎重に使う
複数ファイルをまとめて戻すgit restore .カレントディレクトリ以下すべて対象
復元可能な対象を確認git statusrestore 実行前に必ずチェック

リモート操作と同期の基本

GitHubなどのリモートリポジトリとの接続・同期を示すイラスト。push/pullの概念理解に寄与。

Gitのローカル操作に慣れてきたら、いよいよ「リモートとの連携」が必要になります。
GitHubやGitLabなどの共有リポジトリを使うことで、チーム開発やバックアップ、自動デプロイが可能になります。

このセクションでは、リモートリポジトリの接続・取得・同期の基本操作を整理します。

リモートリポジトリの操作

  • クローン(初回取得)
    git clone https://github.com/user/repo.git
    → 指定URLのリモートリポジトリを丸ごと複製します。
  • 登録済みリモート一覧を見る
    git remote -v
    origin などの名前付きURLを確認できます。
  • 新しくリモートを登録
    git remote add origin URL
    origin という別名でリモートを登録。
  • 不要なリモート設定を削除
    git remote remove origin
    → リモートURLが間違っていたときなどに使います。

リモートとの同期:push / pull / fetch の違い

  • push(ローカルの変更を送信)
    git push origin main
    → 自分の変更をリモートの main ブランチへ反映。
  • pull(リモートの変更を取得&統合)
    git pull origin main
    → 最新の変更を取り込み、自動的にマージも行われます。
  • fetch(取得だけして差分確認)
    git fetch origin
    → ローカルの履歴には反映せず、差分を確認したいときに便利。

リモート操作コマンド チートシート

操作内容コマンド例補足
リポジトリをクローンgit clone URLリモートから丸ごと取得(初回のみ)
リモートを確認git remote -v登録済みのURL一覧を表示
リモートを追加git remote add origin URLorigin という別名で登録
リモートを削除git remote remove origin登録ミスなどの修正に使う
リモートにプッシュgit push origin ブランチ名ローカルの変更を送信
リモートからプルgit pull origin ブランチ名変更を取得&マージ
フェッチ(差分のみ)git fetch origin履歴には反映せず、取得のみ

マージ vs リベース【実務視点】

複数ブランチでの作業を統合する際、Gitでは主に2つの手段があります:マージ(merge)とリベース(rebase)。

複数ブランチでの作業を統合する際、Gitでは主に2つの手段があります:マージ(merge)リベース(rebase)
どちらも目的は「変更の統合」ですが、履歴の扱いや使うタイミングに大きな違いがあります。

このセクションでは、それぞれの特徴・利点・注意点を、実務に沿って解説します。

merge:分岐と統合の履歴を明示したいときに使う

  • 基本コマンド
    git merge ブランチ名
  • 特徴
    – マージコミットが履歴に残る(分岐と統合の形が明確に可視化)
    – チームでの作業やコードレビューで履歴が追いやすい
    – コンフリクト発生時は手動で解決し、addcommit が必要
  • 向いている場面
    – 複数人での開発
    – レビューや監査などで「誰がどの変更を統合したか」を履歴で残したい場合

rebase:履歴をシンプルに整理したいときに使う

  • 基本コマンド
    git rebase ブランチ名
  • 特徴
    – 履歴が1本に繋がる(分岐が見えなくなる)
    – コミットが再作成されるため、共有リポジトリに対して使うと危険
    -i オプションでコミットの並べ替えや結合も可能(インタラクティブリベース)
  • 向いている場面
    – ソロ開発やPull Request前の履歴整理
    – 他人と共有していない、自分のローカルブランチ

どちらを使う? 判断基準まとめ

シチュエーションmerge が向いているrebase が向いている
チーム開発/複数人の履歴を可視化したい✅ 履歴に統合経路を残したい❌ 履歴が書き換わるため不向き
ソロ開発/履歴をきれいに整理したい❌ マージコミットが増えるだけ✅ 意味のある単位で整理できる
共有リポジトリで作業中✅ 安全に統合可能❌ 使うと履歴がずれてトラブルに

merge / rebase コマンド チートシート

操作内容コマンド例補足
マージの実行git merge ブランチ名現在のブランチに統合する
マージ後の競合確認git statusコンフリクト箇所を表示
コンフリクト解消と確定git add .git commit手動で修正後に確定
リベースの実行git rebase ブランチ名対象ブランチの直後に履歴を再接続
リベース中の解決処理git rebase --continue競合解決後に続行
リベース中断git rebase --abortリベース開始前に戻す
インタラクティブ操作git rebase -i HEAD~3直近3コミットを並べ替え・結合可能

履歴整理・復元・巻き戻し

Gitのstashやresetなどによる履歴操作を視覚化した説明用ビジュアル。誤操作からの復元手順の理解を助ける。

作業中の変更を一時退避したいとき、誤ってコミットした内容を取り消したいとき、過去の状態に戻したいとき。Gitはこれらの状況にも柔軟に対応できる仕組みを持っています。ここでは、履歴操作や一時退避を行う際に使う主要コマンドと、注意点をまとめます。

stash での一時退避

作業中の変更を一時的に避けておきたい場合に活用できるのが git stash です。

  • 変更中の作業を保存し、作業ツリーをクリーンに戻す
  • あとで再適用(stash pop / apply)することが可能
  • 複数のstashを一覧で確認(stash list)、個別に参照(stash show)・削除(stash drop)できる

利用シーン例:
緊急のバグ修正対応などで、現在の作業を一時中断したいとき
変更をコミットする前に、別ブランチで試したいとき

revert, reset の違いと使い分け

履歴の巻き戻しには大きく2つの方法があります。それぞれの特徴と用途を理解しておくことが重要です。

git revert の特徴:
指定したコミットの変更を“打ち消す”新しいコミットを作成する。履歴を保ちつつ、論理的に取り消したいときに有効。チーム作業時に安全。

git reset の特徴:
HEADやブランチのポインタを指定したコミットに戻す。戻し方には –soft / –mixed / –hard の3種類がある。

  • --soft:コミットだけ戻す(ステージング内容は残る)
  • --mixed:ステージングも解除(作業ディレクトリは維持)
  • --hard:作業内容ごと完全に巻き戻す(注意!

使い分けの指針:
公開リポジトリやチーム作業中は revert を推奨。ローカルで自分の作業を整理したい場合は reset を活用。

reflog 活用法

Gitには表向きの履歴とは別に、「過去のHEADの移動履歴」を記録する git reflog という仕組みがあります。

  • 削除したブランチや失ったコミットの“入口”を見つけられる
  • git reset と組み合わせて、過去の状態に戻すことが可能

具体例:
誤って git reset --hard してしまったが、戻したい
git checkout で古い状態を探したい

注意:reflogはローカル限定。一定期間が過ぎると消えるため、早めの復元が肝心です。

操作内容コマンド例補足
変更の一時退避git stash作業中の変更を一時退避
一時退避一覧の確認git stash list一時退避内容を一覧表示
一時退避の復元git stash apply一時退避を現在の作業に復元
一時退避の削除git stash drop指定のstashを削除
変更の取り消し(revert)git revert <コミットID>指定コミットを打ち消す新しいコミットを作成
履歴を巻き戻す(reset)git reset --hard <コミットID>指定の履歴位置まで完全に戻す(注意)
過去のHEADを確認(reflog)git reflogHEADの移動履歴を確認できる
reflogからの復元git reset --hard <reflog番号>過去の状態に戻したいときに使用

タグ管理の基礎

Gitのタグ機能を象徴するイラスト。バージョン管理やリリース管理の基点となるタグの役割を解説。

Gitにおける「タグ(tag)」は、特定のコミットに名前を付けて記録する機能です。リリースの節目や重要な変更点に対して、わかりやすい目印を付けることで、履歴を参照しやすくなります。

タグの作成・削除・表示(tag, show, push, –tags)

  • タグの作成
    git tag v1.0.0
    現在のコミットに v1.0.0 という軽量タグを付ける
  • 注釈付きタグ
    git tag -a v1.0.0 -m "Initial release"
    コメント情報付きの正式なタグ
  • タグ一覧を確認
    git tag
  • タグの詳細を表示
    git show v1.0.0
  • タグの削除
    git tag -d v1.0.0
  • リモートにタグをプッシュ
    git push origin v1.0.0
  • ローカルの全タグを一括プッシュ
    git push origin --tags

特定のコミットとタグを紐付ける方法

タグは任意のコミットに付けることもできます。
git tag v1.0.0 <コミットID> のように、履歴の中の任意のコミットに対して設定できます。

使いどころ例:
・安定版リリースの区切り
・ホットフィックスの直前後を明示
・検証用スナップショットの保存

タグは変更履歴の「固定点」として、後から見返す際の大きな助けになります。CI/CDパイプラインでは、タグをトリガーとして自動デプロイを実行する構成も一般的です。

操作内容コマンド例補足
タグの作成(軽量)git tag v1.0.0現在のコミットに軽量タグを付ける
タグの作成(注釈付き)git tag -a v1.0.0 -m "Initial release"注釈付きでタグを記録する
タグ一覧を表示git tagローカルに存在するタグ一覧を確認
タグ詳細を確認git show v1.0.0タグが指すコミットの詳細を表示
タグの削除git tag -d v1.0.0ローカルタグを削除
タグを個別プッシュgit push origin v1.0.0個別のタグをリモートに送信
タグを一括プッシュgit push origin --tags全ローカルタグをリモートに送信
特定のコミットにタグ付与git tag v1.0.0 <コミットID>任意の過去コミットにタグを付ける 

操作フローの具体例(main→作業ブランチ→マージ)

Gitでmainから作業ブランチを切ってマージするまでの一連の操作フローを示す図解。

仮想ケース:あなたはWebサービスのフロントエンド開発を担当中。本番ブランチ(main)から「ログインフォームのデザイン修正」を行い、作業完了後にmainへ統合したいとします。

このような場面で、Gitを使ってブランチを切り、作業を進め、最終的にmainへマージするまでの基本フローをSTEP形式で整理しました。初学者にも理解しやすい構成となっています。

STEP
作業ブランチの作成

mainブランチからログインフォーム修正用のブランチを新規作成します。
git switch -c fix-login-ui

STEP
修正・コミット

ログインフォームのデザインを調整し、変更をステージ・コミットします。
git add .
git commit -m "ログインフォームのUIを調整"

STEP
mainブランチへマージ

mainブランチに戻り、修正を統合します。
git switch main
git merge fix-login-ui

実務で役立つGit応用テクニック集

Gitの基本操作に慣れてきたら、もう一歩踏み込んだ“実務的なコマンド”を覚えておくと、いざというときに役立ちます。このセクションでは、チーム開発やバグ調査、作業効率化の観点から、使用頻度の高い応用コマンドをチートシート形式で紹介します。

特定コミットだけ取り込む:git cherry-pick

別ブランチの特定コミット1件だけを取り込みたいときに使います。バグ修正やホットフィックス対応時によく登場します。

git cherry-pick <コミットID>
指定コミットの内容が現在のブランチに適用されます。

バグ原因を絞り込む:git bisect

「どのコミットでバグが入ったか」を二分探索で探せるコマンド。長期間の履歴の中から原因を効率的に特定できます。

git bisect start
git bisect bad
git bisect good <古い正常なコミット>

未追跡ファイルを一掃:git clean

コンパイル生成物やテスト用ファイルなど、Git未追跡の不要ファイルを削除したいときに便利です。

git clean -fd
-f(強制)と -d(ディレクトリ含む)に注意。

複数ブランチを並行作業:git worktree

1つのリポジトリから別ディレクトリにブランチを展開して作業できる機能。mainとfeatureブランチを同時に扱いたい場面で重宝します。

git worktree add ../dir-name ブランチ名

ショートカット化:alias 設定

Gitコマンドに短縮名を付けて素早く操作可能にします。例:git ststatus を呼び出せるように。

git config --global alias.st status
git config --global alias.co checkout

知っておきたい便利オプション集

  • git diff --cached:ステージとの差分確認
  • git log --graph --oneline:履歴の構造を視覚化
  • git fetch --prune:削除されたリモートブランチを整理

応用コマンド チートシート

操作内容コマンド例補足
特定コミットを適用git cherry-pick <コミットID>別ブランチの変更を1件だけ取り込む
バグの原因を絞り込むgit bisect二分探索で「どこで壊れたか」を調査
未追跡ファイルを削除git clean -fd強制削除なので慎重に。-n で確認可
複数ブランチを展開git worktree add ../dir ブランチ名異なるブランチを別ディレクトリで操作
コマンドに別名を付けるgit config --global alias.st statusよく使うコマンドを短縮化
ステージとの差分確認git diff --cachedコミット前の差分チェックに便利
履歴を構造表示git log --graph --oneline分岐やマージの様子が視覚的にわかる
不要なリモート追跡を整理git fetch --prune削除されたリモートブランチの整理に

よくあるトラブルと解決Q&A

Git操作で遭遇しやすいトラブルとその解決策をQ&A形式でまとめたセクションの導入イラスト。

Gitを使っていて、戸惑いやすい場面、間違えやすい操作に関する質問と回答をまとめました。初心者から中級者まで「一度は出くわす」トラブルを中心に構成しています。

コミット後にメッセージを修正したい場合は?

git commit --amend を使うと、直前のコミットメッセージを修正できます。
ただし、共有リポジトリにpush済みの場合は履歴が変わるため注意が必要です。

add したけどまだ commit してない。どう取り消す?

git restore --staged ファイル名 でステージから外せます。
または git reset HEAD ファイル名 でも同様の効果があります。

reset と revert の違いが分かりません

reset は履歴を巻き戻す操作、revert は取り消し用の新しいコミットを追加する操作です。
チーム開発では安全な revert の使用が推奨されます。

stash した変更が戻らないのですが?

変更が競合する場合、 git stash apply では反映できないことがあります。
その際は競合解消後に手動で適用するか、 git stash pop で再度試してみてください。

merge で conflict(競合)が起きました。どうすれば?

競合箇所はファイル内に明示されるので、手動で編集・解消し、
git add でステージしてから git commit すればOKです。

ブランチを切り替えたらファイルが消えました!

未コミットの変更が切り替え先に合わない場合、
Gitは自動的に変更を残せず、強制的にリセットされることがあります。
git stash で事前に退避させてからの切り替えを推奨します。

タグを push したのに CI が反応しません

git push origin --tags を忘れている可能性があります。
タグは明示的に push しないとリモートに反映されません。

誤ってブランチを削除してしまいました

git reflog で過去の履歴を参照し、
git checkout -b 新ブランチ名 <コミットID> で復元できます。

remote の URL を後から変更したい

git remote set-url origin 新しいURL で変更可能です。
複数のリモートを使っている場合は、origin の指定に注意してください。

GitのGUIツールとCUIで表示が違うのはなぜ?

GUIは情報を抽象化・簡略化して表示していることがあります。
信頼性の高い情報確認には git statusgit log など CUI コマンドが確実です。

シェアしてくれると喜びます
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

makotoのアバター makoto Blogger&YouTuber

サーバー管理者として17年ほど仕事でサーバー触ってました。
www,mail,dns,sql各鯖をすべてFreeBSDで運用してましたが現世ではかなりレアなタイプになるみたいですね笑

viやシェルスクリプトとかperlとかgccとかFreeBSDとか実はbashよりtcshが好きとか時々寝ぼけるのは
その名残でしょう。

今まで縁の下の力持ち的な他人のためにプログラムを書き他人のためにサーバー構築し他人のためにWEBサイトを創る的な世界から
自分の好きなことに集中できる環境は実に気持ち良いですね。
現役は引退済みなので難しいことはやりませんしやれません。

現在 ほぼ自由人。

contents