Answers:
简而言之:最佳实践是分支,经常合并并始终保持同步。
关于将代码保持在与master分支不同的分支中,有非常明确的约定:
经验法则是分支出来之后,您应该与master分支保持同步。因为最终您需要将其合并回主服务器。为了避免合并时发生巨大的复杂冲突,您应该经常提交,合并。
一个成功的Git分支模型由文森特Driessen的好的建议。如果此分支模型吸引您,请考虑将流扩展到git。其他人则对流量发表了评论。
如您所知,Git为您提供了诸如1.0-2-g1ab3183之类的提交标识符,但它们不是标签!标记是使用git标记完成的,并且使用git标记创建的标记是git describe创建的提交标识符的基础。换句话说,在Git中,您不标记分支。您正在标记提交。正确地说,标记只是指向提交的带注释的指针。
让我们看一下证明它的实际例子,
/-[v1.0] v ---.---.---.--- S ---.--- A <-主 \ \ -.--- B <-测试
让我们提交“ S”,即由标签“ v1.0”指向的提交。此提交既在分支“ master”上,也在分支“ test”上。如果在提交“ A”(“ master”分支的顶部)上运行“ git describe ”,则会得到类似的信息v1.0-2-g9c116e9
。如果在提交“ A”(也称为“测试”分支)的顶部运行“ git describe”,则将得到类似的东西v1.0-2-g3f55e41
,默认的git-describe配置就是这种情况。请注意,此结果略有不同。 v1.0-2-g9c116e9
表示我们正在提交,SHA-1 id为已排序9c116e9
,tag之后为2次提交v1.0
。没有标签v1.0-2
!
如果您希望标记仅出现在分支“ master”上,则可以在“ test”分支的分支点之后创建新的提交(例如,仅更新GIT-VERSION-FILE中的默认/后备版本信息)。如果使用“ v1.0.3”标记“测试”分支上的提交,则仅在“测试”中可见。
我发现了很多有用的博客和帖子可供学习。但是,经过专业说明的是罕见的。因此,我想推荐一个帖子- @nvie 成功的Git分支模型。我借用了他的插图:)
如果您同时具有2个不同版本的存储库,则使用分支。标签是一种在存储库中标记时间点的方法。
您应该添加标签来标记已发布的版本。如果随后需要对该版本进行错误修复,则可以在标签处创建一个分支。
您只想删除已经合并回HEAD [或其他分支]的分支。