git - 在 git 中,如何找到创建分支的修订版本?

标签 git tags branch methodology release-management

更新:示例存储库,https://github.com/so-gitdemo/so-gitdemorepo

在 github 存储库的上下文中。我怎样才能轻松找到 rev "b0430cee"?我知道我只能看看,但这个存储库模仿的真实示例有十几个提交者和多个其他分支。不太容易使用检查。

多次 merge 分支后,如何找到分支创建修订?

我知道这个问题:How to determine when a Git branch was created?

该解决方案似乎不适用于已多次 merge 的分支。我们通常将错误修复从发布分支 merge 回主分支。也许我们甚至在这部分做错了……对 git 还是新手。

想象一下下面的简单。真实的东西有更多来自多个人的 master/branch 提交。还有几个发布分支(想想 1.0、1.1、1.2、1.3)

        Future dev  ?
                    |
                    |
   Merge 1.0 back   *  ? Potential future fixes
                    |\ |
                    | \|  
                    |  \
           New work *  |
                    |  * Emergency bug fix
                    |  |
   Merge 1.0 back   *  |
                    |\ |
                    | \|
                    |  * Another bug fix
                    |  |
                    |  |
        New feature *  * First bugfix on branch 1.0
                    |  /
                    | /
                    |/
                    * Feature
                    |
                    |
                    |
                    * Some  feature
                    |
                    |
                    |
                    * The past (master)

我们仍然是 git 的新手,正在研究管理发布和分支的最佳方法,我们已经决定我们需要向 repo 协议(protocol)追溯添加一些标签。例如 1.0 分支开始时的 1.0 标记和后来的错误修复版本的 1.0.1 标记。

后续奖励问题:添加我想要的标签的最佳方式是什么?我应该标记哪个版本?首先提交新分支?还是分支提交之前的第一个共同提交?

最佳答案

自从您添加了一个 git 存储库...我远程工作来测试东西。

How can I easily locate rev "b0430cee"?

在那种情况下,这个漂亮的 oneliner 为我完成了工作:

git rev-list --reverse --topo-order --left-right --boundary 1.0...master | 
    grep "^>" -B1 |
    head -1 |
    cut -c2-

如果您想改为获取 469c14a1fa8a40237700(新功能工作),这对我有用:

git rev-list --reverse --topo-order --left-right --boundary 1.0...master | 
    grep "^>" |
    head -1 |
    cut -c2-

HTH

关于git - 在 git 中,如何找到创建分支的修订版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058308/

相关文章:

git - 如何在不添加所有现有文件的情况下创建分支?

java - 如何在 Eclipse 中禁用右边距中的 TODO 标记注释?

xml - 在 XML 标签中表示空格和制表符?

optimization - HLSL 分支规避

c - x86 汇编指令执行计数

regex - 如何在没有特定提交的情况下搜索git日志

Git:从裸机或非裸机导入

git - 从本地分支推送到不同的远程分支

git - 监控 Jenkins 中的存储库,但不要 pull

ruby-on-rails - Rails act_as_taggable,标签在编辑时丢失逗号!?成为一