Подтвердить что ты не робот

Git поток - как приостановить разработку по одной функции для работы с другим

Я новичок в потоках git и git. Я прочитал на нем все различные страницы, блоги и вопросы, связанные с stackoverflow, и использовал его в своей повседневной разработке.

Но одна проблема беспокоила меня, я просто не могу обнять вокруг нее голову. Я знаю, что ветки функций должны быть маленькими, вы запускаете функцию, кодируете ее часть, а затем завершаете функцию. Это ежедневное явление, я понимаю. Мы просто следим за тем, чтобы наша ветка разработки всегда была работоспособной.

Но что происходит, когда я нахожусь в середине функции, она не готова к завершению, но меняются приоритеты работы? Я хотел бы иметь возможность переключиться на другую функцию.

Например, я запускаю новую функцию.

$ git flow feature start yak-Speedup

Я пишу код, файлы фиксации и т.д.... и делаю хороший прогресс. Но теперь мне нужно изменить то, над чем я работаю, в основном, потому что мне нужен ресурс, который недоступен, и серверный кодер не будет готов на день или два. Я не могу закончить функцию, потому что она сломает ветвь разработки.

Я хотел бы сделать что-то вроде этого:

$ 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 список функций потока" подразумевает, что я могу иметь несколько функций одновременно. Но я не вижу, как создавать или переключаться между функциями. Действительно, я начинаю думать, что это вообще не проблема потока git, а проблема git.

Я ценю любую помощь. Спасибо!

4b9b3361

Ответ 1

Вам не нужна команда 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>]

Ответ 2

Поздно к вечеринке, но мой опыт в этом. Я использую git в сочетании с потоком git.

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 и использую только разработку. Я также могу выполнить любое слияние, если в то время были совершены и другие функции.

Ответ 3

То, что вы хотите, действительно является ветвями:

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

и т.д. Для этого созданы ветки.

И как только вы узнаете, что ваша функция хороша, объединитесь в dev и нажмите.

Ответ 4

Используйте более явную модель. Это git поток улучшен без дополнительных команд:

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

Важно то, что вы не запустили функцию2 из функции1.

Надеюсь, что это поможет.

UPDATE

Я написал об этом в блоге. Надеюсь, это немного яснее:

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