MVのプロジェクトをリポジトリ管理する時は.gitignoreを意識しよう

MVのプロジェクトをリポジトリ管理してみたので、
備忘録も兼ねて残しておきます。

パブリックリポジトリで公開することのリスク

https://tkool.jp/support/guideline
こちらの利用規約にある通り、
画像や音声ファイルは同シリーズでのみ利用できます。

ですので、誰かがパブリックリポジトリに公開している
MV標準の画像や音声を第三者がダウンロードして勝手に違うプログラム作品で
利用するようなことは、制作者自身で自衛するべきだと思います。

巷にはGitHubページで作品を公開するような手法もありますが、
あの手法自体、危険だと思っています。
ファイルが暗号化されていればまだマシだとは思います。

そもそも画像や音声ファイルをリポジトリ管理してどうなる

画像や音声ファイルはバイナリファイルなので
コードの差分も見れないしですし、ファイルサイズも大きいんです。
あまり知られていないかもしれないですが、GitHubリポジトリサイズは
1GB以上使うと警告がくる可能性があるみたいなんです。

1GBなんて、動画やPSDファイルなんて置こうものなら、
一瞬でなくなることでしょう。
コード管理することが主目的のGitHubでサイズの大きい画像や音声ファイルを
管理すること自体が望ましくないことです。

それならどうする?

.gitignoreでリポジトリ管理から除外しよう。

.gitignoreファイルに除外対象ファイルを記載すれば、
対象ファイルを無視した形でコミットされます。
MV用の.gitignoreファイルを作ってみたので下記に記載します。

# .DS_Store
.DS_Store

# audio
/audio/*

# audio -> bgm
!/audio/bgm/
/audio/bgm/*.m4a
/audio/bgm/*.ogg
!/audio/bgm/.gitkeep

# audio -> bgs
!/audio/bgs/
/audio/bgs/*.m4a
/audio/bgs/*.ogg
!/audio/bgs/.gitkeep

# audio -> me
!/audio/me/
/audio/me/*.m4a
/audio/me/*.ogg
!/audio/me/.gitkeep

# audio -> se
!/audio/se/
/audio/se/*.m4a
/audio/se/*.ogg
!/audio/se/.gitkeep

# fonts
/fonts/*.ttf
!/fonts/.gitkeep
/fonts/bk/

# img
/img/*

# img -> animations
!/img/animations/
/img/animations/*.png
!/img/animations/.gitkeep

# img -> battlebacks1
!/img/battlebacks1/
/img/battlebacks1/*.png
!/img/battlebacks1/.gitkeep

# img -> battlebacks2
!/img/battlebacks2/
/img/battlebacks2/*.png
!/img/battlebacks2/.gitkeep

# img -> characters
!/img/characters/
/img/characters/*.png
!/img/characters/.gitkeep
/img/characters/bk/

# img -> enemies
!/img/enemies/
/img/enemies/*.png
!/img/enemies/.gitkeep

# img -> faces
!/img/faces/
/img/faces/*.png
!/img/faces/.gitkeep
/img/faces/bk/

# img -> parallaxes
!/img/parallaxes/
/img/parallaxes/*.png
!/img/parallaxes/.gitkeep
/img/parallaxes/bk/

# img -> pictures
!/img/pictures/
/img/pictures/*.png
!/img/pictures/.gitkeep

# img -> sv_actors
!/img/sv_actors/
/img/sv_actors/*.png
!/img/sv_actors/.gitkeep
/img/sv_actors/bk/

# img -> sv_enemies
!/img/sv_enemies/
/img/sv_enemies/*.png
!/img/sv_enemies/.gitkeep

# img -> system
!/img/system/
/img/system/*.png
!/img/system/.gitkeep
/img/system/bk/

# img -> tilesets
!/img/tilesets/
/img/tilesets/*.png
/img/tilesets/*.txt
!/img/tilesets/.gitkeep

# img -> titles1
!/img/titles1/
/img/titles1/*.png
!/img/titles1/.gitkeep

# img -> titles2
!/img/titles2/
/img/titles2/*.png
!/img/titles2/.gitkeep

# movies
/movies/*
!/movies/.gitkeep

# save
/save/*
/save/*.rpgsave
!/save/.gitkeep

pushするとこんな感じで管理される。

f:id:yasay:20170808142222p:plain いい感じですね。

もちろん、imgディレクトリには何も入ってません。

f:id:yasay:20170808142326p:plain .gitignoreによる除外設定の目的は達成しました!

プラグインはライセンスの確認を!

PluginはMITライセンスで改変が可能なモノが多いですが、
使用するPluginのライセンスを確認した後にコミットすることをオススメします。

画像や音声ファイルなどは、管理手法を明記する。

README.mdに記載すると良いでしょう。
必要ならコピースクリプトを作成してもよいですね。

プライベートリポジトリも考慮しよう

MVで複数人で作業すること自体が
レアケースだと思いますが、そういったことも可能かもしれません。

今回のケースはどちらかというと、自動ビルドの起点だったり、
一人で複数環境で作業するようなことを前提としてリポジトリ管理について書いています。

ですので、もし他の人に自分のprojectファイルを見られたくない時は、
リポジトリをプライベートにして参照できないようにしましょう。

GitHubではできませんが、
Bitbucketなら5人までならプライベートリポジトリを無料で作成できます。
bitbucket.org

以上、参考になれば幸いです。
よい制作活動を!私はそろそろサーバーサイドに着手しますw