いきなりですが、Githubってあるじゃないですか?
あれが何か今まで知らずに生きてきましたが、超簡単に言うと、ファイルをバージョン管理しようぜってものです。
ファイルを更新するたびに、保存しておいてすぐに元に戻せるようにするものです。
いままでプログラマーの使うものと思ってましたが、今コーディングやフロントエンドで開発をする人間にも必要なものだと断言できます。
ちなみに、ぼくも詳しくはなく、今回はGithubとは 、みたいなことはあまり書けませんがw
GitHubはその名のとおり、Gitを使うためのハブだ。GitはLinuxの作者Linus Torvaldsが始めたプロジェクトで、GitHubの訓練士Matthew McCulloughの説明によると、Gitは昔からあるバージョン管理システム(version control system, VCS)の一種であり、プロジェクトの改訂履歴を管理し保存する。プログラムのコードに利用されることが圧倒的に多いが、実はWordのドキュメントでもFinal Cutのプロジェクトでも、どんなタイプのファイルでも管理できる。とにかく、コンピュータのプログラムにかぎらず、どんなドキュメントでも、すべての段階の草案やアップデート履歴を保存し管理できるファイルシステムなのだ。
普段ぼくが使用しているのは、バージョン管理システムでもGithubではなく、Bitbucketというサービスを使用しています。
GIthubはエンジニアやプログラマーの履歴書にもなるとはよく言われていますが、基本的に無料の個人ユーザーは世界中にソースが公開されます。
ところが、企業に属しているコーダーは、世間には開示してはいけない情報を扱うことがあります。
大手だと、決算情報だったり、プロモーションが始まる前の商品やサービス、アーティストなど。
そこで、Githubではなく、Bitbucketです。
Bitbucketは、「接続できるユーザー数」が課金基準となっており、この記事を書いている時点では、5ユーザーまでであれば、非公開レポジトリの数は無制限となっています。
ちなみに、すべてのプロジェクト合わせて5ユーザーですので、基本的に複数人でコードを触る案件にはあまり向いていないかもしれません。
1メールアドレス1ユーザーという考え方なので、以前ぼくが複数人で使った時はメーリングリストを作ってそのアドレスを登録しましたが、いいのかどうかはわかりません。
どうしてコーダーやフロントエンドエンジニアがGitなのか
だれしも、一度や二度や三度は先祖返りさせてしまった経験ってないですか?
保存したつもりができてなかったり、アップする場所を間違えたり。
サーバー上にバックアップしたつもりができてなかったりと、常にバックアップに気を使っていても起こってしまう。
そんな時もバージョン管理しておけば安心。
想像してみてください。
先祖返りさせてしまってバックアップもない、このソースには3日かかった。
納期は明日。
あぁ、胃に穴が空きそうな状況。そして、もう一度同じ作業をするなんて時間の無駄にも程があります。
便利なものは使っておきましょう。すべては睡眠時間を確保するために。
時に自分を守るための武器となる。
時々いまでもクライアントから言われることがあるのですが、
「いつの間にかこの部分の表記が消えた(変わった)」とか。
これが、簡単にHTMLの修正で済むならいいのですが、システム改修まで話が大きくなるとまーーーー厄介。
こちらでもいつからか把握してないので、工数が発生する発生しないでもめることになります。
そんなときも定期的にバージョン管理システムにアップしておけば、
「あぁーこの部分は◯◯の時に指示されて、やっております。戻しますか?」ってすぐ返答できます。
万が一の際のバックアップの保存場所として使用できる。
一応、無料で何かのサービスを使用する以上、サービスが終了した際のことは考えておかなければいけないですが。
各ファイルを一つずつだうんろーどできたり、プロジェクトのファイルを一式でダウンロードできたりします。
以上、使い方や導入の方法はぼくより5億倍わかりやすく書いていらっしゃるブログがたくさんあるので、興味があったらご覧になってみてください。
これで、バージョンを管理していけば、自分が書いたファイルの差分をチェックしたり、逆に他人のファイルを触らなければいけないときなど絶対役に立ちますよ。
念のため、ぼくが導入する際にひっかかったよく出る言葉を書いておきます。
リポジトリとは、
ファイルやディレクトリの状態を記録する場所で、プロジェクトごとにフォルダに入れて管理するようなもので、リポジトリは親のフォルダとなります。
コミットとは、
コミットを実行すると、リポジトリの内では、前回コミットした時の状態から現在の状態までの差分を記録したコミット(またはリビジョン)と呼ばれるものが作成されます。PCでいうところの復元ポイントのようなもの。
プッシュとは、
コミットしたものをサーバーにアップします。コミットしただけではローカルに復元ポイントができただけなんです。
その他、ブランチ、フェッチ、プル、マージあたりを調べてみるとかなりGitについて理解が深まると思います。
いろいろ解説しているサイトでは、黒い画面(WIndoesではコマンドプロンプト、MacではTerminalなど)を使っていることが多いですが、SourcetreeというアプリケーションがWindowsにもMacにもあります。このアプリケーションは黒い画面なしで使えるのでおすすめです。
基本的にはファイルをローカルで管理する必要があります。
ぼくはある方法でリモートのファイルを直接編集、編集したらバージョン管理システムにアップする方法を見つけたので今度書こうと思います。