RimWorld私的wiki - GitとGitHubとお付き合い

GitとGitHubとお付き合い

RimworldにおけるModのソースコードをGitHubで公開されていらっしゃる方が結構いらっしゃるので、簡単な使い方も含めての解説。

GitHubってなんぞや?

Gitっていう分散型バージョン管理システムのリモート部分を担当してくれるWebストレージ(OneDriveやGoogleDriveみたいなのをよりプログラミング開発で使いやすくしたような)サービス。
Gitの知識がそんなになくてもソースコードだけならもらってこれるけれど、使いこなせるようになると何かと便利である。

手っ取り早くその1 ソースコード手に入れたい

https://github.com/mononok/RimWorld-Ja-sandbox
日本語翻訳したデータのGithubページです。このトップページにアクセスしてください。

んで、「clone or download」をクリックすると上の画像のような画面が出るので、黄色く塗ってあるDownload ZIPをクリックすると、普通にzip化されたデータをダウンロードできます。
日本語化ファイルはバイナリが入ってないから、入手したデータをそのまま適応可能です。readme.txtに使い方が書いてあるので、挑戦してみてください。

手っ取り早くその2 GitHubにデータを上げたい

とりあえずGitHubにアカウント作ります。たいして英語読めなくてもだいたいそれっぽいのを選んでいけば登録できます。

んで、ログインしたトップページにNew repositoryというボタンがあるのでこれをクリックします。

いろいろ空欄になってますが、その中にいろいろ書き込んでいきます。
自分のmod用ファイル保存などなどの意味で入れておいてください。
publicとprivateは、公開するか非公開にするかですが、非公開にすると有料ですので公開で問題ありません。
Initialize〜というのは、readmeをgithub側で自動作成してくれるものですが、基本的に無視でよいです。
その↓にある「.gitignore」はアップロードファイルのうち、アップロードしたくないデータを自動的にフィルタしてくれるファイルです。
とりあえずリストにあるVisualStudioにしておくと、何かと便利なのでやっておきます。
その隣のLicenseは、ソースコードの配布に関する決まり事を指定するものです。
MITライセンスというのは、「どんな風にソースコード使ってもいいけれど、公開する場所か、公開したパッケージに著作権と、MITライセンスの内容を参照可能な形で提示する」ものです。
指定するとアップロード先にMITライセンスの原文が入るので、アップロードするパッケージの中に入れるreadmeに著作権に関わる記述をしておきましょう。
とりあえずCreate Repositoryをぽちっとすればデータ枠を作ることができます。

作ったリポジトリのページにあるupload filesをクリックすると以下のような画面が出ます。

見てわかるとおり、この真ん中にファイルを投げ込むとアップロードができます。
ファイルも複数指定でいけますし、フォルダごと投げ込むことができます。
投げ込んでアップロード処理が終わったら、「Commit changes」と書いてある下のテキストボックスに簡単な説明を書き込みます。
下の大きいテキストエリアは空欄でも大丈夫です。
処理が完了すると、リポジトリ一覧に投げたファイルが入ります。
これで、アップロード作業を完了できます。
gitとかそういうのの扱い考えなくても、アップローダー気分でファイルを投げ入れることができるのですね。

ちょっと面倒だけどgithubを使いこなしてみたい

githubはgitというバージョン管理システムのリモート機能を担当してくれます。
gitを使いこなせば、開発者っぽさに磨きがかかること請け合いです。
以下よりその解説をば。

まず、Desktop Githubを取ってきます。
Desktop GitHub →https://desktop.github.com/
ダウンロードしてインストールすると、もしデスクトップ上にアイコンを作っていれば、Github DesktopとGit Shellと、たんにGitHubという名前の3つのアイコンがあるはずです。
github desktopはGUIで操作できるソフトですが、せっかくなのでコマンドラインでgitを使えるようになっておきましょう。
ここはGit shellを選択します。WindowsならPowershellの画面でGitが使用可能な状態になります。
デフォルトだとDocument\githubフォルダがカレントになっていますので、ここで以下のように入力します。
> cd [プロジェクトを作りたいフォルダ]
エクスプローラでパスをコピペできるように設定してるなら貼りつけると楽できます。
出来上がったら次に、以下のように入力します。
> git clone [githubで作ったリポジトリのURL]

※上記画像はフォルダ指定を省略しています。
画像であればこのコマンドを実行した下層フォルダとしてcheatRimというフォルダができあがってます。
出来上がっているかどうかをエクスプローラーで確認してみるとよいでしょう。
これは、githubにあったフォルダ構成をそのまま手元に移し、gitという機能を手元で管理できるようにしたフォルダになります。
もし出来上がっていたら、何か作ったファイルを投げ込んでください。
投げ込んでから、さっきのshell画面に戻ってください。ここでは作ったcheatRimフォルダを使って話を進めます。今回はDefsフォルダのみを投げ込みました。
Shell画面から以下のように入力すると、画像のように画面が変わります。
> cd cheatRim

赤文字の表示は、変更のみが行われているだけで、git側がそれを受け取っていない状態です。
なので、以下の二つのコマンドを入力してください。
> git add .
> git commit -m "github解説用コミット"

英語でちらっとエラー吐いてますが、githubで扱えるファイルは文字コードがutf-8で、改行コードがCR+LFでなければいけないのです。
とりあえず、自動で改行を置き換えしてくれているようなのでこのまま進めてしまいます。
今の状態は、手元のgitシステムが変更を承知しただけの状態で、githubにそれを伝えていない状態ですので、伝えてあげます。
コマンドは以下の通り。
> git push

三本線のイコールが出ていれば、githubのデータと手元のデータが完全に一致している証拠です。
これでgithubにデータをアップロードできているはずなので確認してみましょう。

defsフォルダが追加されました。さっき入力したテキストがdefsフォルダのとなりに表示されていますね。
これで手元とgithubをやり取りすることができるようになります。
あとは、変更をアップロードしたいと思ったらgit add→git commit→git pushの流れでいけます。
もしまずったりしたら、いろいろぐぐればたくさん情報が出てくるのでぜひ。

他のアップローダーとgithubの違い

Githubは何といってもリポジトリという単位でひとつのプロジェクトを管理できる強みがあります。
上記の設定であれば、modのdll以外のファイルをそのまま投げ込むことができます。
その上、ソースコードをさもwebページの一部のように表示できるため、いちいちダウンロードさせることなくブラウザ上でソースコードを見てもらうことができます。
https://github.com/exli3141/cheatRim/blob/master/D...
例えばこんな感じでハイパーリンクをたどってもらうことも。
また、いちいちリポジトリを作らなくてもgistという機能でソースコードを見てもらうこともできます。
githubの自分のページの上にGistと書いてあるリンクがあるので、それを辿ると以下のようなページにたどりつきます。

ここのテキストエリアにソースコードをコピペしていろいろ書き加えてやってから、右下のcreate public gistボタンを押すと、以下のリンク先のようなページを作れます。
https://gist.github.com/exli3141/1a45094215f375944...
もしmod作ってる最中に悩んだらこのGistを使ってみるといいかもですね。
著作物注意書き
このページ及びgithubで公開中のソースコードは、Ludeon studio製作のrimworldで使用可能なmodファイルとして、筆者exliが作成したものです。