はじめに
一人でローカル開発をしていて、Gitを使い始めました。
使っていくうちに気づいたのですが、一人開発ならブランチもpushも不要で、実際に使う操作はかなり限られます。
- 変更を保存する(add + commit)
- 過去に戻す(restore / reset / checkout)
本記事ではこの操作に絞って、「やりたいこと → コマンド」の形で紹介します。
なお、履歴・差分・変更状況の確認はCLIで見ても変わりづらいため、とりあげません。
VSCodeやSourceTreeなどのGUIツールで視覚的に確認ください。
2026/3/28 最近の気づきで修正しました。かなりシンプルになりました。
対象者
ローカル開発でGitを使い始めたい人。
GitHubへのpushやブランチ管理は扱いません。
環境
GitはOSを問わず動作します。インストール済みであれば以下のコマンドで確認できます。
git --version
Git導入にあたって決めること
Gitで管理するファイルを明確化しましょう
余分なファイルがあると環境が重くなります。
環境を復元するためだけのコードと実行バッチを管理することが好ましいと思われます。
通常管理対象のファイルはignore指定(ブラックリスト)ですが、それだとわかりづらいのでこのブログではホワイトリスト指定にしています。
環境設定編
| やりたいこと | コマンド |
|---|---|
| プロジェクトをGitで管理し始めたい | git init |
| 管理対象を設定したい |
.gitignore に記載 |
| .gitignoreの変更をGitに反映させたい |
git rm --cached -r . → git add -A
|
運用編
| やりたいこと | コマンド |
|---|---|
| 新規コミットしたい |
git add -A → git commit -m "メッセージ"
|
| 修正を捨てて最新コミットに戻りたい | git restore . |
| 過去の状態を壊さず確認したい (stashからstash popまでの流れ) |
git stash → git checkout ハッシュ |
| ~確認作業~ | |
git checkout main → git stash pop
|
|
| 直前のコミットで不備があったので削除したい | git reset --hard HEAD~1 |
まず最初に1回だけ設定する
GitはローカルだけでもGitHubに上げなくても、コミットの記録に「誰がいつ保存したか」を必ず付与します。その「誰が」の部分がこの設定です。設定しないとコミットが失敗するので最初に1回だけ実行してください。
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
やりたいこと別コマンド一覧
プロジェクトをGitで管理し始めたい
git init
git add -A
git commit -m "1st commit"
管理対象を設定したい
通常はignoreの指定をするのですが、こちらの方が管理対象が明確となりシンプルになります。
ホワイトリスト方式(管理するものだけを列挙)
# すべて無視
*
# ディレクトリは通す(サブフォルダを掘るために必要)
!*/
# 管理したい拡張子だけ許可
!*.py
!*.txt
!*.md
.gitignoreの変更をGitに反映させたい
.gitignore を後から変更しても、すでに追跡されているファイルは自動では除外されません。
以下の手順でキャッシュをクリアする必要があります。
初回に実行するというより、運用途中で.gitignoreを更新したときに実行することになると思います。
git rm --cached -r . # 追跡キャッシュを全削除(ファイル自体は消えない)
git add -A # .gitignoreを反映した状態で再登録
git commit -m "apply .gitignore"
新規コミットしたい
以下のコマンドで変更を保存します。保存対象は全リポジトリです。
カレント以下だけ保存したい場合は、git add .で保存できます。
また、保存する前にどのような更新がはいったかをgit diff HEADで確認することで誤ったコミットを防ぐことができます。
git diff HEAD
git add -A
git commit -m "メッセージ"
保存対象は、カレント以下、対象ファイルだけでも構わないのです。
私は管理の簡易化を狙って全リポジトリとしました。
実際のコミットは以下のshを用意しました。コミット履歴を見た時にどのような修正がはいったかわかるようにフラグを設定することにしています。
feat 機能追加、修正
fix バグ修正
style 体裁の修正
refactor リファクタリング
other その他
#!/usr/bin/env bash
USAGE="Usage: git_add_commit <type> <message>
type: feat / fix / style / refactor / other"
if [ -z "${1:-}" ] || [ -z "${2:-}" ]; then
echo "$USAGE" >&2
exit 1
fi
git add -A && git commit -m "${1}: ${2}"
echo "commited with ${1}: ${2}"
git_add_commit fix "新規バグの修正"
修正を捨てて最新コミットに戻りたい
まだコミットしていない手元の変更を捨てます。
git restore .
実行前: A → B → C
↑
HEAD
+未コミットの変更(編集中のファイルなど)
実行後: A → B → C
↑
HEAD
(未コミットの変更が消える)
過去の状態を壊さず確認したい
未コミットの変更がある場合は git stash で先に退避します。確認後は git stash pop で戻します。
git stash # 未コミットの変更がある場合(なければ不要)
git checkout a7f4e2d # ハッシュ(a7f4e2d)はgit log --onelineで確認
~確認作業~
git checkout main # 見終わったら戻る
git stash pop # stashした場合のみ
直前のコミットで不備があったので削除したい
コミットした後に間違いに気づいて削除したいというときに利用します。
git reset --hard HEAD~1
実行前: A → B → C
↑
HEAD
実行後: A → B (Cは消える)
↑
HEAD
⚠️ Cの履歴は残りません。
まとめ
かなりいろいろなコマンドが用意されていると思いますが、ユースケース別にまとめた
これらのコマンドで様子を見ようと思います。
差分に関しての確認は、CLIだとイメージがつかないので、GUIに頼ることにしました。