Engineer Blog

23歳です。大学を辞めてエンジニアになりました。散歩が好きです。音楽と読書も

git 全体の流れ (add/commit/push)

目次

git 全体イメージ(状態)

ローカル リモート
作業ディレクト
ステージングエリア
Gitディレクト(ローカルリポ)
Gitディレクト(リモートリポ)

作業ディレクト

  • 作業中のファイル
  • git add <ファイル名>ステージングエリアに進む

ステージングエリア

Gitディレクトリ(ローカルリポジトリ

  • ファイルの変更履歴を記録
  • git push <リモート名> <ブランチ名>Gitディレクトリ(リモートリポジトリ)に進む

Gitディレクトリ(リモートリポジトリ)

  • ファイルの変更履歴を記録

twitter.com

nginxのマスタプロセスとワーカプロセス

  • 備忘録です。マスタプロセスやワーカプロセスについて確認用

nginxはマスタプロセスとワーカプロセスのマルチプロセス構成で稼働する。

  • つまり、マスタプロセスは1つ、ワーカプロセスは設定することで複数起動可能。

マスタプロセスについて

  • マスタプロセスにシグナルを送ることでnginx全体のプロセスを制御する。
  • 各ワーカプロセスはマスタプロセスが受信したシグナルの種類に応じて各ワーカプロセスにもシグナルを送る。

ワーカプロセスについて

  • 通常シングルスレッドで動作しますが、I/O MultiplexingノンブロッキングI/Oを利用することで複数のクライアントとの入出力を並行して行うことを可能。
  • ワーカプロセス自体は複数起動可能なので容易にスケールさせることができる。

◆スケーリング【scaling】スケールする
情報システムの分野では、装置やソフトウェア、システムなどの性能や処理能力を、要求される処理量に合わせて増強したり縮減したりすることをスケーリングという。 「IT用語辞典」より

マスタプロセスとワーカプロセスの流れ

①シグナルを送る(SIGTERM,SIGQUIT,SIGHUPなど)
②マスタプロセスがシグナルを受け取る
③マスタプロセスが受信したシグナルの種類に応じて各ワーカプロセスにもシグナルを送る
④複数のワーカプロセスが受信

twitter.com

ブランチ戦略

git-flow/github-flow

git-flow

  • メインブランチを2つ (中央リポジトリ)
    • master (リリース用)
    • develop (開発用)
  • サポートブランチを3つ(開発メンバーのリポジトリ)
    • feature (developから派生。機能開発用。機能開発が終了次第、developにマージされて消える)
    • release (developから派生。リリース準備用。リリースが終われば、masterとdevelopにマージされて消える)
    • hotfix(masterから派生。リリース済みの製品に緊急対応用。masterにマージされ、タグをうつ)

github-flow

  • masterのものはすべてリリース可能
  • 新しく何かをするときはmasterから直接ブランチを作成
  • 作成したブランチはローカルマシンにコミットして、リモートリポジトリにも同じ名前のブランチとして定期的にPush
  • 開発が完了したらmasterへPull Requestを
  • Pull Requestがレビューされたらmasterにマージし、その場で本番環境にリリースする

*チーム開発実践入門 参考

twitter.com