LoginSignup
1
0

More than 3 years have passed since last update.

【初級入門】輪るバージョン管理【生存戦略】

Last updated at Posted at 2019-11-01

「 きっと定時退社したい技術者たちに告げる 」

この記事は入門編です。
わかりやすさを最も重視しています。
目的は、すでにあるプロジェクトに参加することです。

git.png

バージョン管理システム(バージョンかんりシステム、VCS)とは、
コンピュータ上で作成、編集されるファイルの変更履歴を管理するためのシステム。
特にソフトウェア開発においてソースコードの管理に用いられることが多い。
出典:Wikipedia

Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。
出典:Wikipedia

良いことがたくさんあります

  • ミスが減る
  • ややこしいことを簡単にできる
  • 過去に戻れる
  • 人と喋らなくていい
  • 早く帰れる
  • モテる

git2.png

git3.png

覚えること、多すぎない…?

どうしてこんなことするの

ストレスで死にたくないです

Aさん「作業しました。変更箇所はこことそことそれです」
Bさん「え?どこですか?よくわかりません。差分ファイルをまとめて送ってください。変更箇所のスクリーンショットもお願いします」
(一時間後)
Aさん「送りました。よろしくお願いします」
Bさん「確認しました。修正点がいくつかありまして、こちらで作業したので反映してください」
Aさん(ちっ どこだよ)
Aさん「先祖返りすると困るので差分ファイルをまとめて送ってください。変更箇所のスクリーンショットもお願いします」
(一時間後)
Bさん「送りました。よろしくお願いします」
Aさん「あれ?なんか先祖返りしている箇所があるんですけど…、どうなってるんですか?」
Bさん「は?知りませんが」
(戦争に突入)

早くお家に帰りたいです

Cさん「作業しました。プッシュ済みです。確認お願いします」
Dさん「確認しました。OKです。修正箇所プッシュしてあります」
Cさん「確認しました。ありがとうございます」
(平和に定時退社)

きっと乗り越えられる

黒い画面を使わなくてもバージョン管理はできます。
今から人間向けソフトウェアの使い方と専門用語を説明します。

用語 説明
リポジトリ 記録を残す図書館みたいなもの
オリジン 一番えらい図書館の名前
Git(ギット)  司書さんみたいなもの
クローン リポジトリをダウンロードすること
プル 更新のあったファイルだけをダウンロードすること
コミット 更新したファイルだけを記録すること
プッシュ 更新したファイルだけをアップロードすること

リポジトリとは

リポジトリは、ファイルを記録・保管してくれます。
repository.png

リポジトリは各々のパソコンにひとつずつあり、サーバーにもあります。
サーバーにあるリポジトリをリモートリポジトリと言い、その中でも元となるリポジトリをオリジン(Origin)と呼びます。

repositorys.png

人々はリモートリポジトリ(長いので以後オリジンと呼ぶ)を介してファイルをやり取りします。
オリジンからファイルをダウンロード⤵⤵することをプル(Pull)と言い、
オリジンにファイルをアップロード⤴⤴することをプッシュ(Push)と言います。

push_pull.png

これをするために、まずは自分のパソコンにオリジンをダウンロードします。
これをクローン(Clone)といいます。
作業者のパソコンにあるリポジトリのことをローカルリポジトリと言います。
clone.png

これさえあればなんとかなる

  • パソコン(WindowsやMacなど)
  • SourceTree(ソースツリー。Gitを簡単に使うための無料ツール。大人気)

準備してみよう

1. ダウンロードして起動する

2. ライセンスに同意する

チェックを入れて『続ける』をクリックしてください。
SourceTree10010.png

3. アカウントを作成する

SourceTree10020.png
外部サイトに飛ばされますのでアカウントを作成してください。
メールアドレスが必要です。

4. ログインする

どれでもいいのでログインしてください。
SourceTree10030.png

5. セットアップをスキップする

ここは不要なので『セットアップをスキップ』してください。
SourceTree10050.png

すでにあるプロジェクトを見てみよう

新しいプロジェクトを作るときは他の記事を見てください。

6. クローンしよう

クローンとは、オリジンにあるファイル一式をダウンロードすることです。
『URLからクローン』をクリックします。
SourceTree10060.png
ウィンドウが出てくるので情報を入力して『クローン』してください。
SourceTree10070.png

こういう画面が表示されたら成功です。
SourceTree10080.png
これでプロジェクトのファイル一式がパソコンにダウンロードされました。

7. プルする

他の人が変更したファイルをダウンロードすることをプルと言います。
プルされていないファイルがあるとき、上部の『プル』アイコンにバッヂがつきます。
クローンした直後は最新の状態なので、プルしても何も変化しません。
SourceTree30010.png

プッシュアイコンをクリックするとウィンドウが出てきます。
『OK』をクリックしてください。
SourceTree30020.png

プルが成功するとファイルが更新され、履歴も新しくなります。
SourceTree30030.png

変更のあったファイルはここに一覧表示されます。
SourceTree30031.png

どこを変更したのかは一行単位でここに表示されます。
SourceTree30040.png

参加してみよう

8. コミットする

commit.png

ファイルを変更すると以下のようにリストアップされます。
SourceTree20010.png

コミットするファイルにチェックを入れてください。
チェックが入っているファイルはインデックスされています。
一番の上をチェックを入れると、すべてをインデックスできます。
インデックスされているファイルだけがコミットされます。
SourceTree20020.png

コミットメッセージを入力します。
変更内容を言葉で説明書きしてください。
SourceTree20030.png

書いたらコミットをクリックしてください。
SourceTree20040.png
初回コミット時には名前とメールアドレスを聞かれます。
Gitで使いたい名前とメールアドレスを入力してOKをクリックしてください。

確認が表示されます。
大丈夫だったらOKしてください。
SourceTree20050.png

すべてのファイルがコミットされていて、作業中のファイルがないとき、以下のようになります。
SourceTree20060.png

9. プッシュする

プッシュされていないファイルがあるとき、上部の『プッシュ』アイコンにバッヂがつきます。
プッシュする前に一度プルしてください。
SourceTree40070.png

『プッシュ』アイコンをクリックするとウィンドウが出てきます。
『OK』をクリックしてください。
SourceTree40080.png

同時進行をカンタンにする

branch1.png

よくありますよね。
緊急の修正を先にリリースしなきゃいけないんだけど、今更新作業でごちゃごちゃしてるし…どうしたらいいの!?
そんなときはブランチ(Brunch)を使って世界線を分けましょう。

branch2.png

ブランチは作業をはじめる前にあらかじめ分けておくと簡単です。
説明は後日追加します。

問題が起こったら

プッシュしたらエラーが返ってきた

リモートリポジトリはいつでも誰でもアクセスできるので、正常な状態を保つ必要があります。
なので、まず異常が発生しても大丈夫なローカルリポジトリにプルして、異常がないことが確認できてからしかプッシュはできません。
異常とは、例えば後述する他人と変更がかぶってしまう競合(コンフリクト)などです。
もしプルしてないのにプッシュしてしまってエラーが出たら、プルしてからもう一度プッシュしてみましょう。
後日書き足します。

他人と同じ箇所を変更した

変更が競合することをコンフリクト(Conflict)と言います。
Gitにはどちらが正しいか判断できないので、人間の手で修正する必要があります。

conflict.png
具体的な解決方法は後日書き足します。

いかがでしたか?

めんどくさいということだけはわかりましたね。
でもやらないほうがめんどくさいんです。
仕方ないんです。生きていくためですから。

「 バージョン管理、しましょうか 」

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0