Git管理のソースを元に新しく構築する環境に反映させる手順
2025/03/23
Git管理のソースを使って新しい環境を構築する
Gitで管理しているソースを使用して、新しい環境を構築する方法を解説します。
例えば、下記のような想定です。
・進行中のプロジェクトに参加し、ローカルに開発環境を作る
・ローカルで開発しているものを、AWS上に検証環境を作る
・リリースが近づいてきたので、AWS上に本番環境を作る
また、最近は、ほとんどの場合はフレームワークを使用して開発をしていると思いますので、フレームワークの設定も含めた環境構築の手順を解説します。
(私は CakePHPをメインで使用していますので、CakePHPを想定して書きますが、他のフレームワークでも同じようにできるはずです。)
今回は、
「ローカルでの開発が終盤に近付いてきたので、本番環境を構築する」
という想定で説明していきます。
Git管理のソースを新しく構築する環境に反映させる手順
CakePHPの基本的な環境を構築する
まず最初に、本番環境にローカル環境と同じフレームワークをインストールします。
CakePHPの場合は、LAMP環境を構築し、まっさらな CakePHPをインストールします。
CakePHPのバージョンを調べる方法、および、バージョンを指定して CakePHPをインストールする方法は下記の記事を参考にしてください。
「CakePHP3、CakePHP4、CakePHP5のバージョンを指定してインストールする詳細な手順を解説」
「CakePHP2、CakePHP3、CakePHP4、CakePHP5のバージョンを調べる 2つの方法」
※LAMP環境の構築については Googleで検索してください。
この段階で、DBの設定、テーブルの構築などを行い、インストールした CakePHPが動作することを確認しておきます。
また、Gitで管理していないライブラリ等のインストールもこのタイミングで実行しておきます。
例えば、「Authentication(認証処理)」など。
https://book.cakephp.org/authentication/3/ja/index.html
「Authentication(認証処理)」については、下記にも記事を書いていますので参考にしてください。
「CakePHP4、CakePHP5系の認証処理でログインの有無の確認、ユーザ情報の取得の方法」
「CakePHP4、5のユーザ認証でID、PASS以外の削除フラグなども条件加える方法」
Gitのインストールと初期設定
Gitがインストールされているか否かの確認
Gitがインストールされているか否かを確認します。
1 2 |
$ git --version git version 2.47.1 |
上記のようにバージョンが表示されれば Gitはインストールされています。
「-bash: git: command not found」の場合はインストールされていませんので、Gitをインストールします。
Gitのインストール
Gitがインストールされていない場合は、インストールを行います。
AWSの AL2023の場合は dnfを利用してインストールします。
(「update」でインストールするパッケージを最新化し、「install」でインストールします。)
1 2 |
$ sudo dnf update $ sudo dnf install git -y |
yumを利用してインストールする場合もコマンド形式は全く同じです。
1 2 |
$ sudo yum update $ sudo yum install git -y |
インストールを実行し、「Complete!」と表示されると完了です。
改めて、「git --version
」を実行してバージョンが表示されることを確認します。
Gitの設定
続いて、CakePHPを構築している環境で Gitを使用できるように設定します。
1 2 3 |
$ cd /var/www/html/ $ git init $ git remote add origin https://ID:PASS@example.com/sample/sample.git |
「cd」コマンドで開発をしているアプリのドキュメントルートに移動します。
「git init
」で Gitを設置します。
続いて、「git remote add
」で Gitで管理しているリポジトリの情報を追加します。
詳しい説明が必要な場合は、下記のサイトなどが参考になるかと思います。
https://www.sejuku.net/blog/71492
ソース一式を pullする
続いて、ソースを「pull」します。
1 |
$ git pull origin master |
ここでは、「master」ブランチを「pull」していますが、必要なブランチを pullしてください。
そうすると、下記のようなエラーが発生します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ git pull origin master remote: Enumerating objects: 1234, done. remote: Counting objects: 100% (1234/1234), done. remote: Compressing objects: 100% (880/880), done. remote: Total 1234 (delta 1111), reused 880 (delta 660), pack-reused 0 Receiving objects: 100% (1234/1234), 3.33 MiB | 4.44 MiB/s, done. Resolving deltas: 100% (1111/1111), done. From https://example.com/sample/sample.git * branch master -> FETCH_HEAD * [new branch] master -> origin/master error: The following untracked working tree files would be overwritten by merge: .editorconfig .gitattributes .github/ISSUE_TEMPLATE.md : 中略 : webroot/img/cake.power.gif webroot/index.php webroot/js/.gitkeep Please move or remove them before you merge. Aborting |
これは「pullしようとしているファイルがすでにありますよ」というエラーです。
CakePHPを普通にインストールした上に pullしていますので、既にファイルがある場合もあるでしょう。
というワケで、重複しているファイルを削除していきます。
重複しているファイルを削除する
ファイルのリストを一つずつ見ながら ftpなどで削除してもいいのですが、重複しているファイルのリストを、テキストファイルなどにコピペして、行頭に「rm」コマンドを追加します。
そして、これを改めてコンソールにコピペしてまとめて削除します。
この方法を使えば、抜け漏れなく簡単に指定のファイルを削除できます。
1 2 3 4 5 6 7 8 9 |
rm .editorconfig rm .gitattributes rm .github/ISSUE_TEMPLATE.md : 中略 : rm webroot/img/cake.power.gif rm webroot/index.php rm webroot/js/.gitkeep |
https://qiita.com/h-pod/questions/c9aafa4cb872ef68dfc5
ただ、上記の記事によると「コピペ」する際の文字数には「4096文字」という上限があるようですので、無理せず、20~30行ずつくらい実行するとよさそうです。
全部削除が終わったら、改めて、pullを実行すれば、Gitで管理している環境が出来上がります。
1 |
$ git pull origin master |
pullした「master」ブランチができていることを確認します。
1 2 |
$ git branch * master |
最新の情報が pullで来ていることを logで確認します。
1 2 3 4 |
$ git log --oneline 0b7f0b7 (HEAD -> master, origin/master) 3rd Commit d34cd34 2nd Commit 7570757 First Commit |
ブラウザでアクセスし、ローカル環境と差異がないかを改めて確認します。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
PythonでUTF-8など日本語(全角文字)を使う方法。コメントにも必要。
Pythonの標準では日本語(全角文字)を利用できないので、利用する際は文字コードを宣言する必要がある。「# coding: utf-8」の様に記述すればOK。
-
-
mod_pagespeedでWebサイトを超簡単高速化・Google謹製の最終兵器
Webサイトの表示スピード高速化の最終兵器、Google謹製mod_pagespeedの解説です。レンタルサーバではX-Serverでしか利用できませんが、ワンクリックで高速化します。
-
-
Selenium WebDriverでFirefoxをプライベートウィンドウ/Chromeをシークレットモードで起動する方法・言語はpython
Seleniumでは初期状態でブラウザを起動する Seleniumでブラウザ …
-
-
本当に?GMO系ロリポップ・ヘテムルを無料で運用する方法があった!
ロリポップ、ヘテムルを株主優待を利用して実質無料で運営しよう!という解説記事です。株主優待で提供されるサービスの内容を解説し、無料になる仕組みを解説します。
-
-
FTPでダウンロード時にファイルが重複するため上書きしますか?と表示される問題
FTPでファイルをダウンロードする際に「ファイルが重複しています。上書きしますか?」というメッセージが出る場合がありますが、これの原因と対策、解決策の記事です。
-
-
mod_pagespeedカスタマイズで高速化を詳細解説・Google謹製
mod_pagespeedをデフォルトのまま使っていませんか?mod_pagespeedはデフォルトのままでも速い!でも仕組みを理解し設定し直せばより速くなる!
-
-
Beautiful Soupを利用してPythonでスクレイピングを行う環境構築方法の解説
BeautifulSoupはPythonでスクレイピングを行う際に便利なツール。インストール方法も簡単。ただ、事前にpipのインストールが必要でその解説もしてます。
-
-
Gitで「fatal: Authentication failed for ‘https://example.com/git_repositories/example.git/’」のエラーが出た場合の対処方法の一つ
Gitのリモートリポジトリにアクセスする際、Authentication failedのエラーが。しかし、ID、PASSが間違っているのではなく、リモートリポジトリのURLが間違っている場合もあるので再度確認を。
-
-
.htaccessのmod_expiresでブラウザキャッシュで高速化でSEO対策!
Page Speed Insightsの指摘事項のファイルのブラウザキャッシュの設定方法。解説もしてるけど、.htaccessにコピペするだけの簡単設置で効果抜群!SEOにも威力を発揮!
-
-
エックスサーバーで独自SSLは永久無料で取り放題。利用方法と理由を解説!
エックスサーバーでは独自SSLが無料でいくつでも設置できるように!しかも、国、都道府県などの数項目の入力と数クリックだけという超簡単!SSL化しない理由がない!