Изменено, чтобы отразить решение, предложенное kauppi.
ираюсь завершить утомительный процесс преобразования "немых снимков" в git. Этот процесс идет очень хорошо (благодаряэтот процесс переименования), но теперь я понял, что некоторые из созданных мною ветвей не заслуживаютbranch
а скорееtag
.
Поскольку все по-прежнему локально (никогда не отправляется в хранилище), я нашелэтот вопрос (и связанный ответ) несколько более громоздкий, чем я предпочитаю, поэтому мне было интересно, могу ли я воспользоваться ярлыком с помощью какой-нибудь простой команды "convert-from-branch-to-tag"?
Есть ли такая простая команда для преобразования ветки в тег?
(Я знаю, что могу оставить все как есть, но мне очень нравится, какgitk
выделяет метки, помогая мне легко их идентифицировать).
ОБНОВИТЬ: Благодаря ответу @ Andy ниже, мне удалось придумать сценарий оболочки, который делает все это удобно и безболезненно. Я делюсь этим сценарием на благо всех, и в частности, благодаря этому замечательному сообществу, которое сделало возможным переход на CVS для git:
#!/bin/sh
BRANCHNAME=$1
TAGNAME=$2
echo "Request to convert the branch ${BRANCHNAME} to a tag with the same name accepted."
echo "Processing..."
echo " "
git show-ref --verify --quiet refs/heads/${BRANCHNAME}
# $? == 0 means local branch with <branch-name> exists.
if [ $? == 0 ]; then
git checkout ${BRANCHNAME}
git tag ${BRANCHNAME}
git checkout master
git branch ${BRANCHNAME} -d
echo " "
echo "Updated list branches, sorted chronologically: "
echo "---------------------------------------------- "
git log --no-walk --date-order --oneline --decorate $(git rev-list --branches --no-walk) | cut -d "(" -f 2 | cut -d ")" -f 1
else
echo "Sorry. The branch ${BRANCHNAME} does NOT seem to exist. Exiting."
fi