GitHubでファイルを書き換えたあとに、前の状態へ戻したい人。間違えて消したファイルを、元に戻したい人。コミットとはで履歴の見方を知っていると、読みやすくなります。ブラウザだけで進めます。コマンドは使いません。
「ファイルを書き換えたけれど、やっぱり前のほうがよかった」「間違えて消したファイルを戻したい」「コミットを取り消すボタンは、どこ?」
GitHubのファイルの画面には、「取り消し」のボタンはありません。かわりに、履歴から前のバージョンを開き、その内容でファイルを書き直して、コミットします。この記事では、この方法を、3つの段階に分けて、1回のクリックごとの画面で説明します。
- ファイルを書き換えて前の内容に戻す
- 消したファイルを戻す
- 応用: マージしたプルリクエストを「Revert」でまとめて戻す
前の段階の操作を覚えれば、次の段階が分かるように、順番に並べています。段階3は、読み飛ばしても、前の2つは使えます。
戻すとはどういうことか
GitHubは、ファイルを保存するたびに、「コミット」という記録を残します。ファイルの履歴を開くと、記録が新しい順に並びます。前のバージョンの中身は、記録に残っていて、あとから開けます。
「戻す」は、前のバージョンの内容で、ファイルを書き直して、新しいコミットを作ることです。履歴が巻き戻って、書き換えの記録が消えるわけではありません。この記事の画面で、記録が増える様子を、実際に確かめます。
戻し方の選び方
| 戻したいもの | この記事の方法 |
|---|---|
| 書き換えたファイルを、前の内容に戻したい | 段階1。履歴から前のバージョンを開き、内容をコピーして、書き直す |
| 消したファイルを戻したい | 段階2。消す前のバージョンを開き、中身をコピーして、同じ名前で作り直す |
| マージしたプルリクエストを、まとめて戻したい | 段階3。プルリクエストの画面の「Revert」のボタン |
準備 練習用のファイルを作って書き換える
戻す練習のために、先に、ファイルを作って、書き換えます。すでに書き換えたファイルがあるときは、段階1へ進みます。
リポジトリのトップで「Code」の左の「+」を押します。

「Create new file」と「Upload files」の2つが出ます。「Create new file」を選びます。

新しいファイルを作る画面が開きます。上の「Name your file…」がファイル名の欄で、下の広い欄が中身の入力欄です。

ファイル名に「hello.txt」、中身に「Hello, GitHub!」と「これは、練習用のファイルです。」の2行を入れました。右上の「Commit changes…」が、濃い緑に変わります。

「Commit changes…」を押すと、「Commit changes」の窓が開きます。「Commit message」(コミットの説明)の欄には、「Add hello.txt with greeting and practice text」という候補が入っていて、下に「Message and description suggested by Copilot.」(Copilotが提案したメッセージ)と出ています。

候補は、自分の言葉に書き換えてかまいません。「練習用のファイルを追加」と入れて、「Commit changes」を押します。

リポジトリのトップに戻ります。ファイルの一覧に「hello.txt」が増え、コミットの数が「4 Commits」になりました。

「hello.txt」を開きます。上の行の右端にある「History」が、履歴を見るボタンです。その下の、右端に並ぶアイコンの中の「えんぴつ」が、編集のボタンです。

えんぴつを押すと、編集の画面が開きます。ファイルの中身が、入力欄に出ます。書き換える前は、右上の「Commit changes…」が薄い色です。

1行目を「こんにちは、GitHub!」、2行目を「これは、書き換えたファイルです。」に書き換えます。「Commit changes…」が、濃い緑に変わります。

「Commit changes…」を押して、説明の欄に「あいさつを書き換え」と入れ、「Commit changes」を押します。

ファイルのページに戻ります。上の行は、「あいさつを書き換え」のコミットに変わり、書き換えた2行が表示されます。

段階1 書き換えたファイルを前の内容に戻す
ここまでで、「hello.txt」の履歴に、2つの記録ができました。書き換える前の状態を、いまのファイルに戻します。
ファイルのページの「History」(準備の画像の「①History」と同じ場所)を押します。そのファイルだけの、コミットの一覧が出ます。見出しは「History for secret-test / hello.txt on main」です。新しい順に、「あいさつを書き換え」と「練習用のファイルを追加」が並びます。

戻したいのは、書き換える前の状態です。下の「練習用のファイルを追加」のコミットの、右のアイコンを見ます。3つのうち、真ん中の書類の形のアイコンに、マウスを近づけると、「View code at this point」(この時点のコードを見る)と出ます。

押すと、そのコミットの時点のファイルが開きます。左上のブランチの欄が、コミットのID(この例では「91b9591」)に変わります。ファイルの右上の並びには、「Raw」、コピー、ダウンロードのアイコンがあり、「えんぴつ」はありません。古いバージョンは、見るだけの画面です。

右上のコピーのアイコンに、マウスを近づけると、「Copy raw file」(ファイルの中身を、そのままコピーする)と出ます。押します。

左上のブランチの欄の左端にある、小さな「<」(古いバージョンの画像の③)を押すと、最新の「main」の、同じファイルのページに戻ります。ブランチの欄が「main」に戻り、内容は、書き換えたあとの文章です。

右上のえんぴつ(前の画像の②)を押して、編集の画面を開きます。入力欄には、書き換えたあとの文章が入っています。

入力欄のどこかをクリックして、キーボードの「Ctrl」と「A」を同時に押し、中身をすべて選びます。続けて「Ctrl」と「V」を同時に押して、貼り付けます。入力欄の中身が、書き換える前の2行(「Hello, GitHub!」と「これは、練習用のファイルです。」)に入れ替わります。2行目は、行の頭が少し右にずれて見えます。この例のファイルでは、2行目の頭に空白が入っているためです。空白があっても、戻す操作は同じです。

貼り付けると選んでいた文章がコピーした文章に置き換わります。

「Commit changes…」を押して、説明の欄に「あいさつを元に戻す」と入れ、「Commit changes」を押します。

ファイルのページに戻ります。上の行が「あいさつを元に戻す」になり、中身は、書き換える前の文章です。

もう一度「History」を押すと、コミットが3つになっています。いちばん上に「あいさつを元に戻す」が増えました。「あいさつを書き換え」も、「練習用のファイルを追加」も、そのまま残っています。

いちばん上のコミットを開くと、変わった内容が、赤い行と緑の行で出ます。赤い行(先頭に「-」)が、書き換えた文章です。緑の行(先頭に「+」)が、戻した文章です。

段階1で、書き換えたファイルを前の内容に戻せました。戻した操作も、新しいコミットとして残ります。次は、消したファイルを戻します。
段階2 消したファイルを戻す
ファイルを消しても、消す前のコミットには、中身が残っています。段階1と同じ考え方で、消す前の状態を開き、中身をコピーして、同じ名前のファイルを作り直します。練習用に、「note.txt」を作って、消して、戻します。
段階2と段階3の画像は、「secret-test」を非公開に切り替えたあとに撮影しました。リポジトリ名の横に「Private」の印と鍵の印が付いています。この記事の準備と段階1を終えたばかりのリポジトリとは、次の点が違います。コミットの数(画像は15から始まります)、ブランチの数、ファイルの一覧にある「memo.txt」、プルリクエストの番号(画像は「#3」と「#4」)です。操作は、この記事のとおりに進めて大丈夫です。数字だけは、自分の画面のものを見てください。切り替え方は、公開と非公開を切り替える方法で、画面つきで説明しています。
リポジトリのトップで「Code」の左の「+」を押します。

「Create new file」を選びます。

ファイル名の欄が開きます。

ファイル名に「note.txt」、中身に「これは、あとで消すメモです。」を入れます。

「Commit changes…」を押すと、コミットの窓が開きます。説明の欄には、「Add temporary note in note.txt」という候補が入っています。

「メモを追加」と書き換えて「Commit changes」を押します。

トップの一覧に「note.txt」が増え、コミットの数が「16 Commits」になりました。

ファイルの一覧の「note.txt」の名前を押して開きます。右上の「…」を押します。

メニューの一番下の「Delete file」(ファイルを削除)を押します。

「This file was deleted.」(このファイルは削除されました)と出ます。右上の「Commit changes…」を押します。

説明の欄に「メモを削除」と入っていることを確かめて、「Commit changes」を押します。

トップの一覧から、「note.txt」が消えました。コミットの数は「17 Commits」です。

トップの「17 Commits」(前の画像の②)を押して、リポジトリ全体の履歴を開きます。「メモを削除」の下に、「メモを追加」があります。これが、「note.txt」を作ったコミットです。開きます。

そのコミットの画面が開きます。「1 file changed」と出て、「note.txt」の中身が、緑の行(先頭に「+」)で出ています。右上の「Browse files」(ファイルを見る)を押します。

そのコミットの時点の、リポジトリのトップが開きます。左上のブランチの欄が、コミットのID(この例では「2a1915d」)になり、一覧に「note.txt」があります。

「note.txt」を押すと、その時点の中身が出ます。段階1と同じく、「えんぴつ」はなく、「Raw」、コピー、ダウンロードのアイコンがあります。

コピーのアイコンにマウスを近づけると、「Copy raw file」と出ます。押して、中身をコピーします。

段階1では、「<」を押して最新に戻れました。ここでは、「note.txt」が最新の「main」にはもうないので、「<」にマウスを近づけると、「File does not exist on default branch」(デフォルトのブランチに、このファイルはありません)と出ます。

かわりに、ブランチの欄を押して、「Switch branches/tags」の一覧から、「main」(default)を選びます。

「404 – page not found」と出ます。「The main branch of secret-test does not contain the path note.txt.」は、「mainブランチには、note.txtがありません」という意味です。消えていることの確認になります。緑の「Return to the repository overview」を押します。

最新のリポジトリのトップに戻りました。ブランチの欄は「main」です。2-1と同じく、「+」を押して、「Create new file」を選びます。

ファイル名の欄と入力欄が開く画面は2-1の画像(ファイル名の欄が空の画面)と同じです。

ファイル名の欄に、消したファイルと同じ名前「note.txt」を入れます。入力欄をクリックして、キーボードの「Ctrl」と「V」を同時に押して、貼り付けます。コピーした「これは、あとで消すメモです。」が入ります。

「Commit changes…」を押します。説明の欄には、またコミットの候補が入っています。

「削除したメモを元に戻す」と書き換えて「Commit changes」を押します。

トップの一覧に、「note.txt」が戻りました。コミットの数は「18 Commits」です。

段階2で、消したファイルを戻せました。段階1と同じく、戻す操作が、新しいコミットとして残ります。次は、ブランチとプルリクエストで入れた変更を、まとめて戻す方法です。
段階3 応用 マージしたプルリクエストをまとめて戻す
ここからは、応用です。ブランチとプルリクエストを使って入れた変更を、まとめて取り消す方法です。読み飛ばしても、段階1と段階2は使えます。先に、画面に出る言葉を、1つずつ説明します。
- ブランチ: 「main」とは別に、変更を書き込む場所。コミットの窓で「Create a new branch for this commit and start a pull request」を選ぶと、新しいブランチができます
- プルリクエスト: 変更を「main」に取り込んでよいか、確認する画面。画面には「wants to merge 1 commit into main from …」(このブランチの1つのコミットを、mainに取り込みたい)と出ます
- マージ: 変更を「main」に取り込むこと
「hello.txt」を開いてえんぴつを押します。

編集の画面が開きます。書き換える前は、右上の「Commit changes…」が薄い色です。

1行目を「こんばんは、GitHub!」、2行目を「これは、ブランチで書き換えたファイルです。」に書き換えます。「Commit changes…」が濃い緑になるので、押します。

コミットの窓の説明の欄に、「あいさつを変更」と入れます。保存する場所は、段階1と段階2で選んでいた「Commit directly to the main branch」ではなく、下の「Create a new branch for this commit and start a pull request」を選びます。

選ぶと、ブランチの名前の欄が出ます(画像では隠しています)。窓の題名が「Propose changes」(変更を提案する)に、ボタンの名前も「Propose changes」に変わります。押します。

「Open a pull request」(プルリクエストを開く)の画面になります。「Able to merge. These branches can be automatically merged.」(マージできます。ブランチは、自動で取り込めます)と出ます。題名の欄には、コミットの説明が入っています。緑の「Create pull request」を押します。

この画面を下へ進めると、変更の中身が出ます。「Showing 1 changed file with 2 additions and 2 deletions.」は、「1つのファイルで、2行を足して、2行を消した」という意味です。赤い行が消える行、緑の行が足される行です。

プルリクエストの画面(「#3」)が開きます。「Open」の印があり、「No conflicts with base branch」(ぶつかる変更はありません)と出て、緑の「Merge pull request」のボタンがあります。押します。

確認の欄が開きます。緑の「Confirm merge」を押します。

「Merged」の印に変わり、「merged commit … into main」の行の右に、「Revert」のボタンが出ます。これを押します。

「Open a pull request」の画面が、もう一度開きます。題名は、「Revert “あいさつを変更”」で、はじめから入っています。緑の「Create pull request」を押します。

下へ進めると、変更の中身が出ます。さきほどとは逆に、書き換えた2行が赤い行、書き換える前の2行が緑の行です。

できたプルリクエスト(「#4」)の説明は「Reverts #3」(#3を取り消す)です。さきほどと同じく、「Merge pull request」を押します。

確認の欄が開くので「Confirm merge」を押します。

「Merged」の印に変わり、「Pull request successfully merged and closed」と出ます。

「hello.txt」を開くと、上の行は「Revert “あいさつを変更”」で、中身は、書き換える前の文章に戻っています。

リポジトリの履歴には、「Merge pull request #4」と「Revert “あいさつを変更”」が増えています。「Merge pull request #3」と「あいさつを変更」も、そのまま残っています。

段階3で、マージしたプルリクエストを、「Revert」でまとめて戻せました。「Revert」も、新しいコミットとプルリクエストを作るだけで、履歴は消えません。
つまずいたとき
古いバージョンの画面にえんぴつのボタンがない
古いバージョンの画面は、見るだけです。ブランチの欄が、コミットのIDになっているときは、古い時点を見ています。「<」を押して、最新の「main」に戻ってから、えんぴつで編集します。
消したファイルのページで「<」が使えない
最新の「main」に、そのファイルがないためです。ブランチの欄を押して、「main」を選びます。「404」の画面が出たら、「Return to the repository overview」を押します(段階2のステップ2-4)。
戻したい内容がどのコミットか分からない
ファイルの履歴で、コミットの説明を押すと、そのコミットで何が変わったかが、赤い行と緑の行で見られます。赤い行が消えた内容、緑の行が足した内容です。
よくある質問
戻したら書き換えた記録は消えますか
消えません。段階1の履歴で、「あいさつを書き換え」が残り、戻した操作は「あいさつを元に戻す」という新しいコミットになりました。
非公開のリポジトリでも同じ手順で戻せますか
戻せます。段階2と段階3は、非公開に切り替えたリポジトリで操作して、最後まで戻せました。公開のときと並べて見比べてはいませんが、操作に使ったボタンと手順は、段階1と同じでした。
「Revert」のボタンはファイルにも使えますか
この記事で開いたファイルのページには、「Revert」のボタンは出ていませんでした。「Revert」のボタンが出たのは、マージしたプルリクエストの画面です(段階3)。
戻す前の状態をあとからもう一度開けますか
開けます。戻したあとも、履歴には、書き換えたコミットが残っています。そのコミットの書類の形のアイコンから、その時点のファイルを、もう一度見られます。
次に知りたいこと
- コミットの見方を知りたい → GitHubのコミットとは?履歴とコミットIDの見方を画面でわかりやすく解説
- ファイルを入れる手順を知りたい → GitHubにファイルをアップロードする方法【画像つき】ブラウザだけの手順
- 消した内容が履歴に残る様子を見たい → GitHubは安全?危険性と気をつけること【公開前チェックリストつき】
- 公開と非公開を切り替えたい → GitHubの公開と非公開を切り替える方法【画像つき】リポジトリの設定

