2016-12-06 48 views
0

我目前正在为一个使用Git的软件设计一个发布系统。系统的结构是这样的,每个版本将在不同的分支(或标签)上进行相应的提交。这些“发布提交”中的每一个都是先前提交在主分支上的单个提交。如何让移动指针指向提交?

这将是方便储存库拥有“最后版本”,这将是一个指针到最后发布的提交的概念。

有一个Git对象适合呢?

  • 标签不存在,因为改变标签指向的提交不是一个好主意。
  • 分行都出过,因为释放的N + 1不是由制造由一个承诺释放N.

应该可以找到提供的所有释放的名字的最后一个版本提交,因此,如果没有一个方便的指针对象,我只是写一个脚本来做到这一点。但是如果有合适的对象,我宁愿使用它。

+1

为什么不发布分支?永远不要提交分支,只允许从主合并。这样,在发布分支的所有提交有主的直接家长和最新发布的仅仅是HEAD – slebetman

+1

“分支是出过,因为释放的N + 1不是由作出承诺释放N.造”所以呢?只要将分支指针移动到任何位置。只要人们不以此为基础,没有什么特别的理由可以说明,为什么你不能直接将分支从发行版N移动到发布N + 1。否则,我想你可以使用'update-ref'。 – Ajedi32

回答

1

所有Git的引用是指针(一个,一个,单)提交。

约定的约定是分支机构(in refs/heads/*)移动,并且标签(在refs/tags/*中)没有。

Git notes使用refs/notes/命名空间,而refs/stash是(单一)藏匿引用。 refs/original/空间由git filter-branch使用,但只是暂时性的。据我所知,所有其他的名字都可以,如果你想避免分支的名称,只是为了避免它们,但要注意的是,虽然你可以获取你喜欢的任何名称,代码来处理知道哪些名称是如果你想通过push协议来更新它,你应该选择分支名称空间。