ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
基本コマンド
# ステージ済の変更をコミット
git add file.txt
git commit -m "Add feature X"
# 追跡中ファイルの変更を一括 add + commit
git commit -am "Update README"
# 複数行メッセージ(エディタが開く)
git commit
# メッセージをファイルから
git commit -F message.txt
# 空コミット(CI トリガー用など)
git commit --allow-empty -m "trigger CI"
コミットメッセージのエディタ設定
# エディタ変更
git config --global core.editor "code --wait" # VS Code
git config --global core.editor "vim" # vim
git config --global core.editor "nano" # nano
# メッセージテンプレート(チームで統一する場合)
git config --global commit.template ~/.gitmessage
主なオプション
| オプション | 動作 |
|---|---|
-m "msg" | メッセージ指定 |
-am "msg" | 追跡中ファイルの add + commit |
--amend | 直前コミットを修正 |
--no-edit | amend 時にメッセージを変えない |
-S | GPG 署名 |
--allow-empty | 空コミット許可 |
--no-verify | pre-commit / commit-msg hook をスキップ(要注意) |
--author="名 <mail>" | 著者を明示 |
--date="..." | 日時を明示 |
-v | エディタに diff も表示 |
--amend: 直前コミットの修正
「typo」「ファイル add 漏れ」を直前コミットに混ぜたい場合の必須機能。ただしpush 済のコミットを amend すると履歴改変になるので原則 push 前のみ。
# メッセージ変更
git commit --amend -m "fix: typo in README"
# add 漏れを追加(メッセージは変えない)
git add forgotten.txt
git commit --amend --no-edit
# 共有ブランチで amend してしまった場合
git push --force-with-lease origin feature/login
HEAD とは
HEAD は「現在のチェックアウト位置」を指す参照です。通常はカレントブランチの先端コミットを指します。
# HEAD の中身確認
cat .git/HEAD
# ref: refs/heads/main
# HEAD~1 1つ前のコミット
# HEAD~2 2つ前
# HEAD^ 1つ前(同じ)
# HEAD^^ 2つ前
# HEAD のコミット情報
git log -1 HEAD
git show HEAD
# 1つ前のコミット内容
git show HEAD~1
Conventional Commits 規約
業界標準のコミットメッセージ規約。type(scope): subject 形式で書きます。conventionalcommits.org。
feat(login): add Google OAuth ← 新機能
fix(auth): handle expired token ← バグ修正
docs(readme): add install steps ← ドキュメント
style(home): format with prettier ← 整形(動作変化なし)
refactor(api): extract validator ← リファクタリング
perf(query): add index ← パフォーマンス改善
test(login): add unit test ← テスト
build(deps): bump axios to 1.6 ← ビルド / 依存
ci(github): cache node_modules ← CI 設定
chore(repo): update .gitignore ← 雑務
revert: feat(login): add OAuth ← 取り消し
# Breaking Change(メジャーバージョン上昇)
feat(api)!: change response shape
BREAKING CHANGE: response.user is now response.data.user
この規約を採用すると semantic-release や standard-version で自動 CHANGELOG 生成・自動バージョニング・自動 tagが可能になります。
GPG 署名(-S)
GitHub に "Verified" バッジを付けてなりすまし防止します。OSS や企業のリポジトリで推奨。
# GPG 鍵生成
gpg --full-generate-key
# 鍵 ID 確認
gpg --list-secret-keys --keyid-format=long
# Git に登録
git config --global user.signingkey YOUR_KEY_ID
git config --global commit.gpgsign true
# 公開鍵を GitHub に登録
gpg --armor --export YOUR_KEY_ID
# → GitHub Settings → SSH and GPG keys に貼り付け
# 署名付きコミット
git commit -S -m "feat: add feature"
# SSH 鍵で署名も可能(Git 2.34+)
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
過去コミットの編集(rebase -i)
複数のコミットをまとめて整理したい場合。push 前のローカル履歴限定で使うのが安全です。
# 直近 5 コミットを対話的に編集
git rebase -i HEAD~5
# エディタが開く:
# pick abc123 feat: add login
# pick def456 fix: typo
# pick ghi789 wip
#
# 操作:
# p / pick そのまま
# r / reword メッセージ変更
# e / edit コミット内容変更
# s / squash 前のコミットに合体(メッセージも統合)
# f / fixup 前のコミットに合体(メッセージは前のを採用)
# d / drop 破棄
# x / exec シェルコマンド実行
--no-verify の使いどころと注意
pre-commit hook をスキップします。lint や test が走って遅い時に誘惑されますが、原則使わないべきです。CI で必ず弾かれます。
# 緊急時のみ
git commit --no-verify -m "WIP: emergency fix"
# 推奨: 重い hook を pre-push に移す
# .husky/pre-commit には軽い lint だけ、
# .husky/pre-push に重い test を置く
IDE 統合
- VS Code: Source Control パネル、メッセージ入力 → Ctrl+Enter でコミット
- JetBrains IDE: Commit ツールウィンドウ、変更分の diff を見ながらコミット
- GitHub Desktop: 視覚的、Conventional Commits 風のテンプレ表示
- Magit (Emacs) / Fugitive (Vim): CLI 派にも人気のリッチな統合
FAQ
Q: 著者名 (user.name / user.email) を間違えたままコミットしてしまった
A: 設定を直し、直近なら git commit --amend --reset-author --no-edit。複数なら git rebase -i で個別に。
Q: コミットを取り消したい
A: 履歴は残して取り消す git revert <sha> / 履歴ごと消す git reset --hard HEAD~1(破壊的)。共有ブランチでは revert 一択。
Q: コミットメッセージの良い書き方
A: 件名は 50 字以内・動詞で始める、空行、本文で「なぜ」を書く。Conventional Commits を採用するとレビューも CHANGELOG 生成も楽になります。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- 用語一覧
- エラー一覧
- git本体のインストール(Linux)
- Linuxサーバーへのgit導入とクライアントのセットアップ
- リモートリポジトリをローカルリポジトリとしてクローンする方法
- リモートとローカルのリポジトリを同期(pull)する方法
- 設定の確認
- gitユーザー名とemailの設定
- リモートリポジトリの作成
- ローカルリポジトリの作成
- 新規ファイル/ディレクトリをインデックスに登録
- インデックスの登録状態を確認
- ローカルリポジトリの変更をコミット
- コミット履歴の確認
- クライアントからリモートリポジトリの接続設定、確認、削除
- リポジトリへのプッシュ
- リモートリポジトリからクライアントへのSSHクローン
- リモートとローカルの差分表示
- バージョンの確認
- プロキシの設定
- ローカルをリモートリポジトリの状態に戻す
- ブランチの作成, 一覧表示, 切り替え
- ブランチのマージと削除
- リベース
- .gitignoreの書き方
- .gitignoreの設定が反映されない場合
- 特定のファイルをgitの管理から外す方法
- 参照(ORIG_HEAD, HEAD, FETCH_HEAD)
- git rm [-r --cached] の取り消し
- 一部のディレクトリ/ファイルのみをリポジトリから復元する方法
- ローカルとリモートリポジトリの有無を同期
- pushの取消し方法
- マージツールの起動方法
- Gitで「MERGING」の状態
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?