いろんなやり方があって究極的には正解はないのですが、ベストプラクティスに近いものはあります。
おそらく開発用と本番用とサーバーがわかれているので、githubにローカルからpushしその内容を開発用のサーバーにデプロイ?する。
問題なければ本番にデプロイという流れなのかなと考えています
大まかな流れとしては問題ないと思います。
ただ、できれば開発、ステージング、本番と3つは環境があったほうがいいでしょう。
開発環境は本当に各メンバーの開発用で、ローカルで開発したものを動作確認したり直接その上で開発をしたりするための、比較的実際の動作環境に近めの環境(同じ環境を用意できるならベスト)
ステージングは複数人が開発したソースを合わせた上で、本番環境同様の構成でテストや動作確認をするための環境
みたいな感じで分けるイメージです。
これもざっくりな分け方なので、絶対ではないです。
各自のローカルリポジトリからリモートリポジトリへpush
この辺は説明の必要がないかもしれませんが念の為。
同じリポジトリの同じブランチに無条件にpushすると同じ箇所を変更したときに問題が発生します(コンフリクト)
なので、基本的には作業ごとにブランチを切って、プルリクエストでレビューを行った上で承認されたらデプロイ用のブランチにマージする、という流れにすると良いでしょう。
差分はGitHubのプルリクエスト上で確認します。
デプロイするブランチは予め決めておきます。
開発環境と本番環境で専用のデプロイブランチを用意しておくのもいいですし、開発環境でテストが済んだことを何かで保証できるならデプロイ用ブランチを一つだけ用意しておくでもいいので、このへんはルールで決めることです。
デプロイの方法についてはソースによって変わります。
最も単純な手段はサーバ上でgit clone/pullすることですが、ただ配置するだけでは動かないケースは多々あります。
配置後に何かしらのコマンド実行が必要になったり、ビルドが必要だったり。
それらすべてを手動でやることもできますが、そのへんは少しずつ自動化するといいでしょう。
デプロイはブランチやコミット、タグを指定した上で自動でできるようにしておくと、実環境への反映がスムーズに行なえて開発効率が大きく上がるでしょう。
いきなりここまでやるのは大変ですが、CI/CDという言葉について調べてみるといいかなと。
それについて追加で説明するのはあまりにも大変なので一旦は割愛します。
CI/CD とは
CI/CDのエキスパートが解説:CI/CDとは何か? なぜ今、必要とされるのか?
GitHubならGitHub Actionsを使った方法もありますし、AWSのサービスを使うならCodeBuild/CodeDeployやそれらをまとめたCodePipelineを使う方法もあります。
古くからだとJenkinsを使う方法もありますね。
CircleCIみたいな、そのためのサービスみたいなものもあります。
githubは使用しないでサーバー上にリモートリポジトリを作るやり方などもある
できなくはないですが、それをやることはほぼないです。自分も実際には全く見たことがありません。
※GitHubをサーバ上で動かす、GitHubエンタープライズというサービスならありますが…。
GitHubがデファクトスタンダードなので、何もわからなければとりあえずGitHubを使うことをお勧めします。
あと、一応同様のgitリポジトリ管理サービスは他にもいくつかあります。
GitLabやBitBucket、AWSならCodeCommitなど。
ただ、全くgitの経験がないなら素直にスタンダードであるGitHubを使っておいたほうが良いかと思います。
また、社内システムならリポジトリを非公開にすることをお忘れなく。
今ならGitHub Organizationも無料で使えるようになったので、自分の会社のOrganizationを作るといいでしょう。
これらはかつては有料プランでしかできませんでしたが、今なら無料でできます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/14 01:08
2020/08/14 05:57
2020/08/18 04:19