どうも~、あああああです。
今回はGitHubDeskTopを使ったバックアップのやり方を説明していこうと思います。GitHubDeskTop(GitHub)を使うと様々な事ができるのですが、今回は操作に慣れるという意味も含めてバックアップ的な使い方に絞って説明していきます。
GitHub基本的な単語集
最初にGitHubの基本的な単語の説明をここでしておきます。もしも今後の説明の途中で単語の意味がわからなくなったら、ここで確認してもらえると理解し易いと思います。最初はひとまず読み飛ばしてもOKです。
リポジトリ
一言でいうと、作業スペースのようなものです。作業したデータ保管場所であり、データの変更履歴なども記録しています。
リモートリポジトリ
オンライン上のリポジトリのこと。
ローカルリポジトリ
ローカル(PC内)のリポジトリのこと。
ブランチ
データを保管するためのストレージのようなもの。リポジトリの中にあるストレージのイメージ。リポジトリと同じくローカルブランチもリモートブランチもある。
GitHubDeskTopを使ったバックアップの方法
バックアップ方法(超基本編)
まず、初めにバックアップの大きな流れを説明していこうと思います。
GitHubを使ってバックアップを取る流れは、ローカルのリポジトリで作業を行う⇒その作業を保存する⇒保存したら、その内容をリモートリポジトリの方にも保存するという流れです。具体的に書くと、
- ローカルブランチを作成
- ローカルブランチに変更内容を保存
- ローカルブランチの変更内容をリモートブランチ(リモートリポジトリ)にも保存
まぁ正直、これだけだと絶対意味がわからないと思うので笑 ここからは実際にバックアップを行う流れを画像付きで説明していこうと思います。ぜひ一緒にやってみましょう!
前回の記事でGitHubDesktopにクローンを作るところまでやっていますので、その後から説明します。もし、クローン作成ができてない方はこちらの記事を参考に作成してみてください。
どうも~、あああああです。 今回は、ゲーム制作を行う上で便利なGitHubDeskTopの導入について、超丁寧に説明していきます! GitHubDeskTopの導入手順 […]
ローカル(PC内)フォルダの変更
まず初めに、バックアップがちゃんと取れているか確認するために、変更内容があったことを再現します。ゲーム制作で言えば、新しいキャラクターを作ったとか、ステージを編集したとかですね。今回は例としてフォルダにテキストファイルを作成しましょう!
さっき作成したフォルダにtest1という名前でテキストファイルを作ります。
(作りたいフォルダ内でマウスを右クリックして新規作成から作れます)
テキストに”abcd”とでも書いて保存しておきましょう。
ローカルブランチに変更内容を保存
次にGitHubDesktopに戻ると、下画像のように何か書いてあると思います。(もしこの画面が出てない場合は、左上の”Changes”をクリック)
これはGitHubDesktopが変更された内容(今回でいうテキストファイルの作成&テキストファイルへの”abcd”の書き込み)を記録しており、それを表示しています。
確認できたら、左下にある“Commit to main”というボタンをクリックします。
この作業のことをコミットといいます。
ローカルブランチの変更内容をリモートブランチ(リモートリポジトリ)にも保存
“Commit to main”をクリックすると、下のような画像になると思います。そしたら、最後に“Push origin”をクリックします。これにて3番目の手順が完了し、バックアップを取ることができました!
この作業のことをプッシュをいいます。
バックアップの仕組み
実は、今説明したバックアップの取り方は説明が不足している部分があります。それは、手順1のローカルブランチを作成の部分です。ちゃんと説明しろよ!!って思う方もいると思うのですが、まずは、バックアップの流れを簡単に理解してもらえるようにあえて省きました。
下のとってもイカした画像はさっきのバックアップ方法を図にまとめたものです。
これでさっきの流れを理解してもらえることを心より願っているのですが、注目してほしいのは、test1.txtがローカルリポジトリに保存されている部分です。実はこれは間違いで、正確にはローカルリポジトリではなく、ローカルリポジトリにあるブランチに保存がされています。
つまり、図を書き直すと
こんな感じです。リポジトリの中にブランチがあってそこにデータを保存しています。
mainなんて名前のブランチ作ってないぞ?って思う方がいると思うのですが、リポジトリには必ずブランチが1つ以上存在します。(ブランチがない=ストレージ(データの保存場所)がないということになってしまう)
そして、最初にリポジトリを作成した段階で、ブランチ(mainという名前)が自動で作られます。先程は、このmainブランチにバックアップを取っていたというわけです。
バックアップの取り方(超基本編)の問題点
興味ない方は読み飛ばしてもOKですが、是非一度読んでおくとをオススメします。
さっきの方法でバックアップできたから問題なくね?って思うと思うのですが、この方法には致命的な欠点があります。それは、何かしらの失敗をしたときにデータを戻すことができなくなるという点です。(厳密にはできるけど、手順がめんどくさくなる)
こちらも図を用いて解説をしていきましょう。ローカルのmainブランチで作業をしていて何かしらのファイルを消してしまったとします。
普通に考えれば画像のようにリモートリポジトリ内のリモートブランチ(main)にあるバックアップデータ取ってくればええやんって思うと思うのですが、
GitHubにあるリモートリポジトリのリモートブランチ(main)あるデータは簡単に取ってくることができません。
バックアップの意味!!!
と思う人が100人中150人くらいいると思うので、なんで復元できないかを説明すると、
下の図のようにGitHub側は、”あんたが最後にデータ保存したんやからそのデータ持ってるでしょ?”と思ってるわけです。その為、GitHubはリモートブランチ(main)の内容と同じ内容だと思っているローカルブランチ(main)にデータを持って来ることはできないわけです。
バックアップ方法(基本編)※オススメ
さて、長々と説明しましたが、さっきの問題点を解決する方法は超簡単で、使い捨てできるローカルブランチを作れば良いだけです。
さっそく作っていきましょう。なんでこれだけでさっきの問題が解決するかは最後に説明します。
画像のように”Branch”タブにカーソルを合わせて、”New branch”をクリック
名前を決めるように言われるので、何でも良いですが、今回は”sub1″とでもしておきましょう。
すると、”Current Branch”の部分が”sub1″になっていると思います。
もしなってない場合は”Current Branch”をクリック⇒”sub1″を押すと簡単に変えられます。(下画像参照)
“sub1″のローカルブランチを選択した状態で先程の
- ローカル(PC内)フォルダの変更
- ローカルブランチに変更内容を保存
を行いましょう。手順はバックアップの取り方(超基本編)と同じです。
ここから少し手順が異なります。と言っても難しくはありません。
まず、”Current Branch”を”main”に変更します。(“Current Branch”をクリック⇒”main”を押す)
次に、先程の”Branch”タブにもう一度カーソルを合わせ、”Merge into current branch”を押します。
これはマージという機能で、現在のブランチに他のブランチの内容を合体させる機能になります。
下の画像のような画面になると思うので、”sub1″を選択して、”Create a merge commit”をクリック
この作業のことをマージといいます。
これで、ローカルブランチのmainの中にsub1の内容が保存されました。
そしたら、最後は、超基本編と同じようにローカルブランチ(main)の変更内容をリモートブランチ(main)にも保存しましょう。これで全工程が完了です。今の状態を図で書くと、
こんな感じです。もし何かミスったとしても、
下図のように、sub1ブランチを消し、また新しいローカルブランチをローカルブランチのmainのコピーとして作ることで、データを取ってくることができます。(バックアップが機能する)
また、事実上バックアップが2個あるので、もしも間違えて片方を消してしまっても、データが全部消えるという自体を回避することもできます。
バックアップの復元の仕方
さて、ここまではバックアップの取り方を散々説明してきましたが、ここからは取ったバックアップのデータを復元する方法を説明します。ちなみに超簡単です。
GithubDesktopで”Current Branch”にmainを選択します。
次にバックアップ方法(基本編)と同じように、”Branch”タブから”New Branch”をクリックして適当に名前決めて”Create branch”してください。
これで完了です!
これでさっきの図のようにバックアップの復元ができました。
もしも、”New Branch”をクリックした時に、こんな感じの画面になったら、画像のようにmainを選択して”Create branch”をクリックしてください。
これはどのブランチの内容をベースに新しいブランチを作成するか選択しています。
今回はGitHubDesktopを使ったバックアップの取り方を説明しました。長い間お付き合い頂きありがとうございます。皆さんの力になれたなら幸いです。
この他にも記事を書いておりますので、良かったら是非。