LINUX.ORG.RU

Бранчи и теги в GIT

 


0

1

Привет ребят! Вот есть Qt 5 GIT: http://code.qt.io/cgit/qt/qtbase.git/ Допустим, я хочу старую версию 5.4.2. Тыкаю по тегу 5.4.2 и имею возможность скачать релиз 5.4.2. А потом я тыкаю по branch 5.4, и что я вижу? Оказывается, после коммита, обозначившего релиз 5.4.2, были ещё коммиты! http://code.qt.io/cgit/qt/qtbase.git/log/?h=5.4

Как хорошо что в проекте Qt есть branch 5.4. Но в некоторых проектах есть только тег, а бранч удалён за давностью.

Например http://kernel.opensuse.org/cgit/kernel/refs/tags Мне понадобилось ядро 2.6.37 в его самой последней редакции. Тыкаю по тегу 2.6.37.6 и успешно скачиваю релиз 2.6.37.6. А вдруг были ещё коммиты в этом бранче? По аналогии с Qt 5.4. Проблема в том что бранча 2.6.37 нет - удалён уже давно. Как можно посмотреть?

P.S. Скачать GIT и повыполнять команды - не проблема

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 4)

Через этот реп, очевидно, никак.

mashina ★★★★★
()

Оказывается, после коммита, обозначившего релиз 5.4.2, были ещё коммиты!

И эти коммиты попадут (?) в релиз 5.4.3, когда (если?) он выйдет. Этот бранч - это саппорт-бранч для семейства версий 5.4.х. Если бранча нет - значит и коммитов нет больше.

Проблема в том что бранча 2.6.37 нет - удалён уже давно.

Значит никаких коммитов сверх 2.6.37.6 нет. А если бы и были, git gc давно их подобрал.

Sectoid ★★★★★
()

Если ветку с 2.6.37.x за давностью лет убили, что врядли, тебе остаётся довольствоваться только последним тегом.

Dark_SavanT ★★★★★
()

Всем вышеотписавшимся - спасибо за ответы. Очень жаль: я думал, в GIT «все ходы записаны». Ладно! Какая разница, каким релизом неподдерживаемого ядра пользоваться: тем, что на месяц раньше, или на месяц позже.

ZenitharChampion ★★★★★
() автор топика

Можешь всегда (довольно часто) просто выставить код на sha какого-либо коммита. В твоем случае: git reset --hard b4ba43f57bfa85aaaaacdf5f17a9d7fafa589926 или git reset --hard v5.4.2

anonymous_sama ★★★★★
()
Ответ на: комментарий от ZenitharChampion

Ходы-то может и записаны, но если у тебя нет хеша коммита, то при отсутствии на него ссылки в виде тега или принадлежности к бранчу, ты его никак не узнаешь и его gc приберёт когда его запустят.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от anonymous_sama

Вот коммит 2.6.37.6, я скопировал из него Commit ID и использовал в этой команде:

git checkout e396c9d8699c95d52b2abcc2d4d5f9616e839734

Оно подумало, похрустело жёстким диском, и написало мне «HEAD is now at e396c9d... - Linux 2.6.37.6». Я зашёл в Makefile - и действительно. А команду мне подсказали здесь.

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от ZenitharChampion

Да? А я это делал по-другому...

Как советует анонимус делать не нужно, его команда относительно деструктивна и меняет хед текущего бранча. Безопасно можно делать новый бранч (git checkout -b branch_name хэш) или просто checkout на хеш чтобы разово посмотреть состояние.

mashina ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.