ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
最低限の初期設定
Git をインストールしたら最初にやる設定です:
# 全リポジトリ共通の名前と email
git config --global user.name "Yamada Taro"
git config --global user.email "taro@example.com"
# その他の推奨初期設定
git config --global init.defaultBranch main
git config --global pull.rebase true
git config --global core.editor "vim"
git config --global core.autocrlf input # Linux/macOS
git config --global core.autocrlf true # Windows
# 確認
git config --global --list
git config --get user.name
git config --get user.email
スコープ: global / local / system
| スコープ | 保存先 | 対象範囲 |
|---|---|---|
--system | /etc/gitconfig(OS 全体) | 全ユーザの全リポジトリ |
--global | ~/.gitconfig(ユーザ毎) | そのユーザの全リポジトリ |
--local | .git/config(リポ毎、デフォルト) | 当該リポジトリのみ |
--worktree | .git/config.worktree | 多重 worktree 別個(Git 2.20+) |
優先度は local > global > system。リポジトリ内で local が設定されていれば、それが global を上書きします。
# プロジェクト毎に別 email を使う
cd ~/work/company-project
git config --local user.email "taro@company.co.jp"
# 確認(local 優先で表示)
git config user.email # → taro@company.co.jp
git config --global user.email # → taro@example.com(個人用)
GitHub のプライベート Email
GitHub にコミットすると、デフォルトでは設定した email がコミット履歴に露出します。スパム / 個人特定対策で、noreply email が用意されています:
- GitHub Settings → Emails → Keep my email addresses private をオン
- 表示される 12345678+username@users.noreply.github.com をコピー
- Git に設定
git config --global user.email "12345678+username@users.noreply.github.com"
# 既存リポジトリで過去コミットの email も書き換えたい
git config --local user.email "12345678+username@users.noreply.github.com"
git rebase -i --root --exec "git commit --amend --reset-author --no-edit"
# ⚠ 履歴書き換え。共有リポでは禁止
仕事用 / 個人用の自動切替
includeIf 機能を使えば、ディレクトリパスに応じて自動で設定を切り替えられます:
# ~/.gitconfig
[user]
name = Yamada Taro
email = taro@personal.example.com
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/oss/"]
path = ~/.gitconfig-oss# ~/.gitconfig-work
[user]
email = taro@company.co.jp
signingkey = ABCD1234FEDC
[commit]
gpgsign = true# ~/.gitconfig-oss
[user]
email = 12345678+yamada@users.noreply.github.com
これで ~/work/ 配下では会社 email、~/oss/ 配下では GitHub noreply email を自動で使い分けます。
署名付きコミット (GPG / SSH 署名)
コミットを暗号署名することで、GitHub 上に Verified バッジが付きます。なりすまし防止に有効:
GPG 鍵
# GPG 鍵を生成
gpg --full-generate-key
# RSA 4096 / 期限 / 名前 / email を入力
# 鍵 ID を取得
gpg --list-secret-keys --keyid-format=long
# sec rsa4096/ABCD1234EFGH5678 2024-01-01 [SC]
# Git に登録
git config --global user.signingkey ABCD1234EFGH5678
git config --global commit.gpgsign true
git config --global tag.gpgsign true
# GitHub に公開鍵を登録
gpg --armor --export ABCD1234EFGH5678
# 出力を GitHub Settings → SSH and GPG keys → New GPG key に貼り付け
SSH 鍵で署名 (Git 2.34+)
# 既存の SSH 鍵 (~/.ssh/id_ed25519) を流用可能
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global commit.gpgsign true
# allowed_signers ファイル設定(検証用)
echo "taro@example.com $(cat ~/.ssh/id_ed25519.pub)" >> ~/.ssh/allowed_signers
git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers
# GitHub の SSH キー登録画面で "Signing Key" タイプを選択
確認・修正
# 設定一覧(優先度順、上書き解決済)
git config --list
# 各スコープ個別
git config --global --list
git config --local --list
git config --system --list
# どこで設定されたか追跡
git config --show-origin --get user.email
# file:/home/taro/.gitconfig taro@example.com
# 値の削除
git config --global --unset user.name
git config --local --unset user.email
# 直接ファイル編集
git config --global --edit # ~/.gitconfig を $EDITOR で開く
よくあるトラブル
「Please tell me who you are」エラー
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'taro@DESKTOP.(none)')
name / email が未設定か、リポジトリ固有の設定が必要です。上記コマンドで設定してください。
過去コミットの author を一括変更
# 個人 → 会社 email に書き換え(共有リポでは禁止)
git filter-branch --env-filter '
OLD_EMAIL="taro@personal.example.com"
NEW_NAME="Yamada Taro"
NEW_EMAIL="taro@company.co.jp"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]; then
export GIT_COMMITTER_NAME="$NEW_NAME"
export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]; then
export GIT_AUTHOR_NAME="$NEW_NAME"
export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
# モダンには git-filter-repo を使う
pip install git-filter-repo
git filter-repo --email-callback '
return email.replace(b"taro@personal.example.com", b"taro@company.co.jp")
'
GitHub で「Unverified」バッジが付く
署名鍵を GitHub に登録していないか、コミット時の email と GitHub アカウントの email が一致していません。GitHub Settings → Emails と、Settings → SSH and GPG keys を確認。
ベストプラクティス
- ~/.gitconfig は git 管理(dotfiles リポ)に入れて複数 PC で共有
- 仕事メールは local または includeIf でディレクトリ毎に設定(個人リポに会社 email が紛れ込むのを防ぐ)
- OSS への commit は GitHub noreply email を使う
- セキュリティ重視なら GPG / SSH 署名を有効化
- 新人オンボーディングで git config --global init.defaultBranch main など合わせて設定
FAQ
Q: 設定した email が GitHub に紐づかない
A: コミットの email と、GitHub アカウントに登録された email が一致する必要あり。GitHub Settings → Emails で複数登録可能。
Q: user.useConfigOnly = true は?
A: user.name / user.email が未設定のときに自動推測(hostname など)させない。会社 PC の (none) 混入防止に有効。
Q: 仕事の commit を間違って個人 email で push してしまった
A: 共有前なら git commit --amend --author="Name <new@email>" で直近修正可能。push 済なら filter-repo で書き換え + force push(事前にチーム合意)。
関連
- git config — 設定操作のメインコマンド
- git commit --amend — 直近 author 修正
- git filter-repo — 履歴書き換え(モダン)
- GitHub Verified Commits — 署名による信頼性向上
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?