gitstream – 如何暂停一个function的开发工作在另一个function上

我是Git和Gitstream的新手。 我已经阅读了所有的各种页面,博客和stackoverflow的问题,并已在我的日常开发中使用它。

但有一个问题一直困扰着我,我无法把头围住。 我知道function分支应该是小的,你开始一个function,编码的一部分,然后完成function。 这是每天发生的事情,我明白了。 我们只是确保我们的开发分支总是可以build立的。

但是,当我处于某个function的中间时,会发生什么情况呢?还没有准备好完成,但是工作的优先顺序会改变吗? 我希望能够切换到另一个function。

例如,我开始一个新function。

$ git flow feature start yak-Speedup 

我写代码,提交文件等等,并且正在取得很好的进展。 但现在我需要改变我的工作,主要是因为我需要一个不可用的资源,服务器编码器将不会准备好一两天。 我无法完成该function,因为它会打破开发分支。

我想要做这样的事情:

 $ 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”命令的存在意味着我可以同时拥有多个function。 但是我不明白如何创build或切换function。 的确,我开始认为这不是一个混帐问题,而是一个混帐问题。

我感谢任何帮助。 谢谢!

你不需要git flow feature pause yak-Speedup命令( feature pause不存在)。 你要使用的命令来代替git flow feature resume yak-Speedupgit 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>] 

晚会,但我的经验是这样的..我使用git结合gitstream..

 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分支和使用开发只。 如果当时还有其他function的提交,我也可以进行任何合并。

你想要的是真正的分支:

 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 

等分行是为此而制作的。

一旦你知道你的function是好的,合并到开发和推。

使用更明确的模型。 这是gitstream改进没有额外的命令:

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

这里重要的是你不会从feature1开始feature2。

希望这可以帮助。

UPDATE

我已经写了这个。 希望它更清楚一点:

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