職場では、現在の働き方を改善しようと考えており、Git が私たちの問題を解決できるのではないかと考えています。
現在のリポジトリは SVN でホストされており、次のようになっています。
MAIN ---trunk
---bugfix
CUSTOMER1
---trunk
---bugfix
CUSTOMER2
---trunk
---bugfix
ここで冗談を言います :) Customer1 と 2 は基本的に MAIN に基づいていますが、メイン プロジェクトにはカスタマイズが必要であり、それらを 2 つのブランチに分割し、MAIN のいくつかの共有コードを作り直すことにしました。
MAIN を customer1 または 2 にマージできないところまで来ています。コードが上書きされすぎているためです。新しい機能またはバグ修正を適用する場合、MAIN、customer1、customer2、および EVEN のコードを手動で編集する必要があります。場合によっては、バグ修正が別々に分岐します。修正のコーディングに 30 分、他のブランチへのコピーと貼り付けに 30 分を費やしています。
はい、これが完全に間違った作業方法であることは承知していますが、これを変更したいと考えています。
私はまともなgitの知識を持っており、他のいくつかのプロジェクトがこのように機能することを知っています。たとえば、@ chiliprojectを見てください。基本的には、おそらく次のような設定が必要です。
MAIN --- develop
--- feature
--- master
--- bugfix
\
customer1
--- ...
\
customer2
おそらく合計 3 つのリポジトリがあり、顧客 1 と 2 は MAIN に基づいています。新しいコードを MAIN に適用すると、それを customer1 と customer2 にプルするだけです。誰かがこれを解決する方法について提案できますか?
また、リモートbeeing MAINであるcustomer1にリモートリポジトリを追加してみました。最新のリビジョンを取得すると、MAIN からすべての差分が取得されます。明らかに、現時点ではコードがかなり異なるため、これをマージしたくありません。ただし、たとえば hello.php へのパッチのみを含む将来のリビジョン 1 を取り込みたいと考えています。
ありがとう