代码之家  ›  专栏  ›  技术社区  ›  helion3

使用git增加分支/主标记修订

git
  •  6
  • helion3  · 技术社区  · 15 年前

    我正试图为发布管理确定一个好的系统,结合使用版本号标记的标记实践-例如,1.0。标记之后的任何更改都将递增,如1.0-1、1.0-2等。

    但是,如果我从master for 1.0版本创建了一个新分支,然后切换到该分支并将其标记为1.0,那么上面提到的系统可以正常工作。该分支上的其他错误修复按预期显示,1.0-1,1.0-2

    但是,对master的任何工作,除非我在生成1.0分支后的第一次提交后重新标记master,否则也将显示相同的增量:1.0-1,1.0-2

    当然,sha1散列将是唯一的,但我最终将拥有来自master和branch的相同修订/增量。

    当我只是标记树枝时,有什么方法可以避免师父被标记吗?有更好的办法吗?现在,在生成分支1.0之后,我唯一的选择是在master上生成一个小提交,然后为1.1-dev或其他东西重新标记它。

    然后重复每次释放。

    但是,如果一个分支被再次标记,比如1.0.1版本,那么看起来它也会标记master,因为这是第一次发生的事情?

    3 回复  |  直到 15 年前
        1
  •  5
  •   Bombe    15 年前

    在git中,不标记分支。标记提交。如果你想标记一个分支,你已经得到了:分支的名称。:)

    对, git describe 提供如下提交标识符 1.0-2-g1ab3183 但那些不是标签!标记是用 git tag (谁会猜到),以及使用 查看标签 是提交标识符的基 GIT描述 创造。

        2
  •  4
  •   Community Romance    7 年前

    在git中不能说 属于 去某个分支。单个提交可以在多个分支上;如果提交A是分支尖端的祖先之一,则我们说它在给定的分支上。

    作为 Bombe said 在git中,不标记分支。标记提交。在git中,标记只是指向提交的(带注释的)指针。

    在你的情况下,我想,你有如下情况

                            /-- [v1.0]
                           v
    ---.---.---.---X---.---A     <-- master
                             \ 
                               \-.---B     <-- maint
    

    让我们用标记“v1.0”来表示“x”。此提交同时在分支“master”和分支“maint”上。如果你跑” git describe “在提交'a'(在'master'分支的顶部)之上,您将得到如下内容 v1.0-2-g9c116e9 是的。如果在commit'a'('maint'branch)上运行“git descripe”,您将得到如下结果 v1.0-2-g3f55e41 (至少使用默认的git描述配置)。注意,这个结果略有不同。 v1.0-2-g9c116e9版 意味着我们正在提交分拣的SHA-1 ID 9c116e9 ,标记后提交2次 v1.0 是的。没有标签 v1.0-2 啊!

    如果希望标记仅出现在分支“master”上,则可以在分支“maint”点之后创建新的提交(例如,仅更新git-version-file中的默认/回退版本信息)。如果用“v1.0.3”标记“maint”分支上的提交,则只能从“maint”中看到它。

    高温高压

        3
  •  2
  •   Karl Voigtland    15 年前

    在git中,标记是特定提交的别名,而不是分支的别名。

    标记和分支是独立的。

    所以,如果你想签出一个特定的版本来做一个小版本,那么你可以:

    git checkout -b new_branch_name commit_id
    

    或者,

    git checkout -b new_branch_name tag_name
    

    两者都是引用特定提交的简单等效方式。

    进行更改,提交它们并用次要版本标记提交。

    你甚至可以删除你签出的分支。