6

私の会社では、クライアントごとにカスタマイズされる基本ソフトウェアがあります。今日、SVN を使用して、次のような設定を行いました。

/trunk
/tags
    …
/branches
    /client_project_x
    /client_project_y
    /client_project_z

これをgitで整理するにはどうすればよいでしょうか? プロジェクトごとに 1 つのリモート リポジトリとベース コード用の 1 つのリモート リポジトリを持っているか、複数のブランチを持つ大きなリモート リポジトリを持っていますか?

複数のブランチを持つ大きなリモート リポジトリを使用する場合、リモート リポジトリから 1 つのブランチだけを複製する方法はありますか?

4

4 に答える 4

2

概念的には、1 つのリポジトリ内の複数のブランチと複数のリポジトリ内のブランチの間に違いはありません。DVCS の要点は、その区別を取り除くことです。特定のブランチにアクセスして制御する必要がある人々の観点から考える必要があります。すべての開発者がすべてのクライアントからコードにアクセスすることが一般的である場合、それらすべてを 1 つの中央リポジトリに配置する方が簡単になります。複製するブランチを選択できますが、レポ全体を複製するのが最も簡単です。ブランチごとに非常に異なるアクセス許可が必要な場合は、それらに対して個別のリポジトリを作成することをお勧めします。

つまり、開発チームとテスト チームがやりやすいように設定してください。

于 2012-09-04T13:53:43.317 に答える
1

個別のプロジェクトは個別のリポジトリにある必要があります。

(git の場合と同じくらい簡単です。大きなツリーまたは別のブランチの単一のリポジトリに、関連のない (または関連の薄い) プロジェクトを多数保持することには、利点はなく、潜在的な欠点がたくさんあります。)

于 2012-09-04T13:25:08.123 に答える
0

私はいくつかのレポを使用しています:

コアは 1 つのリポジトリにあり、各プラグインと各クライアントには独自のリポジトリがあります。

  • modwork (コア)
  • modwork_foo (クライアント「foo」の設定)
  • modwork_app1 (複数のクライアントにインストールできるアプリ)

インストールまたはビルド プロセス中にコア内の単一のファイルが変更されることはありません。すべてのクライアントは同じコアを持っています。コアには、カスタム メソッドのフックが含まれています。

クライアントのブランチのコアにあるファイルを変更するのは好きではありません。クライアントが 5 人を超えると、これは難しくなると思います。

于 2012-09-04T14:07:12.773 に答える
0

git は、ブランチ/マージ ブランチを非常に簡単にするために生まれました。そのため、会社の残りの部分に影響を与えることなく、新しい機能、機能のテスト、サブチームとの作業に必要なブランチを作成するだけです! たとえば、Linux には数千のブランチがあり、それらは成長しています!

Linus Torvalds のこのビデオを見てください。Git を開発する際に彼が持っている "in mind" の価値を理解するのに大いに役立ちます。

于 2012-09-04T13:25:37.420 に答える