HEAD по умолчанию в git, когда несколько веток HEAD ссылаются на один SHA1 - PullRequest
7 голосов
/ 28 февраля 2011

В моем проекте обычно есть ветка (разработки), ведущая к следующей версии выпуска, после чего ветка разработки будет объединена с веткой выпуска, а затем будет создана новая ветка разработки.

Это означает, что два заголовка ветви будут указывать на один и тот же коммит:

$> 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  

Я хочу, чтобы люди, которые клонировали из моего репо, автоматически получали чек из ветки релиза.

$> 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 Ответ

1 голос
/ 03 марта 2011

Вы можете использовать отдельный удаленный репозиторий для публикации общедоступных выпусков вместо того, чтобы использовать ваш путь.Вы будете работать как обычно в вашем удаленном репо dev.объединить стабильный коммит с веткой релиза.и после этого git push release_origin release.Таким образом, вы можете поделиться только этим репозиторием release_origin с другими людьми.

Или есть еще один способ для этого.:) Просто переименуйте ветку релиза в a_release, чтобы она сначала была в алфавитном порядке.:)

...