GITの目的に反して中央リポジトリを使用していますか?

StackOverflow https://stackoverflow.com/questions/460502

  •  19-08-2019
  •  | 
  •  

質問

特定のアプリケーションに取り組んでいる多くの人がいる企業の設定にいる場合、それは分散バージョン管理システムは、公式の中央リポジトリを持っていますか?

企業環境での GIT などの分散バージョン管理システムの概念を理解するのに苦労することがあります。中央リポジトリがない場合、誰が取得する最新の更新バージョンを持っているか、誰もが取得する必要がある機能xまたはバグ修正yを持っているかなどを把握するのはPITAではありませんか

GIT の目的に反していますか://subversion.tigris.org/ "rel =" noreferrer "> SVN 、誰もがプッシュ/プルする中央リポジトリがありますか?そのことを考えるたびに、私はすべてのポイントを逃しているように感じます。

誰かが私を啓発できますか?

役に立ちましたか?

解決

そうでもない。 DCVSは、中央リポジトリを使用せずに開発者間でやり取りする方法を自由にするだけです。公式リポジトリは、公式のコンセンサスのみです。 Linuxには中央リポジトリもあり、そこから<!> quot; official <!> quot;カーネルリリースは作成されますが、中央集中型の<!> quot; official <!> quot ;、リポジトリとクライアントリポジトリの間に物理的な違いはありません。集中型VCSにあります。

他のヒント

おそらくこの図の線に沿って考えているでしょう:

alt text

これはおそらく、CVCSから来るカオスのように見えるでしょう。 <!> quot;注文が必要です<!> quot ;、あなたが言うのが聞こえますか

  

中央リポジトリがない場合、誰が取得する最新の更新バージョンを持っているか、誰もが取得する必要がある機能xまたはバグ修正yを持っている人などを把握するのはPITAではありませんか? 。

はい。 CVCS There <!>#8217;とは異なり、実際には<!>#8220;最新バージョン<!>#8221;ではありません。 <!>#8217;中央の場所がない場合、最新バージョンのスー、ジョー、またはイブを見るべきかすぐにわかりません<!>#8217; t。中央の場所は、最新の<!>#8220; stable <!>#8221;リリースは。

もう少しこのようなもの:

alt text

組織内の人々のグループの権限に応じて、複数の中央リポジトリが認識される可能性があることにも注意する価値があります。

複数の開発チームを管理するプロジェクトマネージャーを想像してください。各チームには<!> quot; central <!> quot;プッシュ先のリポジトリ。毎週、プロジェクトマネージャーは各チームからの変更を自分の<!> quot; central <!> quot;リポジトリ、それらをマージし、彼のチームの<!> quot; central <!> quotに押し戻します。リポジトリ。

これはおそらく素晴らしい例ではありませんが(私はまだこれすべてについて頭を悩ませています)、それはただのプロジェクトマネージャーです。さらにいくつかのプロジェクト/マネージャーとQAチームを投入すると、私がどこから来たのかわかるかもしれません。

-

分散ソース管理では、中央の<!> quot; official <!> quot;リポジトリは、ソース管理ツールのアーキテクチャではなく、ポリシーによって確立されます。

間違いなくGitの目的に反しない。

中央の公式リポジトリがある場合でもGitまたはその他のDVCSを使用することの利点は、ソース管理が分散化されていることです。つまり、必要に応じて、リポジトリのコピーを取り、コードを操作し、数分ごとにローカルコミットを実行できます。コミットがビルドを中断する半完成のコード上にあることを心配する必要はありません、それはすべてローカルです。 (そして非常に高速です。)

その後、すべての作業が完了したら、履歴をクリーンアップし、完了した変更を同種のクリーンな状態で中央リポジトリにプッシュできます。

<!> quot; private <!> quot;のアイデアを分離する利点を過小評価することはできないと思います。コミットおよび<!> quot; public <!> quot;プッシュ。このように小さな粒度の恩恵を受けるのはあなただけであるにもかかわらず、変更を追跡することができます。

これをチェックすると、 Gitのプレゼンテーション(スライド475以下)、中央リポジトリモデルはGitによって完全にサポートされています。

最初にgit pushを作成し、次にプッシュするように、git fetch + git merge開発を希望する人に強制することができます。

それはGitの目的を完全に無効にするものではなく、全員が互いに「同期」していることを確認します。

Linusの<!> quot; official <!> quot;との違いリポジトリ JesperEが言及しているは、別のワークフロー、つまり<!> quot;独裁者と中eu <! > quot;書き込みアクセス(プッシュ)はLinusにのみ許可され、読み取りはすべてのユーザーに許可されます。

Now:<!> quot;これはDVCの要点を打ち負かす<!> quot;

いいえ、あなたはまだ各開発者に1つのリポジトリを配布しており、彼らは自分の内部チームのワークフローに従って、自分のリポジトリ間でフェッチ/マージすることができます。
ただし、中央リポジトリに貢献したい場合は、そのリポジトリの最新の履歴を最初に最新にする必要があります。

DVCSの主な利点の1つは、「公式」リポジトリから最新バージョンを取得し、それを使って冒険できることです。変更をローカルでコミットし、自由にロールバックできます。これはまた、中央リポジトリにアクセスしなくても作業でき、ソースコード管理のメリットを享受できることを意味します。

ちょっとした規律があれば、モデルは非常にうまく機能すると思います。 この記事では、採用できるさまざまなモデルについて詳しく説明しています

Git don <!>#8217; tのようなDVCSは、強制的に中央リポジトリを使用するようにします。もちろん、<!>#8217; 1つのリポジトリを<!>#8220; central <!>#8221;として宣言することもできます。または<!>#8220; official <!>#8221;または何であれ、企業の文脈では、中央リポジトリは何らかの意味があります<!>#8212;開発用でない場合は、少なくともバックアップの目的で。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top