2009-05-11 1 views
-2

Мое приложение должно соответствовать новой спецификации.Как выполнить что-то похожее на svn-тегирование в Git?

Так что я хочу пометить версию моего приложения в его нынешнем виде. Я хочу, чтобы иметь возможность проверить эту версию в будущем.

Я совершил все свои последние изменения.

И я:

git tag -a stable-pre-new-spec 

Когда я выполняю:

git show stable-pre-new-spec 

отображает и переформатирование из моей последней фиксации?! Я точно не понимаю, что происходит.

Должен ли я создавать ветку вместо этого?

+0

Я не вижу проблемы здесь. «stable-pre-new-spec» является символическим именем для данного фиксации. «git show » покажет содержимое тега (если это аннотированный тег), а ниже он отобразит «git show ^{commit}», который включает в себя набор изменений, который вы отметили. –

+0

Я не хочу отмечать только мои коммиты. Я хочу, чтобы текущий снимок исходного дерева (т. Е. Каждый артефакт) был «помечен» строкой. –

+1

Тег указывает на исходное дерево при заданной фиксации. Это _is_ ваш снимок. Вы можете легко использовать «git checkout [-b ] », чтобы вернуться к версии и продолжить ее редактирование. В git нет «помечать каждый артефакт», потому что это не имеет смысла: вы всегда обрабатываете полный репозиторий, а не отдельные файлы. – Bombe

ответ

0

Я хотел бы использовать филиал в вашем случае:

git checkout -b app_in_current_state 

Затем вы сможете продолжить развитие на хозяина, в то время как исправление ошибок на вашем текущем состоянии в отрасли.

2

Две вещи продолжаются. Во-первых, git-ревизии - это изменения всего дерева файлов . Напротив, я считаю, что cvs и svn предоставляют отдельные номера ревизий отдельным файлам. Таким образом, в cvs или svn операция «tag» исчезает и присоединяется, например, «stable-pre-new-spec» к файловой версии 1.0.3, файл 2 версии 1.0.2, файл3 версии 2.0, файл 4 версии 1.3. 7 и т. Д. Затем, когда вы хотите получить этот тег, система отправляется и находит все фрагменты с этим тегом. В git одна ревизия уже относится ко всему набору, пометка просто дает другое имя.

Second-- и это относится ко многим см систем, включая резюме и svn-- мерзавец дает такое же имя в состоянии и разницы. Гит называет эту комбинированную вещь фиксацией. Поэтому вы спрашиваете о версии, и она показывает вам разницу между этим и непосредственно предыдущим состоянием. В git идентификатор commit фактически является контрольной суммой всего сохраненного содержимого дерева; это просто условно показать вам golden spike.

В git вы можете пометить фиксацию или создать ветку из нее в любое время после ее создания.

 Смежные вопросы

  • Нет связанных вопросов^_^