3 git
我的任务是组织存储库,除了其他分支之外还有一个专用分支,我们只存储已发布版本的提交.以下是我想要实现的简化方案:
| trunk | | releases |
|----------+-----------+----------|
| commit 1 | | |
| commit 2 | v0.1 ---> | tag 1 |
| commit 3 | | |
| commit 4 | | |
| commit 5 | | |
| commit 6 | v0.2 ---> | tag 2 |
| commit 7 | | |
| commit 8 | | |
| commit 9 | | |
Run Code Online (Sandbox Code Playgroud)
这对我来说有点太先进,所以我很感激如何做到这一点!我不确定如何能够在"版本"分支中拥有第二个标记,而不必导入所有中间提交.这有可能吗?
此外,如果您有更好的方案来实现相同的目标(目标是仅为发布版本设置专用分支),请不要犹豫,建议!
这没有意义,因为标记的提交代表了一个由提交及其前身组成的分支的状态.
隔离标记的提交会写出一个非常不同的历史记录,因为这些提交会遗漏它们的祖先:它是所述祖先的序列加上标记的提交,它将代码库引导到特定的状态.
更简单的方法是确保在一个专用分支(例如master)中标记发布提交.
然后,一个简单的git show-ref --tags列表可以列出这些标签引用的comimts.
或者您可以从任何这些标记创建分支(用于修复版本的错误)
git checkout -b newbranch v1.0
Run Code Online (Sandbox Code Playgroud)
您可以从任何commit(git describe --long)中推断出最后一个发布标记.
但是发布的分支只存储特殊提交(标记的)的历史记录,并指向其他分支作为提交来源的来源
这可以通过在"发布分支"中合并标记提交,以及保持"他们"的合并(即合并的来源,意味着标记提交的来源)
--x--x--x--x--x--x--x
(v1) (v2)
\ \
----y--------y--
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
230 次 |
| 最近记录: |