この記事ではmaquinistaの活動(主に回路制御班)に欠かせないgitについて紹介します。
詳しい内容(インストール方法、使い方など)はほかに譲るとして、ここではgitの概要やmaquinistaでの活動でどのように役に立つのか解説していこうと思います。(maquinistaに入れば導入から使い方までサポートします!)
リンク:ツール紹介記事まとめ
gitってどういうやつ?
gitとは大きなプロジェクトを大勢で作業するときに使われるツールです。
というのも
- ある人が行った作業を離れた別の人が引き継いで行うことができる
- いつでも好きな地点に戻って作業しなおすことができる
- 別々に開発されたものを統合することができる
といった利点があるからです。ロボット開発ではチームのメンバー一人ひとりの得意なことを組み合わせていきます。
「足回りを動かすよ」
「センサで自己位置推定するよ」
「腕を動かすよ」
といった具合に各々やることが異なるのですが、これを何のソフトもなしに統合したりするのはとても大変です。さらに
「ここミスったな、やり直したい!」
「この機能ほしいな、追加してみよ!」
「先輩に見てほしいな」
といったこともソフトなしでは難しいです。
なのでgitをうまく使えばスムーズに開発を進めることができます。
現在maquinistaで主に使われているのはGitKlakenという、gitを可視化し操作・編集しやすくしたソフトです。
↓こんな感じ
もうちょっと詳しく
大まかなgitの仕組み
gitはおなじみクラウドサービスに似ています。サーバ上にデータがあり、そこから個人の環境にダウンロードしてきて作業をする。自分の作業が終わったらサーバに保存してみんなも見れる、というイメージです。
↓こんな感じ
ここでさっきのサーバのことをリモート、個人の環境をローカルといいます。またデータのダウンロードをプル(pull)、アップロードをプッシュ(push)といいます。
図ではアザラシ君が作業しています。このような仕組みによってアザラシ君が行った作業の続きをA君が引き継いでやることができるし、Bさんがアザラシ君の作業を評価することができますね。
gitのデータの見方
ここでgitでの作業がどのように保存されていうのか見てみましょう。
↓さっきの図
基本的にgitでは下から上に向かって進捗が進んでいます。中央に縦に並んだ〇が各々の進捗です(これをコミットといいます)。作業したらコミットとして記録していくというのが基本になります。どんどん進捗が進んでいくと枝みたいなのが伸びていきます(この枝をブランチといいます)。
gitではどのコミットからでも作業を開始することができます。なので「この機能なくしちゃったけどやっぱ使おう」「ここ修正しよう」とかも自由にできます。便利!(実際に大学の課題をgitで管理している先輩もいます)
ですが途中から別のルートで記録していくこともできます。「あの人がこういう機能を作るんだな、じゃあこういう機能を別で作っておこう」ということが同時にできるんですね。そうすることで画像のように複雑になっていきます。
例)アザラシ君が足回りの開発をしているときに、A君が平行して腕の開発を進められるんです。チーム開発って感じですよね。
そして別々に開発したものを統合することができます。(これをマージといいます)
例)さっき別々に開発していたアザラシ君とA君の機能を一つのロボットに搭載できます。
ただしマージは大切なところを消してしまったりするので気を付けましょう。
おわりに
以上でgitの説明を終わります。
gitにはもっといろいろな機能があり、覚えるのは大変ですがとても便利です。わからないことはどんどん先輩に聞いてスキルを磨いていきましょう!先輩方はすごい人が多いので答えてくれます。あんまり抱え込まないことが大切です。
楽しい活動にしていきましょう!
リンク:ツール紹介記事まとめ