如何使用Git进行多任务处理

Chr*_*ndt 3 git coldfusion

我在很多ColdFusion项目上工作,这些项​​目都安装在一个Web服务器上.我最近在SO上被其他人" 展示了光明 ",并希望转向开发人员机器/测试机器/生产机器开发方法.

我现在正在努力调和如何最好地处理我(以及我们机构中的其他人)'被迫'工作的方式......

假设我们的网络服务器设置如下

-Root
--Project 1
--Project 2
--Project 3
--Framework Files
Run Code Online (Sandbox Code Playgroud)

我们还说我们已经设置了一个中央git存储库,并且我有一个我正在使用的根的克隆.该组中的所有其他开发人员也拥有自己的存储库副本.

所以 - 这是星期一早上,我已经开始研究项目1.我正处于估计的4小时功能请求的中间,我的八个不同老板中的一个进来告诉我有一个关键问题需要在项目2中修复.星期一是一个很好的开始.

我需要修复Project 2 STAT,但我还没有完成Project 1的功能请求.如果我在Project 2中修复,然后提交到我的本地存储库以进行测试......它将包括P1中未完成的功能......这很糟糕.

如果我从Joel Spolsky的Mercurial Init Architecture页面推断,是否为每个子项目创建存储库的'dev'克隆的解决方案?要提交那些,然后提交到主本地存储库,然后提交到主共享存储库?

我缺少Git中的另一个概念吗?

谢谢大家,克里斯

Bri*_*new 8

我建议看看分支.

通过分支,您可以同时维护多个不同的开发流,并在它们之间进行简单的交换.此外,您可以在远程存储库中创建远程分支,并且多个团队成员可以同时处理这些分支.它们可以像你想要的一样长寿或短命,而Git擅长创建和维护许多分支.

它与stashing不同,因为stashing是一种基于堆栈的机制,用于存储工作以便稍后返回.它不是分布式的,并且通过堆栈管理多个工作流程将是困难的,至少可以说.

这是一个讨论分支工作流程的有用页面.


eyk*_*nal 5

你错过了这个stash功能,它让你"收起"未完成的作品,然后再回到它.此功能允许您使用"脏"目录 - 您在上次提交后修改了文件,但尚未准备好进行提交 - 并保存更改而不进行提交.该目录将返回到它查看上次提交的方式,您的更改由git保存.用法非常简单......从上面的链接中,您可以使用以下命令保存您的工作save:

$ git stash save "work in progress for foo feature"
Run Code Online (Sandbox Code Playgroud)

你可以使用apply以下方法恢复你的工作:

$ git stash apply
Run Code Online (Sandbox Code Playgroud)

另一个问题是您将所有项目都放在一个仓库中.虽然这不是最佳实践,但可以使用子模块来解决,这实际上允许您在单个总体存储库中拥有多个存储库.上面的链接是关于如何使用子模块的一个很好的资源,在这里有很多有用的帖子讨论如何使用它们.