おそらく git 運用の初歩的な質問になると考えています。
git 自体の知識はまだあまりありません。
多くのウェブシステムで同じように必要になるだろう機能を予め実装した、いわゆるボイラープレートとしての Laravel プロジェクトをつくっています。
新規アプリケーションは、それをコピーしてアプリケーション依存の機能だけ付け足しや変更して使う想定ですが、時には、ボイラープレート側にフィードバックしたい(ボイラープレートの一部として還元したい)基礎的な機能の修正や新規実装も発生すると思います。
このような場合一般的にはどういう仕組や手順で行われるでしょうか。
私が想像したのは、
ボイラープレートを Github 等で管理しておき、新規アプリケーション毎に自分自身でフォークして進め、フィードバックしたい部分のみを自分にプルリクエストして受け入れ、みたいなものですが、同じような運用手法が検索できませんでした。
上記の想像で実際試して、プッシュ〜プルリクエストすると、ブランチを切っていてもコミットを分けていても、それまでの更新すべてを一挙にマージするかしないかの判断になってしまい、一部分のみを取り込む選択ができない、もしくはわかりませんでした。
還元したい差分だけに作業を留めおいてプッシュするとしても、アプリケーションはアプリケーションで作業を進めコミットとプッシュを重ねていくわけで、次回のプルリクエストでは再びこれまでの更新箇所すべてをマージするかしないかの判断になるように思えました。
さらに作業ブランチを切り、もう一つ更新してプッシュ、プルリクエストを作成してみると、プルリクエスト自体は先程とは別件として追加されたものの、その更新内容と併せて、まだマージしていない先程の更新内容も併せてマージするかの判断になってしまいました。マージされるまで差分がどんどん積み重なっていくように思えました。
さらに、フォークしたアプリケーションプロジェクトは、ボイラープレートを成長させるためにあるわけでなく、あくまで新規アプリケーションですから、アプリケーション用のリモートリポジトリを立てて git remote set-url ...
で変更しました。
すると、還元先へ差分コードを提供する経路がなくなったように思いました。
ボイラープレート側での修正や還元受け入れが進むうちに、その成長部分は基本的にはフォークした各アプリケーションにも採り入れたいものの、部分によってはアプリケーション依存の実装に影響する理由で採り入れたくない部分も場合もあると思います。
部分単位で採り入れることは可能でしょうか。
Github を使って自身でフォークとプルリクエストするのは、想像した一つの方法であって、他の方法でもよいのですが、
ボイラープレートとそこから派生した各アプリケーションを都合よく同期、意図した一部分のみを採り入れ合う、ローカルとリモートが相互にチェリーピックし合うような運用にはどのようなやり方があるでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。