FTPおじさんのほりぽたは知りませんでしたが、最近のシステム開発では本番環境にデータを転送することをデプロイといい、Gitという技術を使ってデータ転送するそうです。
さらにGitはバージョン管理機能があるので、昔みたいに、ファイルを変更するたびにファイル名の先頭に日付を追加しなくてもいいらしい!
とうことで、FTPではなくGitを使って本番環境へのデータ転送を目標に頑張ります!!
全体像
やりたいことは次のとおりです
ローカル環境(Windows)で作ったNode.jsのデータを、本番環境(Windows)に転送したい(ついでにバージョン管理も!)
そのために、やるべきことをまとめました
- ローカル環境にGitをインストールする
- 本番環境(Windows)を構築する
- 本番環境にGitをインストールする
- ローカル環境からGitを使って本番環境にデプロイする
- 本番環境で動作確認をする
- バージョン管理を試してみる(できれば)
本番環境がWindowsなのは、単純にLinuxを触るほどの技術がないからです><
いずれLinuxでWebサーバーを構築してみたいです
Gitの仕組みについて調べてみた
Gitを勉強する過程で、用語や仕組みについて覚えたことをまとめました。
なお、今回はデータ転送が目的なので最低限の機能だけ調べました(そうしないと理解が追い付かない・・)。
ワーキングツリーとは
プロジェクトフォルダなど実際に操作をするデータが入っているフォルダのことです
ステージング、インデックスとは
ワーキングツリーのファイルを更新した後に、インデックスと呼ばれる場所に登録をします。インデックスに登録することで、次に説明するリポジトリへ反映できます。
リポジトリとは
Gitでデータを保管する場所(データベース)のことをリポジトリといい、リポジトリのデータを別のリポジトリとやりとりすることでデータ転送を行います。
リポジトリには、ローカルリポジトリとリモートリポジトリの2種類があります。
ローカルリポジトリ
PCやサーバが自身のデータを管理するために必要なリポジトリです。
リモートリポジトリ
ローカルリポジトリからのデータを集約、管理するリポジトリです。今回は本番環境のサーバを使用します。
データ転送に関する用語(コミット、プッシュ、プル、クローン)
リポジトリに関わるデータ転送には、それぞれ用語が決まっているので覚える必要があります。
コミット
ローカルリポジトリに登録することをコミットといいます。
プッシュ
ローカルリポジトリの内容をリモートリポジトリに登録することをプッシュといいます。
プッシュを行うためには、あらかじめ、ローカルリポジトリへのコミットが必要です。
プルとクローン
リモートリポジトリの内容をローカルリポジトリに登録することをプルまたはクローンといいます。
変更点だけ転送ときはプル、すべてのデータを転送するときはクローンを使います。
プル(差分転送)
リモートリポジトリとローカルリポジトリを比較して、変更があるデータだけ転送します
クローン(フル転送)
リモートリポジトリにあるすべてのデータを転送します
Gitを使ったデータの流れ
データの流れをまとめました。用語もややこしいですが、ステージングの考え方が難しそうです。
- ワーキングツリー(プロジェクトフォルダ)
- ステージング(ワーキングツリーで更新したデータを登録)
- ローカルリポジトリ(コミットすることでステージングの情報を反映する)
- リモートリポジトリ(プッシュすることでローカルリポジトリのデータを反映する)
- ローカルリポジトリ(プルすることでリモートリポジトリのデータを反映する、デプロイ先になる)
今回のまとめ
FTPのかわりにGitを使ってデータを転送するべく色々と調べたり準備をしました。
文章にすると理解していないことばかりで、仕組みを調べるだけでひとつの記事になりました。
次回はローカル環境にGitをインストールし、ローカルリポジトリを作ってみたいと思います。