Номер версии Breakdown Git

526
Meltemi

Довольно новый для Git. Я недавно обновил его на своем Mac. Я обновил с помощью этих 4 команд:

$ git clone git://git.kernel.org/pub/scm/git/git.git $ cd git $ make prefix=/usr/local all $ sudo make prefix=/usr/local install  $ git --version git version 1.7.3.2.164.g6f10c 

моя старая версия Git была просто: 1.7.1.x

У меня есть предварительная версия? Если да, то как я могу использовать сам git для проверки самой последней стабильной сборки? git branch -aполучает меня:

$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/html remotes/origin/maint remotes/origin/man remotes/origin/master remotes/origin/next remotes/origin/pu remotes/origin/todo 
1

3 ответа на вопрос

2
Ken Bloom

Я думаю, что это разбивается следующим образом:

Версия git, с которой вы работаете, имеет 164 коммитов с версии 1.7.3.2. Точный номер редакции git начинается с префикса g6f10c (этих 6 цифр должно быть достаточно, чтобы однозначно идентифицировать коммит, если вам нужно обратиться к этой ревизии в частности).

Вы можете увидеть выпущенные версии, запустив, git tagи вы можете получить версию 1.7.3.2 точно, запустив git checkout v1.7.3.2.

благодарю вас! Похоже, это будет работать. извините за незнакомство Git. Поэтому после `git checkout v1.7.3.2` я затем проверил локальные ветки с помощью` git branch`, и я вижу `master` и` * (без ветки) `. я ожидал увидеть `master` и` * 1.7.3.2`. скажем, я уйду от этого проекта на несколько недель и вернусь. Как я могу сказать, какая версия в настоящее время находится в моем локальном хранилище? Meltemi 13 лет назад 0
Теги @Meltemi отличаются от веток. Ветви предназначены для параллельного направления развития, поэтому git помнит, что вы находитесь в определенной ветке, и позволяет вам вносить новые изменения в ветку. Тег - это снимок конкретной версии в определенный момент времени, поэтому при запуске `git branch` будет сказано, что вы находитесь на` (нет ветки) `. Чтобы узнать, какая версия в данный момент находится в вашем репозитории, запустите `git checkout master` и запустите` git description`. Это даст вам номер версии, который ломается, как я описал здесь. Ken Bloom 13 лет назад 1
Я не был знаком с "git description". я просто запустил его в своем локальном репозитории, и он вернулся с `v1.7.3.2`, чего я и ожидал. Спасибо! Итак, последний вопрос: `* (без ветки)` нормально? или я хочу как-то назвать это? или я должен просто собрать и установить, а затем удалить это (без ветки)? Мне кажется странным, что на моей машине задерживается имя активной ветки (без ветки) ... Я действительно не хочу, чтобы на моей машине оставались сборки dev. просто хочу понять рабочий процесс использования git, чтобы получить собственный исходный код, а затем собрать / установить его ... Meltemi 13 лет назад 0
`(без ветки)` нормально, когда вы отметили тег. Это означает, что вы не находитесь на ветке и не можете коммитить. Чтобы лучше понять, что происходит, посмотрите [Концептуальное понимание Git] (http://www.eecs.harvard.edu/~cduan/technical/git/). После того, как вы прочитали о головках, нужно добавить только одну деталь: ветвь - это голова, которая часто движется, а тег - это голова, которая не (обычно) движется. Ken Bloom 13 лет назад 0
1
Chris Johnsen

Вполне разумно считать кончик мастера git.git стабильным.

Из документации / howto / keep-git.txt :

Подсказка 'master' должна быть более стабильной, чем любые помеченные релизы, и пользователям рекомендуется следовать ей.

Перед тем, как новая функция будет объединена с master, она просматривается в списке рассылки и «готовится» (часто в течение нескольких недель) в pu и последующих ветках, которые разработчики регулярно тестируют и используют.

Номера версий Git работают так:

 o----- major release: 1.7 / o---- feature release: 1.7.3 / / o--- maintenance release: 1.7.3.2 / / / 1.7.3.2 

Основные выпуски часто содержат несовместимые изменения. В новых выпусках представлены новые функции. Вспомогательные выпуски содержат исправления.

master - это буквально слияние последнего технического обслуживания и текущих накопленных функций для следующего выпуска.

Вывод git --versionоснован на выводе git description для коммита, использованного для сборки двоичного файла (см. GIT-VERSION-GEN ).

Вывод из git description добавляет дополнительную информацию, чтобы лучше «закрепить» конкретную версию, когда вы основаны на коммите, который не помечен явно.

 o------------- most recent reachable tag: 1.7.3.2 / o--- 'g' + abbreviated object name of built commit: 6f10c / / 1.7.3.2.164.g6f10c \ o---------- number of commits in built commit "on top" of tag: 164 
0
heavyd

На сегодняшний день 1.7.3.2 является последней стабильной версией, доступной через http://git-scm.com/. Что вызывает у вас вопросы, если у вас установлена ​​последняя версия ?

Потому что он получил свою версию git из git-репозитория git, где они активно разрабатывают ветку `master`. Ken Bloom 13 лет назад 1
@Ken: git.git * master * вряд ли является «активной разработкой». Изменения в git.git рассматриваются в списке рассылки, «приготовленном» в ветке * pu *, если они в здравом уме, они переходят в * следующую * ветку и постепенно объединяются в * master *. * master * также сразу же получает все исправления от * maint *. [«Подсказка * master * должна быть более стабильной, чем любые помеченные релизы»] (http://git.kernel.org/?p=git/git.git;a=blob;f=Documentation/howto/ сохранить-git.txt; H = d527b307707c676e82a08f18cb9fdd7d3abcb228; Hb = ГОЛОВКА # L68). Chris Johnsen 13 лет назад 3

Похожие вопросы