質問: いつもお世話になっております。 良いタイトルが思い浮かばず支離滅裂になっていることをお許し下さい。 また、初心者ですので用語の使い方等間違っているところがあればご指摘お願いいたします。 今回はGitについてお聞きしたいことがございます。 現在、他社様のPHP案件を行っており、Gitを利用したバージョン管理を行っております。 シンプルにリモートから作業しているマシンへクローンする、という使い方をしているのですが 弊社内で開発人員を足すという話や、弊社での動作確認を行うという話が出ており、 それに伴う環境の構築が必要になってきました。 下記を満たす構築方法がなかなか思い浮かばず、質問した次第でございます。 そもそもこういう方法は取るべきではないのかもしれませんが・・・ **1.Pushする前に社内サーバで動作確認をできるようにする。 2.社内で複数人開発を行えるようにする。 3.リモートリポジトリにPushするのは担当者(私)のみ。** ※ 上記はすべて外注元の担当者様に了承を得ております。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/505bb109c63cbab480dbcb9eae308c5a.png) 初めはこのような形を取ろうと思ったのですが、実際どう組めばよいかわからず・・・ (ローカルに開発ユーザがファイルを上げて、ローカルからリモートへPush?) 何か良い方法がありましたらご回答をお願いいたします。 // 追記 Gitホスティングサービスで構築されたものかどうかについてですが、わかりません。 現在はsshから始まるURLを教えていただき、それをSourceTreeでクローンしています。 (ドメイン名も見たことのないもので、直接踏んでもForbidden)
回答: ローカルに開発ユーザーがファイルを上げて、という言い方に違和感がありますが... もしかしてGit使うの自体初めてですか? とりあえず、簡単に思いついたやるべきことリストを書いておきます。 ・社内にGitBucket等のサーバーを立ててそちらで開発作業を行う ・Pull Request、使ってなければ使う ・Jenkins等で社内Gitサーバーからメインブランチの自動ビルドを行う ・必要なら手作業でビルドされたものをチェックする ・社内サーバーからリモートリポジトリにPushする こんなところですかね... 追記 == やっぱり初めてっぽいので、それよりも前の段階についても書いておきます。 ただ外注でやったことが自分の方にもないので、先方に受け入れてもらう部分は勘です。 1.社内用のGitリモートサーバーを立てる。(これにGitBucket等を使うことを推奨) 2.受注で教えてもらったリモートサーバーから社内リモートサーバーにCloneする 3.全開発者のPCにGitをインストールする 4.開発者のPCは社内用のリモートサーバーからCloneして開発作業を行う 5.開発開始時にはCloneしたmaster(又はdevelop)ブランチから新しくブランチを作り、社内サーバーにPushする際にはPull Requestを利用する 6.社内リポジトリの最新状態で受け入れテストを行う(ここをJenkins等に手伝ってもらう) == ここから勘 == 7.単にPushする または、リポジトリーで作業が競合する場合(誰かが本番環境を弄る場合) 7.リモートサーバーの状態が更新されているかもしれないのでrebaseする 8.リモートサーバーにPull Requestを投げる ...が、本来小さい修正なら正攻法ですが規模が大きそうなので、競合しないようにソリューションやgitリポジトリを分けてもらう必要があると思います。 被らないとしても、大きなマージが競合するようになると地獄を見るので。 とりあえず社内サーバーの扱い方になれてから、先方とPush方法については打ち合わせてください。