Love-ITブログ
オレジとほりぽたのIT&介護を中心とした日常系ブログ
IT

Gitを使ってみる#1

FTPおじさんのほりぽたは知りませんでしたが、最近のシステム開発では本番環境にデータを転送することをデプロイといい、Gitという技術を使ってデータ転送するそうです。

さらにGitはバージョン管理機能があるので、昔みたいに、ファイルを変更するたびにファイル名の先頭に日付を追加しなくてもいいらしい!

とうことで、FTPではなくGitを使って本番環境へのデータ転送を目標に頑張ります!!

勉強を兼ねて作成しているので、間違っているところがあればご指摘ください。

全体像

やりたいことは次のとおりです

ローカル環境(Windows)で作ったNode.jsのデータを、本番環境(Windows)に転送したい(ついでにバージョン管理も!)

そのために、やるべきことをまとめました

  1. ローカル環境にGitをインストールする
  2. 本番環境(Windows)を構築する
  3. 本番環境にGitをインストールする
  4. ローカル環境からGitを使って本番環境にデプロイする
  5. 本番環境で動作確認をする
  6. バージョン管理を試してみる(できれば)

本番環境がWindowsなのは、単純にLinuxを触るほどの技術がないからです><
いずれLinuxでWebサーバーを構築してみたいです

Gitの仕組みについて調べてみた

Gitを勉強する過程で、用語や仕組みについて覚えたことをまとめました。
なお、今回はデータ転送が目的なので最低限の機能だけ調べました(そうしないと理解が追い付かない・・)。

ワーキングツリーとは

プロジェクトフォルダなど実際に操作をするデータが入っているフォルダのことです

ステージング、インデックスとは

ワーキングツリーのファイルを更新した後に、インデックスと呼ばれる場所に登録をします。インデックスに登録することで、次に説明するリポジトリへ反映できます。

インデックスのことをステージングと呼ぶこともあり、どちらも同じ意味です

リポジトリとは

Gitでデータを保管する場所(データベース)のことをリポジトリといい、リポジトリのデータを別のリポジトリとやりとりすることでデータ転送を行います。
リポジトリには、ローカルリポジトリリモートリポジトリの2種類があります。

ローカルリポジトリ

PCやサーバが自身のデータを管理するために必要なリポジトリです。

例えば、開発環境では、プロジェクトフォルダのデータをローカルリポジトリに登録します。
また、本番環境では、デプロイ先をローカルリポジトリとして登録します。

リモートリポジトリ

ローカルリポジトリからのデータを集約、管理するリポジトリです。今回は本番環境のサーバを使用します。

本番環境はリモートリポジトリと、本番環境用のローカルリポジトリの2つが存在します

データ転送に関する用語(コミット、プッシュ、プル、クローン)

リポジトリに関わるデータ転送には、それぞれ用語が決まっているので覚える必要があります。

コミット

ローカルリポジトリに登録することをコミットといいます。

例えば、開発者はコード更新後にローカルリポジトリへコミットすることで次のステップに進めます。なお、ワーキングツリーを更新しても、コミットしていなければローカルリポジトリに反映されません。

プッシュ

ローカルリポジトリの内容をリモートリポジトリに登録することをプッシュといいます。
プッシュを行うためには、あらかじめ、ローカルリポジトリへのコミットが必要です。

プルとクローン

リモートリポジトリの内容をローカルリポジトリに登録することをプルまたはクローンといいます。
変更点だけ転送ときはプル、すべてのデータを転送するときはクローンを使います。

プル(差分転送)

リモートリポジトリとローカルリポジトリを比較して、変更があるデータだけ転送します

クローン(フル転送)

リモートリポジトリにあるすべてのデータを転送します

Gitを使ったデータの流れ

データの流れをまとめました。用語もややこしいですが、ステージングの考え方が難しそうです。

  1. ワーキングツリー(プロジェクトフォルダ)
  2. ステージング(ワーキングツリーで更新したデータを登録)
  3. ローカルリポジトリ(コミットすることでステージングの情報を反映する)
  4. リモートリポジトリ(プッシュすることでローカルリポジトリのデータを反映する)
  5. ローカルリポジトリ(プルすることでリモートリポジトリのデータを反映する、デプロイ先になる)

今回のまとめ

FTPのかわりにGitを使ってデータを転送するべく色々と調べたり準備をしました。
文章にすると理解していないことばかりで、仕組みを調べるだけでひとつの記事になりました。

次回はローカル環境にGitをインストールし、ローカルリポジトリを作ってみたいと思います。