今回とある作業していてファイル単位で戻したい!と感じることがありました。
そんなときに便利なUnityで使える便利な機能を見つけたので
備忘録として残しておきたいと思います。
はじめに
まず私は現在ゲームを開発していて
GitHubというサービスを用いてプロジェクト管理しています。
そのような方が対象となっていますので
GitHubでのファイル管理などをご存知ではない方はこちらの記事を読んでみてください。
参加中のゲームジャムでもGitHubを利用
先日ゲームジャムで投稿した「妖言のイベント用のボス戦」は
GitHubで管理しているのですが
本編とは別ブランチ(作業スペース)を分けてはいたものの
様々な不要なもの(タイトルボタンを押したらボスのシーンに移動するなど)
がたくさん入ってる状態でした。
ごちゃごちゃして、こりゃ統合できんわい…!
って感じでした。
履歴は確認できるものの…
一応コミット履歴から、作業は確認できるものの
というのがどうしても出てきます。
これはプロの現場でもよくあります。綺麗にブランチを分けろと言われても人間は間違える生き物ですからね…
「ファイル単位で戻す」が良さそう
引き続き変更を確認していると
これはコミット単位で戻しても都合良く
元通りには戻らないぞ…
と絶望していたのですが…
これをどうやって前の状態に戻そうかなと考えたときに
今の状態から前の状態に近づけたほうが早いと判断しました。
変更をリストアップ
まずは変更したものをリストアップしました。
GitHubのコミットログがあったので
コメントを元に洗い出しをしました
こんな感じです。
例えばタイトル用のシーンに関しては
Title.unityと呼ばれるファイルを
前の状態に戻せれば問題なさそうだなぁ
と考えていました。
なのでファイル単位だけでも戻せると作業が劇的に楽になると推測できたので
今回ファイルを戻す方向で動きだしました!
「ファイル単位で戻す」がそもそも大変
「GitHub Desktop」や「SourceTree」でも
ファイル単位で戻すためには面倒な手順を踏む必要がありました。
そんなときにUnityエディタ内にGitHubの機能追加できるプラグインの存在を知りました。
Unity内でバージョン管理が可能になるプラグインです。
その名も「GitHub for Unity」
ではそのプラグインの導入方法などを紹介していきたいと思います。
導入方法
ダウンロード
こちらからダウンロードしてみてください。
左側の「Download GitHub for Unity ~」というのを押せば
unitypackageとしてダウンロード可能です。
プロジェクトへのインストール方法
unitypackageのインストールについては
こちらの記事を参考してください。
導入するとファイル単位で戻せた!
プロジェクトウィンドウでファイルを右クリックするだけで
ファイル単位のヒストリー(変更履歴)を見ることができます。
赤枠の「History」を選択すれば
これまでの履歴がファイル単位で確認できます!
うーん…便利すぎ!
そして赤枠の「Checkout revision ~」は右クリックで出ます。
それを再度クリックするとファイルだけが巻き戻ります!
これでファイル単位で気軽に戻すことが可能ですね!
「GitHub」ウィンドウの出し方
ちなみにHistoryを選択すれば自動でウィンドウが出るのですが
自分でも出すことができます。
「メニュー」→「GitHub」で出るので試してみてくださいね。
試しにコミットしてみる
普段は先程の記事でも紹介していた
「GitHub Desktop」を使ってコミットしていたのですが
今回はせっかくなのでUnity上でコミットしてみようと思います。
「GitHub for Unity」が動かないぞ…
ただファイルを戻したのをコミットしようとすると
なぜかグレーアウトしてコミットできません。
動作していない様子でした。
GitHubへログインする
そこで「GitHub」タブから「Sign in」を選択してログインしてみます。
ボタンを押すとウィンドウが出てくるのですが
アカウント名やメールアドレスとパスワードを入れても
失敗して反応しませんでした・・・
そこで!諦めて下の「Sign in with your browser」という
ウェブブラウザからログインする方法を試みます。
ブラウザに移動し、承認的なボタンを押して進めます(強引)
そしてUnityエディタ側に戻ると…
いけました!
コミットボタンのグレーアウトが消えてボタンを押せるようになりました。
そしてコミット・・・成功!
これでUnityだけでバージョン管理ができてしまいますね!
「GitHub Desktop」ともおさらば?
これで「GitHub Desktop」ともおさらばかもしれない…
と思いましたがすこし使っていると
結局使いなれたGitHubDesktopをちょいちょい使っていました。
今後は併用するスタイルで
作業していこうかなと考えています。
機能はたくさんありそう
ほかにもブランチ作ったり、様々なGitHubの機能が使えるようですね。
余談ですがウィンドウに「lock」という単語も見えたので
おそらくゲームを複数人開発するときに便利な機能が入ってるんじゃないかなと思っています。…が今回は割愛します!
ゲームのPR
今回はこちらのゲームの開発で本記事を書くきっかけとなりました。
参考程度にプレイしていただけると幸いでございます。
本編ゲームアプリはこちら
活動内容のPR
下記が本サイトでの活動内容となります。
最後に
いかがでしたでしょうか?
今回は便利なUnityエディタ上でGitHub管理をする機能を紹介しました。
ほかのGitバージョン管理ソフトでは面倒なこともサクッとできてかなり便利でしたね。
ファイルの巻き戻しなどは「GitHub for Unity」に任せて
これまで通り「GitHub Desktop」との併用で
使い込んでいきたいと思います!
では今回の記事はここでおしまいとなります。
ここまでお読みいただきありがとうございました!
コメント