このように、ファイル名を変更するというバージョン管理では、多人数でファイルを編集したいときに困ることになります。
また、内容を前のものに戻しづらかったり、戻せないということが往々にして起きるため、例えば誤ったファイルに上書きしてしまったときに、再度やり直し…ということがおきます。
そこで、この書籍のテーマであるGitが登場します。Gitはバージョン管理システムの中でも「分散型バージョン管理システム」といわれるものです。
Gitは分散型バージョン管理システムの一つです。分散型バージョン管理システムにはGit以外にも「Mercurial」「Bazaar」などがありますが、この書籍では特に触れません。
Gitは「リポジトリ」という「ファイルのスナップショット[1]が保管されている場所」があります。スナップショットを保存する方法ですが、Gitには「コミット[2]」という、スナップショットを任意のタイミングで保存する機能があります。それによって、自分がおこなった作業を記録することができます。
この「コミット」ですが、Steins;Gateで例えるとゲームシステムになるのですが「セーブ」といえます。そして「セーブデータ」が「リポジトリ」です。ただし、Gitの場合はセーブデータの任意の場所に戻ることができます。それは「特定のエンディングに進もうとしてセーブしておいたデータに誤って別のデータをセーブしてしまっても戻せる」ということを意味します。
また、他人と作業内容を共有する場合は、他の人も見られる場所に共有のリポジトリを用意しておき、そこへ自分の作業内容を送信します。作業内容の送信をすることを「プッシュ[3]」といいます。
Gitの概要でも書きましたが、作業した内容を作業前の状態に戻したいといったときでも「チェックアウト[4]」という機能を使えば、手軽に戻すことができます。またこれにより、ファイルに日付などを追加してコピーしてから編集ということをしなくて済むので、編集すべきファイルがどれなのか分からないというのが無くなります。
また、多人数での編集も「プル[5]」という「自分のPC上のリポジトリにネットワーク上にあるリポジトリの最新の内容を反映する」機能を使うことより、他の人が変更した点も自分の作業したファイルに取り込めます。
そのため、同じファイルを編集したためにどちらかの編集内容が消える…ということが少なくなります。これで岡部と紅莉栖も喧嘩しなくなるでしょう。