2017-03-24 28 views
0

git flowをローカルでどのように使用するのか疑問があります。私はこれを行う必要がありますか リモートのgitの流れで、私はすべてが明らかに思える推測:"git flow"でgitをローカルで使う必要がありますか?

1)リモートリポジトリを作成し、これはすべての開発者がローカルコンピュータにリモートレポのクローンを作成し、いくつかのスタッフを作る)マスター 3から1 masterブランチ 2)作るのdevelブランチになります: 変更をコミットし、リモートのdevelブランチにプッシュすると、「リポジトリ所有者」はリモート開発分岐をマスター時間にマージします

しかし、ローカルリポジトリはどうですか?私はgitの流れをローカルに作成する必要がありますか?自分自身を開発してマスターブランチにしてください。私は自分のローカル開発ブランチに変更をコミットし、それをローカルマスターにマージし、その後はリモート開発ブランチにプッシュします。

ローカルのリモートリポジトリと連携するための適切なアクションキューは何でしょうか?

原因私はリモートのリポジトリをクローンすると私はマスターし、リモートのリポジトリのようなブランチを開発していると思います。

おかげ

答えて

0

git flowは、リモートリポジトリに関するものではありません。 gitではリモートリポジトリは必要なく、ローカルリポジトリだけですべて行うことができます。しかしgit flowは、プロジェクトのすべてのリポジトリに有効です。あなたが通常新機能を開発するフィーチャーブランチe。 g。必ずしも中央のリポジトリにプッシュされるとは限りませんが、ローカルでのみ表示されたり、開発者の一部がリポジトリ間で直接共有したりすることはありません。

+0

こんにちは!それは私がgitをローカルで使うことができるように頼んでいたようなものでしたが、gitフローを使う方法についてはどこでも話し合い、ブランチはほとんど作っていませんが、git flow shemaをローカルのgitリポジトリで繰り返す必要があるのだろうか?たとえば、いくつかの開発者がいくつかの未来を手助けすることに決めたのですが、私のリモートリポジトリを取得してローカルのリポジトリを取得し、コミットして地元の開発ブランチにプッシュすると、それをマスターブランチとマージしますそれをリモートサーバにプッシュし、私がローカルで行ったアクションを繰り返します...おそらく私はあまり明確に書いていません:( – scion4581

+0

はい、私はあなたが十分明確に書いていないと思います。あなたのローカルブランチでは動作しません。マスターで作業することはありません。ホットフィックスブランチ、フィーチャーブランチ、または開発ブランチで作業します.gitフローを使用する場合は、誰かがクローンを作成した場合、最初に自動的にチェックアウトされるブランチです。あなたの仲間があなたのリポジトリにプッシュしないで、あなたは非裸にプッシュしません。あなたとあなたは彼から引き離す。 – Vampire

1

gitフローの説明は一部を除きます非常に重要な詳細;なぜそれが動作するのかのドキュメンテーションを見直したいかもしれません。

いずれの場合でも、gitflowでは、masterブランチはすべてのreposのマスターブランチです。それがする最も重要なことは、リリースバージョンののみで構成することです。どの瞬間でも、マスターのHEADはあなたの現在の制作リリースと一致する必要があります。あなたがマスターに直接仕事をしない理由です。開発ブランチは、任意の修正プログラムブランチと同様に、マスターから分岐します。マスターへのマージについての重要なことは、WHOのマージを行うべきではありません。完成リリースとホットフィックスブランチのみが新しいリリースバージョンを反映してマスターにマージされるべきです。

開発ブランチは、すべてのreposにまたがる開発ブランチです。これは、プロジェクトに累積的に解放可能な(必ずしもリリースされているわけではない)作業を反映しています。開発ブランチのHEADを追跡する中央開発および/またはqa環境を作成できます。いつでも開発にはクリーンなビルドが含まれている必要があります。マスターのように、開発ブランチで直接作業することはありません。リリース分岐は、機能ブランチと同様に、開発から分岐します。

フィーチャを開発する場合は、フィーチャブランチを作成します。このブランチはチームの起点リポジトリにプッシュされることはありません。これらのブランチを共有するのか、共有しないのか、あるいはケースバイケースで開発者が決定するのはチームの責任です。このブランチには進行中の作業が含まれています。作成された機能を完全に実装するクリーンなビルド状態にすると、それをマージして開発します(そして削除することもできます)。

等など

ポイントがある - あなたがgitflowを使用している場合、あなたはgitflowを使用しています。ローカルリポジトリのブランチ(機能ブランチを除く)は、元の対応するブランチを追跡する必要があります。

オリジナルのブランチをローカルマスターとしてクローンし、gitflowをその新しいマスター(実際には開発中)の周りにローカルに複製する必要がありますか?さて、あなたはそのようなワークフローを発明することができると思いますが、なぜですか?それは不必要な複雑さのように思えます。実際には既に存在するgitflow構造を複製することができないため、開発者から便利なツールが離れてしまいます。

サブチームがローカルリポジトリでコラボレーションできるようにするのは、そのチームがオリジンレポにどのように関わっているかを個別の開発者として行動できるかどうかです。まあ、大丈夫ですが、(1)その場合、「ローカル」は中間のものでなければならず、「真の」起源からクローンされますが、個々の開発者はまだクローンしています。 (2)実際にこれを行う必要はありません。

あなたと他の開発者が、ペアプログラミング以外の方法でフィーチャーブランチでコラボレーションしていて、別の何かを行う必要があるためでないと確信できる場合(フィーチャーを2つのフィーチャーに分解する、 )、あなたはフィーチャーブランチを共有することができます(少なくとも2つは原点を超えていなくても)、個々の作業のローカルブランチを作成し、フィーチャーブランチにマージ(またはリベース)を調整することができます。しかし、それは "サブgitflow"の形式を必要としません。

関連する問題