「 きっと定時退社したい技術者たちに告げる 」
この記事は入門編です。
わかりやすさを最も重視しています。
目的は、すでにあるプロジェクトに参加することです。
バージョン管理システム(バージョンかんりシステム、VCS)とは、
コンピュータ上で作成、編集されるファイルの変更履歴を管理するためのシステム。
特にソフトウェア開発においてソースコードの管理に用いられることが多い。
出典:Wikipedia
Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。
出典:Wikipedia
良いことがたくさんあります
- ミスが減る
- ややこしいことを簡単にできる
- 過去に戻れる
- 人と喋らなくていい
- 早く帰れる
- モテる
覚えること、多すぎない…?
どうしてこんなことするの
ストレスで死にたくないです
Aさん「作業しました。変更箇所はこことそことそれです」
Bさん「え?どこですか?よくわかりません。差分ファイルをまとめて送ってください。変更箇所のスクリーンショットもお願いします」
(一時間後)
Aさん「送りました。よろしくお願いします」
Bさん「確認しました。修正点がいくつかありまして、こちらで作業したので反映してください」
Aさん(ちっ どこだよ)
Aさん「先祖返りすると困るので差分ファイルをまとめて送ってください。変更箇所のスクリーンショットもお願いします」
(一時間後)
Bさん「送りました。よろしくお願いします」
Aさん「あれ?なんか先祖返りしている箇所があるんですけど…、どうなってるんですか?」
Bさん「は?知りませんが」
(戦争に突入)
早くお家に帰りたいです
Cさん「作業しました。プッシュ済みです。確認お願いします」
Dさん「確認しました。OKです。修正箇所プッシュしてあります」
Cさん「確認しました。ありがとうございます」
(平和に定時退社)
きっと乗り越えられる
黒い画面を使わなくてもバージョン管理はできます。
今から人間向けソフトウェアの使い方と専門用語を説明します。
用語 | 説明 |
---|---|
リポジトリ | 記録を残す図書館みたいなもの |
オリジン | 一番えらい図書館の名前 |
Git(ギット) | 司書さんみたいなもの |
クローン | リポジトリをダウンロードすること |
プル | 更新のあったファイルだけをダウンロードすること |
コミット | 更新したファイルだけを記録すること |
プッシュ | 更新したファイルだけをアップロードすること |
リポジトリとは
リポジトリは各々のパソコンにひとつずつあり、サーバーにもあります。
サーバーにあるリポジトリをリモートリポジトリと言い、その中でも元となるリポジトリを**オリジン(Origin)**と呼びます。
人々はリモートリポジトリ(長いので以後オリジンと呼ぶ)を介してファイルをやり取りします。
オリジンからファイルをダウンロード⤵⤵することを**プル(Pull)と言い、
オリジンにファイルをアップロード⤴⤴することをプッシュ(Push)**と言います。
これをするために、まずは自分のパソコンにオリジンをダウンロードします。
これをクローン(Clone)といいます。
作業者のパソコンにあるリポジトリのことをローカルリポジトリと言います。
これさえあればなんとかなる
- パソコン(WindowsやMacなど)
- SourceTree(ソースツリー。Gitを簡単に使うための無料ツール。大人気)
準備してみよう
1. ダウンロードして起動する
- SourceTreeをダウンロードする
- SourceTreeを起動する
2. ライセンスに同意する
3. アカウントを作成する
外部サイトに飛ばされますのでアカウントを作成してください。
メールアドレスが必要です。
4. ログインする
5. セットアップをスキップする
すでにあるプロジェクトを見てみよう
- プロジェクトメンバーからオリジンのURLを教えてもらう(例:https://github.com/Nunifuchisaka/html5-skeleton.git)
- それを自分のパソコンにクローンする
新しいプロジェクトを作るときは他の記事を見てください。
6. クローンしよう
クローンとは、オリジンにあるファイル一式をダウンロードすることです。
『URLからクローン』をクリックします。
ウィンドウが出てくるので情報を入力して『クローン』してください。
こういう画面が表示されたら成功です。
これでプロジェクトのファイル一式がパソコンにダウンロードされました。
7. プルする
他の人が変更したファイルをダウンロードすることをプルと言います。
プルされていないファイルがあるとき、上部の『プル』アイコンにバッヂがつきます。
クローンした直後は最新の状態なので、プルしても何も変化しません。
プッシュアイコンをクリックするとウィンドウが出てきます。
『OK』をクリックしてください。
参加してみよう
8. コミットする
コミットするファイルにチェックを入れてください。
チェックが入っているファイルはインデックスされています。
一番の上をチェックを入れると、すべてをインデックスできます。
インデックスされているファイルだけがコミットされます。
コミットメッセージを入力します。
変更内容を言葉で説明書きしてください。
書いたらコミットをクリックしてください。
初回コミット時には名前とメールアドレスを聞かれます。
Gitで使いたい名前とメールアドレスを入力してOKをクリックしてください。
すべてのファイルがコミットされていて、作業中のファイルがないとき、以下のようになります。
9. プッシュする
プッシュされていないファイルがあるとき、上部の『プッシュ』アイコンにバッヂがつきます。
プッシュする前に一度プルしてください。
『プッシュ』アイコンをクリックするとウィンドウが出てきます。
『OK』をクリックしてください。
同時進行をカンタンにする
よくありますよね。
緊急の修正を先にリリースしなきゃいけないんだけど、今更新作業でごちゃごちゃしてるし…どうしたらいいの!?
そんなときは**ブランチ(Brunch)**を使って世界線を分けましょう。
ブランチは作業をはじめる前にあらかじめ分けておくと簡単です。
説明は後日追加します。
問題が起こったら
プッシュしたらエラーが返ってきた
リモートリポジトリはいつでも誰でもアクセスできるので、正常な状態を保つ必要があります。
なので、まず異常が発生しても大丈夫なローカルリポジトリにプルして、異常がないことが確認できてからしかプッシュはできません。
異常とは、例えば後述する**他人と変更がかぶってしまう競合(コンフリクト)**などです。
もしプルしてないのにプッシュしてしまってエラーが出たら、プルしてからもう一度プッシュしてみましょう。
後日書き足します。
他人と同じ箇所を変更した
変更が競合することを**コンフリクト(Conflict)**と言います。
Gitにはどちらが正しいか判断できないので、人間の手で修正する必要があります。
いかがでしたか?
めんどくさいということだけはわかりましたね。
でもやらないほうがめんどくさいんです。
仕方ないんです。生きていくためですから。
「 バージョン管理、しましょうか 」