恢复分支会改变git描述的标签名称



我刚刚学会了如何恢复一个分支。这很好。问题是,我标记了主版本的提交,并且我计划使用git describe命令基于最新的标记创建部署。恢复提交会创建一个新的提交,因此git describe命令输出带有提交修改的标记,如下所示:

:

git describe
1-2-0

将'back'恢复到此提交后:

git describe
1-2-0-1ga99ae04

有办法克服这个吗?还是我应该换一个最新的标签?

说明一下。你不会真的回复"back"。假设您有以下历史记录。

A<--B<--C<--D
            |
        (tag:1-2-0)

现在说你恢复C

A<--B<--C<--D<--E
            |
        (tag:1-2-0)

正如你所看到的,你已经在历史上向前迈进了。如果这个标记已经被释放,那么您可能希望将其视为一个"修补程序",并再次标记为1-2-0-1,或类似的内容。不确定你的版本号方案是什么,所以显然只是在你的过程中进行热修复。

考虑到这个变化,热修复会导致这个

           (tag:1-2-0-1)
                | 
A<--B<--C<--D<--E
            |
        (tag:1-2-0)

但是,如果您没有释放甚至将此标签推到远程,并且只是想将标签移动到指向E,那么您可以通过两种方式执行此操作。最容易记住的方法是删除标签并重新创建它。

git tag -d 1-2-0
git tag 1-2-0 E

更短,更快,但不太友好的方式来改变标签,而不删除它是使用update-ref

git update-ref refs/tags/1-2-0 E

在一些奇怪的情况下,您已经将标签向上推,并希望将其从远程删除,请使用以下语法:

git push <remote> :1-2-0

假设原点是你的遥控器

最新更新