gitとgithubの違い

違います

gitはバージョン管理をするソフトウェアの名前であり,githubは共有リポジトリのホスティングサービスです。

gitって?

バージョン管理をするためのソフトウェアのことです。
オープンソースで開発されており,無料で利用することができます。

バージョン管理

プログラムでもCADでも何でも良いですが,Windowsでは基本的に1つのファイルしか保存されず,
「あ゛あ゛あ゛あ゛あ゛あ゛間゛違゛え゛て゛上゛書゛き゛し゛た゛あ゛あ゛あ゛あ゛あ゛あ゛」
というやらかしをよく耳にします。
(シャドウコピーという機能はありますが,gitに比べれば屁みたいな機能です)

Windowsの保存機能をポケモンのセーブ機能とすると,
gitはノベルゲームのコメント付きセーブ機能みたいなものだと考えると,その凄さは分かってもらえると思います。

はじめは

なにはともあれgitをインストールしましょう。
Windowsの場合は こちら から,
Linuxの場合はお使いのパッケージ管理システムからインストールできます。

はじめのうちはコマンドを叩いてgitを使うことをオススメしますが,
便利なフロントエンドとして,Windowsの場合は TortoiseGit, Emacserの場合は Magit をオススメしておきます。
これらの使い方は省略するので,頑張って使いこなしてみてください。

コミットへの第一歩

gitの基本は実にシンプルです。

概要 コマンド
gitで管理するファイルを登録 git add
編集したファイルを”更新リスト”に追加 git add
“更新リスト”にコメントをつけて保存 git commit

これだけでローカル環境でのファイル管理は,とりあえずできます。
あわせて,共有リポジトリを使って複数人で開発を行う際は,次の表も頭に入れておく必要があります。

概要 コマンド
共有リポジトリ上の更新を確認 git pull
共有リポジトリに更新を反映 git push

更新が競合した場合の処理などは,ややこしいので今回は書きません。
「最新の(他の人の)更新を確認して,競合がなければアップロードする」
という手順で共有リポジトリを使います。

github

ではgithubが何かというと,今言ったばかりの「共有リポジトリ」を作らせてくれるサービスです。
さらにおまけとして,wikiやissue,pullrequestなどのサービスも提供されています。

普通に使う

github上に何らかのリポジトリが作成されているとします。
一番はじめは,何も考えずにリポジトリをコピーします。
(以下の説明はすべてgitのコマンドで示します。TortoiseGitなどを使っている場合は頑張って脳内補完してください)

1
git clone https://(自分のユーザー名)@github.com/(クローンしたいリポジトリのユーザー名)/(リポジトリ名).git

gitにこの共有リポジトリを登録しておきます。

1
git remote add origin master

あとはgit pullなりgit pushなりをすることでローカル環境とgithubを同期させることができます。

wiki

Wikiを作ることができます。
ソフトウェアのマニュアルや仕様書なんかを共有するのに使うと便利かと思います。

issue

バグ報告ができます。
分類わけのためのラベルを付けたり,マイルストーンを設定することもできます。
解決担当者を決めることもできるので,複数人で開発する際は便利ですね。

pull request

重要な更新などをした際,全員にpullしてもらえるように通知することができます。

というわけで

頑張ってgitを使いこなせるようになりましょう。

Emacser御用達gitクライアント

gitがようやく部内に広まりつつありますが,そのきっかけの一つはGUI操作のできるgitクライアントが紹介されたことでしょう。
僕もWindowsで使っている TortoiseGit は,エクスプローラに統合でき,かなり使い勝手のいいクライアントだと思います。
しかし,Linuxを常用しているのでなにかいいクライアントが無いものかと探していたら,Emacs向けのパッケージを見つけました。
(それまではコマンド直打ちをしていましたが,やはり面倒。gitの学習のためにはコマンドを自分で打つべきだとは思います。)

Magit

Magit
パッケージマネージャからインストールしてやりました。

起動

gitで管理しているファイルをEmacsで開き,

1
M-x magit-status

でMagitが起動します。

使い方は出てきたバッファ内で’?’を打つと表示されます。

すでにStaged, Unstaged, Untrackedなファイルがリストアップされてると思いますが,これらのファイルを操作するのは1キーの打鍵で済みます。
カーソルを合わせて’s’を押すとstage,’u’を押すとunstage,これだけです。

コミット

‘c’を押すとCommitのためのメニューが開きます。

もう一度’c’を押してコミット画面に遷移します。
下のバッファにコミットメッセージを書きます。
上のバッファにはgit-diffが表示されているのでコミットメッセージも書きやすくなっています。

あとは”C-c C-c”を押せばコミット完了です。

プッシュ

最後に’P’の打鍵でプッシュのメニューを開きます。
ここで登録されているremoteにプッシュするため,’p’を打鍵するとパスワードを求められます。

これにてプッシュ完了です。

利点

Magitの利点としては,次のようなことが考えられると思います。

  • コーディングからプッシュまでをすべてEmacsの中で済ませることができる
  • キーストローク数が最小限なのでスムーズにgitを操作できる
  • メニューに簡易的な説明が表示されるのでキー操作を忘れない

なんと言っても一番上ですね。
ファイルを編集中に逐一コミットすることが,とても楽ちんになります。

デレステ自動演奏機の問題点

なんだこれは

アイドルマスター シンデレラガールズ スターライトステージという,スマートフォン向けのゲームがあります。
いわゆる音ゲーです。
未だに先駆者が出ていないため,何を思い立ったか自動演奏機を作っています。
※ソフトウェア的に自動クリアする動画はありましたが,自動クリア(物理)はこれが初だと思います。




メカ

打鍵用にタカハソレノイドを2個,移動用にサーボモータを2個使っています。
スライダクランク機構で打鍵部を移動させています。

デレステは”スライド”と呼ばれる譜面があるため,打鍵しながら左右に動かせる機構が必要でした。
現時点では同時押しは2つまでしかないため,打鍵部は2つのみとしました。

制御

制御用のマイコンとして,STM32F401RE nucleo boardを使っています。
外付け部品が不要で使うことができ,おねだんも1700円(デバッガ付き)なのでオススメです。

ソフトウェア

譜面データをハードコーディングするのだけは絶対にやめたい(ダサいし楽曲追加が面倒)ので,譜面データを作成するソフトを作っています。
ついでにQtのお勉強もしています。

今後

1,2ヶ月はマイクロマウスと夏コミに専念したいため凍結させますが,夏休み頃から再開させようと考えています。
機械の精度を見直し,ソフトを完成させることができれば,それなりに演奏してくれるのではないでしょうか。

ブログ移転しました

ブログ移転しました。

このブログは,残り少ない2年間の大学生活を充実させるため,日々の取り組みをメモしていくブログです。
今年もいろいろなことに取り組んでいこうと思います。

とりあえずはバイトとマウスとデレステと。