ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
git init の基本
既存のディレクトリを Git 管理下に置くには git init を実行します。.git/ という隠しディレクトリが作られ、ここに履歴やオブジェクトが格納されます。
# 既存ディレクトリを初期化
cd ~/projects/myapp
git init
# 出力 (Git 2.28+)
# Initialized empty Git repository in /home/user/projects/myapp/.git/
# 新規ディレクトリごと作成
git init myapp
cd myapp
# 現在の状態確認
git status
# On branch main
# No commits yet
デフォルトブランチ名を main に
Git 2.28 以前は master、それ以降は OS によって異なります。チームで揃えるためにグローバル設定:
# グローバルで main に統一(最初に一度だけ)
git config --global init.defaultBranch main
# 確認
git config --global init.defaultBranch
# main
# 既に master で init してしまったら改名
git branch -m master main
.gitignore の作成
追跡したくないファイル(依存ライブラリ、ビルド成果物、秘密情報)を .gitignore に列挙します。プロジェクトのルートに置きます。
# /.gitignore
# OS
.DS_Store
Thumbs.db
# Editor
.idea/
.vscode/
*.swp
# Node.js
node_modules/
npm-debug.log*
.env.local
# PHP / Laravel
vendor/
storage/*.key
storage/logs/*
storage/framework/cache/*
.env
# Python
__pycache__/
*.pyc
.venv/
# Build artifacts
dist/
build/
*.o
*.class
# Logs
*.log
テンプレートは github/gitignore リポジトリから言語別に取得できます。
初回コミット
# 状態確認
git status
# Untracked files: .gitignore, README.md, src/...
# ユーザ情報(未設定なら最初に)
git config user.name "Taro Yamada"
git config user.email "taro@example.com"
# 全ファイルをステージング
git add .
# ステージング内容を確認
git status
# コミット
git commit -m "Initial commit"
# 履歴
git log --oneline
# a1b2c3d (HEAD -> main) Initial commit
リモートリポジトリへの紐付け
# GitHub で空リポジトリを作成しておく
# https://github.com/new
# SSH で紐付け(推奨)
git remote add origin git@github.com:user/myapp.git
# HTTPS で紐付け(CI 等)
git remote add origin https://github.com/user/myapp.git
# 確認
git remote -v
# origin git@github.com:user/myapp.git (fetch)
# origin git@github.com:user/myapp.git (push)
# 初回 push(-u で upstream 設定)
git push -u origin main
# 以降は単に
git push
git pull
ベアリポジトリ (--bare)
自前のサーバを共有リモートとして立てる場合は ベアリポジトリ(作業ツリー無し)で初期化します。慣習として .git サフィックスを付けます。
# サーバ側 (例: 192.168.1.10)
ssh git@192.168.1.10
mkdir -p /srv/git/myapp.git
cd /srv/git/myapp.git
git init --bare
# 出力: Initialized empty Git repository in /srv/git/myapp.git/
# .git/ ではなく、カレント直下に HEAD / objects/ refs/ などが作られる
# クライアント側
git remote add origin git@192.168.1.10:/srv/git/myapp.git
git push -u origin main
.git ディレクトリの中身
| パス | 役割 |
|---|---|
HEAD | 現在のブランチ参照(ref: refs/heads/main) |
config | このリポジトリ専用の設定 |
objects/ | 全コミット/ツリー/blob のオブジェクトストア |
refs/heads/ | ローカルブランチ参照 |
refs/remotes/ | リモートブランチのキャッシュ |
refs/tags/ | タグ |
hooks/ | pre-commit / pre-push 等のフック(サンプル付) |
info/exclude | 個人用 .gitignore(共有しない) |
index | ステージング領域(バイナリ) |
logs/ | reflog(HEAD の動き) |
テンプレートを使った init
# テンプレートディレクトリを作っておく
mkdir -p ~/git-template/hooks
cat > ~/git-template/hooks/pre-commit <<'EOF'
#!/bin/sh
# コミット前に lint 実行
npm run lint || exit 1
EOF
chmod +x ~/git-template/hooks/pre-commit
# テンプレートを使って init
git init --template=~/git-template
# グローバル設定にしてもよい
git config --global init.templateDir ~/git-template
サブモジュール / Worktree
# 別リポジトリを子として組み込む
git submodule add https://github.com/user/lib.git libs/lib
git submodule init
git submodule update --recursive
# 1 つのリポジトリで複数ワーキングツリーを持つ
git worktree add ../myapp-hotfix hotfix/1.2.3
# ../myapp-hotfix で hotfix/1.2.3 ブランチを別ディレクトリで作業可能
git worktree list
git worktree remove ../myapp-hotfix
typical な初期化スクリプト
#!/bin/bash
# new-project.sh
set -euo pipefail
NAME=$1
mkdir "$NAME" && cd "$NAME"
git init -b main
cat > .gitignore <<EOF
node_modules/
.env
dist/
*.log
EOF
cat > README.md <<EOF
# $NAME
TODO: write description
EOF
git add .
git commit -m "Initial commit"
echo "Repository created: $(pwd)"
echo "Next: git remote add origin <URL> && git push -u origin main"
FAQ
Q: git init 後にやり直したい
A: rm -rf .git で履歴ごと削除して再 init。作業ファイルは消えません。
Q: 既存ディレクトリの一部だけ管理したい
A: ルートで init し、.gitignore で対象外を除外する方が素直。サブディレクトリ単独 init も可能だが複雑になる。
Q: bare と通常の違いは?
A: bare は作業ツリーが無く、push 受け取り専用。複数開発者で共有する中央リポジトリとして使う。GitHub 内部もベアリポジトリ。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
コメントを削除してもよろしいでしょうか?