Blog

gitの構築から実用までの流れ (1)

2016.06.14Cat:git

はじめに

こんにちは。

gitの初歩の初歩について書き綴りたいと思います。
なんとなくイメージがついたら良いなぁという程度で、筆者も詳しい訳ではありません。

gitとは

バージョン管理ツール

システム開発において、複数人のチームで作業することはよくあることです。
このシステム開発でバージョン管理ツールを使うことにより、以下の様なメリットがあります。

  1. 他の人と並行して作業が出来る
  2. どのプログラム(リソース)等をいつ誰が、どの部分を変更したか把握が出来る
  3. リリースなど節目に際して、まとめて変更したシステムのみ反映できる
  4. システム(機能や細かい文言含め)を簡単に前の状態に戻せる

などなど。。

バージョン管理を行わないと、ファイルのタイムスタンプや
何かしらの情報管理によってリリースまで色々な作業が発生します。
(タイムスタンプも簡単に書き換えられてしまうリスクなどアリます)

これらを解決してくれるのがgitというツールです。

バージョン管理のイメージ

gitのバージョン管理には
いつ」「だれが」「どのファイルを」「どんな内容で
変更したかという情報を貯蓄していきます。

この貯蓄する場所を「リポジトリ(repository)」と呼びます。

リポジトリには大きく2つに別れます。

  • ローカルリポジトリ
  • リモートリポジトリ

これらは必ずペアで存在しなければなりません
例えば本番にリリースする場所がリモートリポジトリだったら、
それらを開発する各開発者の環境がローカルリポジトリとなります。

なので、基本的に貯蓄された情報は
ローカル → リモート
でなければなりません。

リモートリポジトリには
「貯蓄された情報のみを保存するリポジトリ」
を作るのが妥当です。

つまり
「公開するファイル群を置くリポジトリ」

「物理ファイルは無いけど、gitの貯蓄データを置くリポジトリ」
をサーバーに設けることになります。

以下がイメージ画像です。
git_image01

下にある2つ(一つあるいは複数)のリポジトリは
実ファイルのある各開発者が作業している任意の作業ディレクトリです。

左上にあるリポジトリを通称
「中間リポジトリ(ベアリポジトリ)」
と呼び、いったんここに更新情報を送ります。
ファイルは生成されませんが、ファイルの中身の情報は存在しています。

その後、右側の公開用のリポジトリへ反映させるという流れとなります。

gitの構築 (git init)

リモート、ローカル、中間の各種によって若干異なります。
実施するコマンド(命令)を順に追いましょう。

まずはgit管理化に置きたいディレクトリに移動して上記を実行します。
中間リポジトリの場合は

です。

概要は
「このディレクトリをgit管理のリポジトリとしますよ」
です。

中間リポジトリが異なるのは
「shared (複数のユーザーが使える)」
「bare (実ファイルを持たない)」
という点のみです。

複数人で開発しつつ
実ファイルを持たないことで情報のみのやり取りが可能となるのです。

次のローカルにて複製手順があるため、ローカルでのgit initは不要です。

ローカルに複製する (git clone)

これでローカルにリモートと共有されたリポジトリの作成が完了です。
複製しただけで同期している訳ではありません。

ファイルの管理登録 (git add)

次にシステムに必要なファイルをgit管理化に登録する作業が必要です。

git管理配下の最上位ディレクトリ(以下git_root)にて

を実施します。

これは
「このファイルをgit管理に入れる宣言」
です。

つまりリポジトリに登録されている訳ではありません
(この時点では取消も可能)

ローカルリポジトリに更新した内容を登録する (git commit)

いったんローカルリポジトリに更新した内容を登録します。
この時に、更新した必要な情報が貯蓄されます。

ですが、、その前に登録者である自分の情報を登録しましょう。
各開発者のローカル環境にて

のように必ず自分の情報を自分のリポジトリに保持しましょう。
この情報は繋がっている全てのリポジトリへ共有されます。

次に

幾つかやり方がありますが、簡易的なやり方では
上記のコマンドでコメントを入れることが可能です。
コメントは必須です。(空欄でも可)

ただし、これでもまだローカルに貯蓄されているだけで
他の開発者やリモート上では共有されていません

リモートリポジトリに更新した内容を登録する (git push)

いよいよリモートリポジトリに本登録です。

ここについては色々と状況によって変わる部分です。
初期状態であればmasterというブランチ (リポジトリが木なら枝とでも思っておいてください)
にひとつ前でcommitした内容を本登録しますよ、、といった意味合いです。

まとめ

大きな流れは上記の通りですが
ブランチ
という最後に出てきたワードが重要となってきます。

その他gitに関わるコマンドも含めて触れられたらと思います。

Author Profile

ohba
ランニングと音楽とヲタトーク好きプログラマーです。 数学と英語を勉強中です。 DeepLearning始めました!
» 投稿一覧
  • Launch Cart次世代ECサイト構築システム 初期月額無料
  • LaunchMovie ECに特化した動画制作サービス

Archive

ページTOPへ