ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Git とは
Git は、ソースコードの変更履歴を記録・追跡する分散型バージョン管理システム (Distributed Version Control System) です。2005 年、Linux カーネル開発のために Linus Torvalds が作成しました。
従来の集中型 VCS(Subversion 等)と異なり、各開発者のローカルに完全な履歴のコピーが存在します。オフラインでもコミット可能で、サーバー障害時も作業を継続できます。
集中型 VCS との違い
| 項目 | 集中型 (SVN/CVS) | 分散型 (Git/Mercurial) |
|---|---|---|
| 履歴の場所 | 中央サーバーのみ | 各開発者のローカル + リモート |
| オフライン作業 | コミット不可 | 完全に可能 |
| ブランチ | 高コスト(コピー) | 軽量(ポインタのみ) |
| マージ | 難しい | 高度なマージ機能 |
| 速度 | ネットワーク依存 | ローカル操作は高速 |
インストールと初期設定
# macOS
brew install git
# または Xcode Command Line Tools に同梱
xcode-select --install
# Ubuntu / Debian
sudo apt install -y git
# Windows
# https://git-scm.com/download/win から Git for Windows をインストール
# バージョン確認
git --version
# git version 2.43.x
# 初回セットアップ(必須)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
# 既定エディタ
git config --global core.editor "code --wait"
# 既定ブランチ名(GitHub に合わせて main)
git config --global init.defaultBranch main
# 設定確認
git config --list
基本ワークフロー
# 1. リポジトリを作成
git init my-project
cd my-project
# 2. ファイルを作成
echo "# My Project" > README.md
# 3. ステージング(add)
git add README.md
git add . # 全変更を追加
# 4. コミット(commit)
git commit -m "Initial commit"
# 5. リモートを追加
git remote add origin https://github.com/user/my-project.git
# 6. プッシュ(push)
git push -u origin main
# 既存リポジトリをクローン
git clone https://github.com/user/repo.git
cd repo
# 状態確認
git status
# 変更差分確認
git diff
git diff --staged
# ログ確認
git log --oneline --graph --all
ブランチと統合
# ブランチ作成・切替
git branch feature/login # 作成のみ
git checkout feature/login # 切替(旧コマンド)
git switch feature/login # 切替(推奨、Git 2.23+)
git checkout -b feature/login # 作成 + 切替
git switch -c feature/login # 作成 + 切替(推奨)
# ブランチ一覧
git branch # ローカル
git branch -a # リモート含む
# マージ
git switch main
git merge feature/login # マージコミット作成
git merge --no-ff feature/login # 必ずマージコミット作成
git merge --squash feature/login # 1 コミットに統合
# リベース(履歴を直線化)
git switch feature/login
git rebase main
# ブランチ削除
git branch -d feature/login # マージ済のみ削除
git branch -D feature/login # 強制削除
# リモートブランチ削除
git push origin --delete feature/login
.gitignore
追跡しないファイルのパターンを記述します:
# 依存ディレクトリ
node_modules/
vendor/
__pycache__/
# ビルド成果物
dist/
build/
*.o
*.class
# IDE / エディタ
.idea/
.vscode/
*.swp
.DS_Store
# 環境変数(重要!)
.env
.env.local
*.key
*.pem
# ログ
*.log
logs/
# OS
Thumbs.db
desktop.ini
リモートホスティングサービス
| サービス | 運営 | 特徴 |
|---|---|---|
| GitHub | Microsoft | 世界最大、OSS 中心、Actions(CI/CD)、Copilot |
| GitLab | GitLab Inc. | セルフホスト可、内蔵 CI/CD、企業利用多い |
| Bitbucket | Atlassian | Jira / Confluence 連携、無料プライベートリポジトリ |
| Azure DevOps | Microsoft | エンタープライズ、Azure 統合 |
SSH 鍵セットアップ
# Ed25519 鍵を生成(推奨)
ssh-keygen -t ed25519 -C "you@example.com"
# 公開鍵を表示してコピー
cat ~/.ssh/id_ed25519.pub
# GitHub に登録: Settings → SSH and GPG keys → New SSH key
# にペーストして保存
# 接続テスト
ssh -T git@github.com
# Hi username! You've successfully authenticated...
# リモートを SSH に変更
git remote set-url origin git@github.com:user/repo.git
ブランチ戦略
- GitHub Flow:
main+feature/*のみ。シンプル、Web サービス向け。PR でレビュー → main マージ → 即デプロイ - Git Flow:
main/develop/feature/*/release/*/hotfix/*。複雑だがリリースサイクルの厳格な製品向け - Trunk Based Development:
mainに直接コミット。短命ブランチ。CI/CD 必須
Pull Request 文化と CI/CD
現代の開発では feature ブランチで作業 → Pull Request (Merge Request) を作成 → コードレビュー → CI(自動テスト)緑 → マージという流れが標準です。
# GitHub Actions の例 (.github/workflows/ci.yml)
name: CI
on:
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
- run: composer install --no-progress
- run: vendor/bin/phpunit
- run: vendor/bin/phpstan analyse
FAQ
Q: Git と GitHub の違いは?
A: Git はバージョン管理ツール(ソフトウェア)、GitHub は Git リポジトリのホスティングサービス(Web サイト)です。GitHub なしでも Git は使えます。
Q: merge と rebase どちらを使うべき?
A: チームの方針次第。履歴を綺麗に保ちたいなら rebase、マージの事実を残したいなら merge。push 済みコミットの rebase は禁止。
Q: 間違ったコミットを取り消したい
A: 未 push なら git reset --soft HEAD~1、push 済なら git revert で打ち消しコミットを作成。
Q: 大きなファイル(動画 / バイナリ)を扱いたい
A: Git LFS(Large File Storage)を使う。git lfs install → git lfs track "*.psd"
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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」の状態a
- git
- Sourcetree
人気ページ
- 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アノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?