ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
push 取り消しの 3 つの方針
| 方針 | 概要 | 安全性 |
|---|---|---|
| A. revert で打ち消す | 新しいコミットで変更を相殺。履歴は残る | ◎ 推奨 |
| B. reset --hard + push -f | 履歴を強制的に過去へ巻き戻す | △ 個人ブランチでのみ |
| C. リモート側で reset | --shared 付きベアリポジトリ等で B が拒否されたときの最終手段 | × 共有リポへの直接操作 |
A. 推奨:git revert で打ち消す
最も安全な方法です。元の履歴は残したまま「相殺するコミット」を追加するだけなので、他の開発者を巻き込んだ事故になりません。
# 取り消したいコミット ID を確認
git log --oneline -10
# 打ち消しコミットを作成(メッセージは自動生成)
git revert c545149
# リモートへ通常 push
git push origin master
複数コミットを一気に打ち消したい場合は git revert c545149..HEAD のように範囲指定できます。マージコミットを revert したい場合は -m 1 を付けます。
B. 強制:reset --hard + push -f
「履歴から完全に消したい」「個人ブランチで誰にも影響しない」というケース限定です。main / master / release 等の共有ブランチではやらないでください。
# まずバックアップブランチを作る
git branch backup-before-reset
# 戻したいコミット(=この時点を最新にする)まで巻き戻す
git reset --hard c545149
# リモートへ強制 push
git push -f origin master
c545149 の部分には戻したいコミットのリビジョン番号を指定します。HEAD~1 のように相対指定も可能(直前 1 件を取り消し)。
失敗した場合に備えて git reflog で復旧できます。reflog は通常 90 日間残るので、慌てずに git reset --hard HEAD@{1} 等で元の HEAD に戻せます。
C. --shared 付きベアリポジトリで拒否されるとき
リモートが git init --shared --bare や git clone --bare で作られている場合、デフォルトで非 fast-forward な push(つまり force push)を拒否します。具体的には以下のメッセージで弾かれます。
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
この場合はリモートリポジトリ側に SSH 接続して、サーバ上で直接ブランチを戻します。
# サーバへ SSH 接続
ssh user@git-server
# ベアリポジトリへ移動
cd /srv/git/myrepo.git
# 該当コミットへ HEAD を巻き戻す
git reset --soft c545149
--soft はワークツリーを持たないベアリポジトリでも安全に使えます。実施後は各開発者に「先頭が変わったので git fetch && git reset --hard origin/master してほしい」と必ず連絡してください。
事前に必ずやること
git branch backup-YYYYMMDDでバックアップブランチを作る- 関係するメンバーに force push の時刻と対象ブランチを事前告知する
- 取り消し対象のコミット ID(
git log --oneline)と戻したい先のコミット ID をメモする - その時点の作業を
git stashですべて退避しておく
force push 後のチームメンバーの復旧手順
誰かが force push した後、他の開発者は通常の git pull ではコンフリクトしてしまいます。以下のようにリモートの状態に強制的に合わせてもらいます。
# 最新を取得
git fetch origin
# ローカルブランチを破棄してリモートに合わせる
git reset --hard origin/master
関連
- git — 親カテゴリ
- remote: error: denying non-fast-forward —
--shared時の典型エラー - Gitで「MERGING」の状態 — マージ途中で取り消したいときの関連トラブル
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
コメントを削除してもよろしいでしょうか?