我即将完成将“愚蠢的快照”转换为Git的繁琐过程。这个过程一直很顺利(感谢此重命名过程),但现在我意识到我创建的某些分支不应该是branch
而应该是tag
。
由于一切都还是本地的(从未推送到存储库),我发现这个问题(及其答案)有点麻烦,所以我想知道是否可以通过一些简单的“从分支转换为标签”的命令来快捷地实现?
有没有这样一个简单的命令可以将分支转换为标签?
(我知道我可以让它保持原样,但我真的很喜欢gitk
突出显示标签的方式,这有助于我轻松地识别它们。)
更新: 感谢@Andy下面的答案,我设法编写了一个 shell 脚本,所有事情都方便和轻松。我分享这个脚本是为了造福所有人,并特别感谢这个伟大的社区,他们让我从 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