我正在研究从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
(当模型测试完成时,分支2012.05.01将合并为主)
在我们的自动脚本(ant)中运行我们的模型部署,我们只是从我们的分支机构“模型”结账。这样我们就不必更改我们的脚本,因为我们更改了模型测试中的哪个分支,并找出我们进行模型测试的视图就像确定“模型”分支引用哪个分支一样简单。
有什么方法可以在git中做类似的事情吗?
编辑:人们在这里感到困惑。
答案 0 :(得分:39)
请参见此处:https://stackoverflow.com/a/549949/606723
您可以像Greg建议的那样重命名主分支中继,或者您 也可以创建一个主干,它是对主人的符号引用 分支,以便git和svn用户都拥有' main'分支,他们 习惯了。
git symbolic-ref refs/heads/trunk refs/heads/master
请注意,主干不是头等公民。如果你结帐主干和 执行你将实际掌握的git状态,但你可以 在您使用分支名称的所有地方使用trunk命令(日志, 合并等。)。
答案 1 :(得分:3)
这意味着您必须依赖脚本中的变量来制作model =“branch.2012.10.17”或类似的东西。你的脚本会这样做:
git checkout $model
我将在这里继续讨论这个答案的其余部分:
可以在此处找到关于分支策略的非常复杂的讨论:http://dymitruk.com/blog/2012/02/05/branch-per-feature/
具体来说,请看一下集成分支和发布候选分支的角色。这可能就是你要找的东西。
将git视为拍摄工作目录快照的内容,而不是文件夹的历史记录。
progit.org/book解释了存储历史的定向非循环图。所有引用都只是指向其中的节点的东西。这应该阐明您希望如何构建工作流程。
制作一个开始标记 - version2.1。从那里制作你的int-version2.1(使用nubmers代替日期以简洁起见)。您开始的任何工作,从版本2.1标记开始。将工作合并到int-version2.1中。其他人也会这样做。
答案 2 :(得分:0)
如果您需要每个功能分支 - Adam Dymitruk的答案是正确的, 但是,如果您需要保存链接分支特定状态(基于时间),而不更改它们,您可以使用git标记。
我为每个prod版本的商店状态使用了标签。