web-dev-qa-db-ja.com

git flow-ある機能の開発を一時停止して別の機能に取り組む方法

私はgitとgit flowが初めてです。私はさまざまなページ、ブログ、それにStackoverflowの質問をすべて読み、日々の開発に使用しています。

しかし、1つの問題が私を悩ませてきました、私はそれに頭を包むことができません。機能ブランチは小さいはずです。機能を開始し、その一部をコーディングして、機能を終了します。これは日常の出来事です。開発ブランチが常にビルド可能であることを確認するだけです。

しかし、私が機能の真ん中にいるとき、それは完成する準備ができていませんが、作業の優先順位が変わるとどうなりますか?別の機能に切り替えられるようにしたいのですが。

たとえば、私は新機能を開始します。

$ git flow feature start yak-Speedup

私はコードを書いたり、ファイルをコミットしたりしています...そしてそれについては順調に進んでいます。しかし、今は作業中のリソースを変更する必要があります。これは、ほとんどの場合、利用できないリソースが必要で、サーバーコーダーが1日か2日準備できないためです。機能が開発ブランチを壊すため、機能を終了できません。

私はこのようなことをしたいと思います:

$ git flow feature pause yak-Speedup
$ git flow feature start alpaca-Sheering
#write code
$ git flow feature finish alpaca-Sheering
$ git flow feature resume yak-Speedup

実際、「git flow feature list」コマンドが存在するということは、いくつかの機能を同時に実行できることを意味します。しかし、機能を作成または切り替える方法がわかりません。実際、これはgitフローの問題ではなく、gitの問題だと私は思い始めています。

どんな助けにも感謝します。ありがとう!

48
John Green

git flow feature pause yak-Speedupコマンドは必要ありません(feature pauseは存在しません)。 git flow feature resume yak-Speedupの代わりに使用するコマンドはgit flow feature checkout yak-Speedupです。これにより、yak-Speedup機能ブランチに戻り、開発を継続できます。

git flowを実行すると、次のように表示されます。

Try 'git flow <subcommand> help' for details.

git flow feature helpを実行すると、次のように表示されます。

usage: git flow feature [list] [-v]
       git flow feature start [-F] <name> [<base>]
       git flow feature finish [-rFk] <name|nameprefix>
       git flow feature publish <name>
       git flow feature track <name>
       git flow feature diff [<name|nameprefix>]
       git flow feature rebase [-i] [<name|nameprefix>]
       git flow feature checkout [<name|nameprefix>]
       git flow feature pull <remote> [<name>]
47
Dan Cruz

パーティーには遅れますが、私の経験はこれです。私はgitをgit flowと組み合わせて使用​​しています。

git flow feature start foo  <<== start
#code, hack and COMMIT
git checkout develop        <<== go back to develop branch.. 
git flow feature start foo2 <<== start a new feature
#code, hack and COMMIT
git checkout feature/foo    <<== go back to foo. NB: using full branch name

開発に戻って、fooから独立して分岐し、develop onlyを使用していることを確認します。同時に他の機能からのコミットがあった場合、開発のマージも行うことができます。

4
angryITguy

あなたが欲しいのは本当にブランチです:

git branch feature1 <startingpoint>
git checkout feature1
# hack hack hack, commit commit commit
git branch feature2 <startingpoint>
git checkout feature2
# hack hack hack, commit commit commit
# Oops, urgent request comming in, must switch to stable and patch
git stash
git checkout stable
# patch, commit, Push
# back to feature2
git checkout feature2
git stash pop

etc etc.そのためにブランチが作成されます。

そして、機能が優れていることがわかったら、devとPushにマージします。

0
fge

より明示的なモデルを使用します。これは余分なコマンドなしで改善されたgitフローです:

https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

ここで重要なことは、feature2をfeature1から開始しないことです。

お役に立てれば。

[〜#〜]更新[〜#〜]

私はこれについてブログを書いています。それが少し明確であることを願っています:

http://dymitruk.com/blog/2012/02/05/branch-per-feature/

0
Adam Dymitruk