この記事は岩手大学 Advent Calendar 2021の記事です!
記事を書こうと思った経緯
僕が大学生のころ、Git を使わずチーム開発を行っていたときがありました。
今となっては Git は当たり前のように使っていますが、当時を振り返って Git のありがたみを再確認しようという記事です。
また、後輩に Git を使って開発したほうが苦労しないよというモチベーションもあります。
当時の運用
僕の大学では、ユーザーごとにディレクトリが切られていて、その中に各学生が好きなデータを読み書きできていました。そして、自分の管理下のディレクトリ内でパーミッションを設定することで他の学生も読み書きできるようになります。
これを使ってアプリケーションのファイルをディレクトリに入れておき、各開発メンバーがローカルにコピー、変更後に上書きで保存するようにしていました。
もちろんいろんな事件が起こるのですが、それを以下にまとめました。
コンフリクトしたらどちらかが消える
複数人で開発しているので、開発している箇所がかぶる場合があります。
それに気がつくことができれば良いのですが、気づくことができないと先に共有ディレクトリに格納しておいた人の変更が上書きされてしまい消えてしまいます。
これはコンフリクトになれてきた中盤でもやってしまいがちで悲しい思いをしたのを覚えています。
最新バージョン行方不明
各開発メンバーは、共有ディレクトリからローカルに落としてきてから開発をするので、バージョンが古い可能性があります。
また、Git のようにどのファイルが最新バージョンと差分があるかもわかりません。なので、一度ファイルを触ってしまい、そのファイルを触ったことを忘れてしまうと関係のない差分まで生まれてしまいます。
そして、気がつかずに共有ディレクトリに格納してしまうため、最新バージョンのファイルが行方不明になってしまうことが多々ありました。
手動マージ
変更を最新バージョンにマージするときも辛いです。
担当したメンバーから何のファイルのどこを触ったのかを聞き、その情報をもとに最新バージョンに手動でマージを行います。
少し前でも話しましたが、開発メンバーがいつのバージョンのファイルを持っているかもわからないため、マージする箇所やそもそもの処理が全く変わっていたなんてこともあります。
最終的には、開発メンバーがつくってくれた変更を参考にしながら、自分で最新バージョンに対して実装を行うことになりました。
Git のありがたみ
上記で話した問題はすべて Git を活用することで解決できます。
ローカルでの main ブランチとの差分はわかるし、変更履歴、変更箇所のマージ、コンフリクトもうまくできます。しかも、なんかがあったとしてもレビューをするようにしておけば、そのタイミングで気がつくことができ、main ブランチに影響を及ぼさずに開発できます。
Git ははじめ難しいかもしれませんが、main ブランチにとりあえず push するだけでも変更履歴を追うことができるので、大きく変わると思います。
さいごに
Git は使ったほうがいい!絶対!