use*_*723 35 git version-control feature-branch branching-and-merging
我正在研究从starteam到git的转换.
目前,在starteam中,我们使用具有特殊名称的"浮动视图".这些浮动视图基本上像别名一样工作.因此,我们可以指定一个特定的别名来结账,我们将获得我们目前正在进行模型测试的分支.
怎么会在git中完成?这基本上是我们的分支机构的组织方式:
这些都是分支机构
master (stable view)
| - Branch 2012.05.01
| | - Project 1
| | - Project 2
| | - model [floating view / alias to Branch 2012.05.01]
|
| - Branch 2012.07.11 (these would also have various child views for projects)
| - Branch 2012.10.17
Run Code Online (Sandbox Code Playgroud)
(模型测试完成后,分支2012.05.01将合并为主)
在我们的自动脚本(ant)中运行我们的模型部署,我们只需从我们的分支机构中检出"模型".这样我们就不必改变我们的脚本,因为我们改变了我们模型测试的哪个分支,并找出我们进行模型测试的哪个视图就像确定"模型"分支引用哪个分支一样简单.
有什么方法可以在git中做类似的事情吗?
编辑:人们在这里感到困惑.
use*_*723 42
请看这里:https://stackoverflow.com/a/549949/606723
您可以像Greg建议的那样重命名主分支中继,或者您也可以创建一个主干,它是对主分支的符号引用,以便git和svn用户都具有他们习惯的"主"分支.
Run Code Online (Sandbox Code Playgroud)git symbolic-ref refs/heads/trunk refs/heads/master请注意,行李箱不是一等公民.如果您签出中继并执行git状态,您实际上将在master上,但是您可以在使用分支名称(日志,合并等)的所有位置使用trunk命令.
这意味着您必须依赖脚本中的变量来制作 model="branch.2012.10.17" 或类似的内容。你的脚本会做这样的事情:
git checkout $model
Run Code Online (Sandbox Code Playgroud)
我将这个答案的其余部分留在这里,以了解我们在本次讨论中的出发点:
关于分支策略的非常复杂的讨论可以在这里找到:http://dymitruk.com/blog/2012/02/05/branch-per-feature/
具体看一下集成分支和发布候选分支的作用。这可能就是您正在寻找的。
将 git 视为拍摄工作目录快照的工具,而不是文件夹的历史记录。
progit.org/book 解释了存储历史的有向无环图。所有引用都只是指向其中节点的东西。这应该会阐明您想要如何构建工作流程。
制作一个开始标签 - version2.1。从那里开始创建你的 int-version2.1 (为简洁起见,使用数字而不是日期)。你开始的任何工作,都是从版本 2.1 标签开始的。将工作合并到 int-version2.1 中。其他人也会这样做。