ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
基本: git push
ローカルブランチのコミットをリモートリポジトリに送るコマンド。チーム共有の起点になる操作です。
# リモート origin の main ブランチへ
git push origin main
# 現在のブランチを同名でリモートへ
git push origin HEAD
# 短縮形(追跡設定済なら)
git push
初回 push と追跡設定(-u)
新しいローカルブランチを初めてリモートに push するときは -u (--set-upstream) で追跡関係を作ります。以降は git push / git pull だけで動きます。
# 新ブランチ作成
git checkout -b feature/login
# 初回 push(-u で追跡設定)
git push -u origin feature/login
# 以降は省略可
git push
git pull
# 追跡設定だけ後付け
git branch --set-upstream-to=origin/feature/login
# 現在の追跡先確認
git branch -vv
主なオプション
| オプション | 動作 |
|---|---|
-u / --set-upstream | 追跡先設定(初回 push 用) |
--all | 全ローカルブランチを push |
--tags | タグも一緒に push |
--follow-tags | 注釈付きタグ(annotated)のみ push |
--delete branchname | リモートブランチ削除 |
--force / -f | 強制 push(危険) |
--force-with-lease | 安全な強制 push(推奨) |
-n / --dry-run | 実際には push せず動作確認 |
-v / --verbose | 詳細表示 |
タグの push
# タグ作成
git tag v1.0.0
git tag -a v1.0.0 -m "Release 1.0.0" # 注釈付き(推奨)
# タグだけ push(デフォルトの push にタグは含まれない)
git push origin v1.0.0
git push origin --tags # 全タグ
git push --follow-tags # 注釈付きタグのみ
# リモートタグ削除
git push origin --delete v1.0.0
git push origin :refs/tags/v1.0.0 # 旧書き方
リモートブランチの削除
# 推奨
git push origin --delete feature/login
# 旧書き方(同じ意味)
git push origin :feature/login
# ローカルも消す
git branch -d feature/login
force-with-lease: 安全な強制 push
rebase したブランチを push する際、リモートに自分が知らないコミットが来ていたら誰かの作業を消す事故になります。--force-with-lease はそれを防ぎます。
# ❌ 危険: 他人の commit を含めて全部上書き
git push --force origin main
# ✅ 安全: ローカルが知っているリモート状態と一致しなければ拒否
git push --force-with-lease origin feature/login
# Git 2.30+ では更に安全な --force-if-includes も併用可
git push --force-with-lease --force-if-includes origin feature/login
共有ブランチ(main / develop)には絶対に --force しないのが鉄則です。
リモートの設定確認
# リモート一覧
git remote -v
# origin git@github.com:user/repo.git (fetch)
# origin git@github.com:user/repo.git (push)
# リモート追加
git remote add upstream git@github.com:original/repo.git
# URL 変更(HTTPS ↔ SSH 切替)
git remote set-url origin git@github.com:user/repo.git
# リモート削除
git remote remove upstream
複数リモート(fork 運用)
OSS の fork 運用では、自分の fork が origin、本家が upstream という慣習です。
# 本家を upstream として追加
git remote add upstream https://github.com/original/repo.git
# 本家の最新を取り込み
git fetch upstream
git checkout main
git merge upstream/main
# 自分の fork に push
git push origin main
認証: HTTPS と SSH
| 方式 | 長所 | 注意 |
|---|---|---|
| HTTPS + PAT | ファイアウォール越えやすい | パスワード代わりに Personal Access Token 必須 |
| SSH 鍵 | 毎回認証不要、高速 | 鍵管理(ssh-add / config)が必要 |
| HTTPS + GitHub CLI | gh auth login で簡単 | gh コマンドの導入が必要 |
# SSH 鍵生成
ssh-keygen -t ed25519 -C "you@example.com"
# 公開鍵を GitHub の Settings → SSH and GPG keys に登録
cat ~/.ssh/id_ed25519.pub
# 接続テスト
ssh -T git@github.com
# → Hi user! You've successfully authenticated...
# HTTPS → SSH に切替
git remote set-url origin git@github.com:user/repo.git
push を rebase で前処理(履歴をきれいに)
# main を最新化
git fetch origin
git rebase origin/main # feature の上から main 最新コミットの上に積み直す
# コンフリクト解決後
git rebase --continue
# force-with-lease で push(rebase 後は履歴が書き換わるので force 必須)
git push --force-with-lease origin feature/login
よくあるエラー
| エラー | 原因 | 対処 |
|---|---|---|
rejected (non-fast-forward) | リモートに新しい commit がある | git pull --rebase してから push |
rejected (fetch first) | 同上 | pull / fetch + rebase |
permission denied (publickey) | SSH 鍵未設定 / 鍵間違い | ssh-add, 鍵を GitHub に登録 |
remote: HTTP 403 | 権限なし or PAT 期限切れ | PAT 再発行 / 権限確認 |
protected branch hook declined | ブランチ保護で直接 push 禁止 | PR を作って merge |
FAQ
Q: 全ブランチを一括 push したい
A: git push --all origin。タグも含めるなら git push --all --tags origin。
Q: push 前に hook で lint や test を走らせたい
A: .git/hooks/pre-push に書くか、Husky / lefthook で管理。CI でも走らせて二重防御。
Q: 巨大ファイルを誤って push してしまった
A: git filter-repo で履歴から削除して force push。一度公開された情報はキャッシュ済かもしれないので注意。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
コメントを削除してもよろしいでしょうか?