当多个分支HEAD引用相同的SHA1时,git中的默认HEAD

时间:2011-02-28 17:34:27

标签: git head

在我的项目中,我通常有一个(开发)分支,导致下一个发布版本,此时开发分支将合并到发布分支中,然后将创建一个新的开发分支。

这意味着,两个分支HEAD将指向同一个提交:

$> cd project.git  
$> rgrep release .  
    ./packed-refs:2808f1de3e05bf7fcc509c20f31a93e2ba645bd3 refs/heads/release  
$> rgrep 2808f1de3e05bf7fcc509c20f31a93e2ba645bd3 .  
    ./packed-refs:2808f1de3e05bf7fcc509c20f31a93e2ba645bd3 refs/heads/release  
    ./packed-refs:2808f1de3e05bf7fcc509c20f31a93e2ba645bd3 refs/heads/development_0103  

我希望从我的repo克隆的人自动检查发布分支。

$> cd project.git  
$> git symbolic-ref HEAD  
    refs/heads/release  

但是,当从那个回购克隆显然人们得到了按字母顺序排列的第一个匹配分支

$> git clone project.git/ project.clone  
$> cd project.clone  
$> git status  
    # On branch development_0103  
    nothing to commit (working directory clean)  

在我看来,git正在研究分支名称,通过查看SHA1来检查,但实际上并没有使用遥控器的符号头HEAD。

有没有办法解决这个问题并使克隆默认为'release'而不是'development_0103'?

1 个答案:

答案 0 :(得分:1)

您可以使用单独的远程存储库来推送公开版本,而不是使用您的方式。 您将在dev远程仓库中照常工作。将稳定提交合并到发布分支。之后git push release_origin release。因此,您只能与其他人共享此release_origin repo。

或者还有另一个黑客。 :)只需将您的发布分支重命名为a_release,因此它将按字母顺序排列。 :)