Gitフロー-別の機能ブランチから機能ブランチを作成します


85

git flowしばらく使っています。特定のユースケースについて知りたいです。

私のプロジェクトの1つに、新しいWebサイト機能のチケットがあります。このチケットは多くのサブタスクに依存します。メインチケットの機能ブランチを作成し、次にサブタスクごとに親機能ブランチから機能ブランチを作成したいと思います。

チケットPROJ-500を持っていて、その機能ブランチを作成するとします。

git flow feature start PROJ-500

次に、すべてをに統合する前に、チケットPROJ-501PROJ-515に統合したいと思います。私が次のようなことをする方法はありますかPROJ-500develop

git flow feature start PROJ-511 -b PROJ-500

その後、時間の経過とともにこれらのサブタスクが完了し、それらの機能が終了すると、ブランチはにマージされPROJ-500ます。

git flow feature finish PROJ-511

上記のコマンドはにマージPROJ-511されますPROJ-500

そして、すべてのサブタスクが完了PROJ-500すると、終了してにマージされdevelopます。

このようにして、新しいWebサイト機能は、断片的ではなく単一のユニットとして開発に統合されます。


これはそれをしませんか?git flow feature start PROJ-511 PROJ-500?DerekSの回答へのコメントに投稿したリンクは、そうすべきであることを示唆しています。
Paul Hicks 2014

回答:


117

を介してサブ機能ブランチを作成できます

git flow feature start PROJ-511 feature/PROJ-500

ただし、GitFlowツールを使用してブランチをメイン機能ブランチにマージすることはできません。

git flow feature finish PROJ-511

機能はにマージされdevelopます。Ergoサブ機能はサポートされていないため、手動で行う必要があります。

代替案:ただし、要件は新しいものではありません。未解決の問題と、以外のブランチへの仕上げ機能をサポートすると主張するフォークプロジェクトがありdevelopます。また、その機能を実装したプルリクエストも見つかりました。その変更を試して、満足できるかどうかを確認することをお勧めします。


更新2019年12月13日:ユーザーとしてマテイKřížちょうど彼のコメントで述べたように、利用者トニーChemitは答え書かれたここを指し、数ヵ月後に鉱山gitflow-AVH元gitflow製品の代替として。上記の構文で、すぐに使用できるサブ機能をサポートします。数年が経過し、現在、AVHエディションはGit for Windowsの通常のインストールの一部です。ローカルボックスでこれを確認し、サブ機能オプションをテストしました。つまり、Windowsユーザーの場合、Gitのインストール直後に機能します。


1
@pymarco:答えを受け入れてくれてありがとう。私は興味があります:あなたは代替案のいずれかを試しましたか?もしそうなら、どれと結果は何でしたか?期待どおりに動作しますか?多分他の読者はあなたの経験から何かを学ぶことができます。:-)
kriegaex 2014

申し訳ありませんが、これに戻る時間がありませんでした。いつかやってみます。
pymarco 2015

3
なぜ反対票を投じるのですか?反対票は、研究努力や知識の兆候を示さない、ひどく書かれた、ずさんな回答に使用されることを意図しています。とりあえずありがとう。
kriegaex 2015年

あなたは使用している場合はgitflow-AVHで下位バージョンの外観をstackoverflow.com/a/29353800/472611トニー・chemitの答え@
マテイKříž

31

私が理解したように、gitflowはかなり放棄されています。

gitflow-avhがこれに置き換わり、この機能を提供します(https://github.com/petervanderdoes/gitflow#creating-featurereleasehotfixsupport-branchesを参照 )。

私はそれを試してみて、それは私にとってうまくいきます。

git flow feature start PROJ-511 feature/PROJ-500
git flow feature finish PROJ-511

PROJ-511feature / PROJ-500に統合されました。


11

すでに述べたように、任意のベースブランチを使用して新しい機能を開始できます。

git flow feature start PROJ-511 feature/PROJ-500

そして、サブ機能を終了するために、develop次の代わりに機能ブランチを使用するようにgitフロー構成を一時的に変更できます。

git flow config set develop feature/PROJ-500 && git flow feature finish PROJ-511

このようにして、gitflowはすべてのコマンドとサニティチェックを実行します。最後に、構成を復元するには、

git flow config set develop develop 

9

更新(2020年11月5日):ここの新しい回答に記載されているように、これは元のgitフローを置き換えたgitflow-avhで可能です。

===================

元の回答:

gitフローにこれを行う方法はないと思いますが、gitだけでかなり簡単です。

git checkout PROJ-500
git checkout -b PROJ-511
...do your PROJ-511 work...
git checkout PROJ-500
git merge PROJ-511
git branch -d PROJ-511

2
返信してくれたDerekに感謝します。はい、私はそのワークフローに従うことができました。しかし、git flowは、サブ機能の開発に利用することを好む多くのコマンドとサニティチェックをカプセル化します。たとえば、ここにgit-flow-featureへのリンクがあります-github.com/nvie/gitflow/blob/develop/git-flow-feature
pymarco
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.