还原分支会更改git的标记名

还原分支会更改git的标记名,git,git-tag,git-revert,Git,Git Tag,Git Revert,我刚刚学会了如何恢复分支。那很好。问题是,我标记了master的提交,并计划使用git descripe命令根据最新标记创建部署。恢复提交会创建一个新的提交,因此git descripe命令会输出带有提交ammend的标记,如下所示: 之前: git describe 1-2-0 在“返回”到此提交后: git describe 1-2-0-1ga99ae04 有没有办法克服这个问题?或者我应该以不同的方式获取最新的标签吗?只是为了澄清一下。你不会真的回复“返回”。假设你有以下历史 A<

我刚刚学会了如何恢复分支。那很好。问题是,我标记了master的提交,并计划使用
git descripe
命令根据最新标记创建部署。恢复提交会创建一个新的提交,因此
git descripe
命令会输出带有提交ammend的标记,如下所示:

之前:

git describe
1-2-0
在“返回”到此提交后:

git describe
1-2-0-1ga99ae04

有没有办法克服这个问题?或者我应该以不同的方式获取最新的标签吗?

只是为了澄清一下。你不会真的回复“返回”。假设你有以下历史

A<--B<--C<--D
            |
        (tag:1-2-0)
正如你所见,你在历史上取得了进步。如果这个标签已经被释放了,那么你可能想考虑这个是“热修复”,并且再次标记为“代码> 1-2-0-1 ,或者沿着这些线。不确定您的版本号方案是什么,所以很明显,只需在流程中使用修补程序

考虑到这一变化,热修复程序将导致这种情况

           (tag:1-2-0-1)
                | 
A<--B<--C<--D<--E
            |
        (tag:1-2-0)
在不删除标记的情况下更改标记的更短、更快、但无限不友好的方法是使用
updateref

git update-ref refs/tags/1-2-0 E
如果您将标记向上推,并希望将其从远程删除,请使用以下语法

git push <remote> :1-2-0
git推送:1-2-0

假设原点是你的遥控器。

只是为了澄清一下。你不会真的回复“返回”。假设你有以下历史

A<--B<--C<--D
            |
        (tag:1-2-0)
正如你所见,你在历史上取得了进步。如果这个标签已经被释放了,那么你可能想考虑这个是“热修复”,并且再次标记为“代码> 1-2-0-1 ,或者沿着这些线。不确定您的版本号方案是什么,所以很明显,只需在流程中使用修补程序

考虑到这一变化,热修复程序将导致这种情况

           (tag:1-2-0-1)
                | 
A<--B<--C<--D<--E
            |
        (tag:1-2-0)
在不删除标记的情况下更改标记的更短、更快、但无限不友好的方法是使用
updateref

git update-ref refs/tags/1-2-0 E
如果您将标记向上推,并希望将其从远程删除,请使用以下语法

git push <remote> :1-2-0
git推送:1-2-0

假设原点是你的遥控器。

你想要什么行为?在提交之后,似乎不太可能希望Git告诉您1-2-0标记没有任何更改,即使某些提交会反转其他提交。如果你想回到1-2-0标签,只要
git checkout 1-2-0
。是的,我明白你的意思。我不能只签出1-2-0标记,因为我想将分支恢复到该状态。行为我希望它完全恢复并使主分支处于1-2-0状态。您希望的行为是什么?在提交之后,似乎不太可能希望Git告诉您1-2-0标记没有任何更改,即使某些提交会反转其他提交。如果你想回到1-2-0标签,只要
git checkout 1-2-0
。是的,我明白你的意思。我不能只签出1-2-0标记,因为我想将分支恢复到该状态。我希望它完全恢复,并使主分支处于1-2-0状态。这很好地解释了。非常感谢。你不能把你的标签和头移回C吗?@jtchity-你当然可以,但是你必须使用上面描述的方法之一。所描述的这些方法在您需要更改标记的任何时候都应该起相同的作用。请记住,标记是无头的,因此在添加提交时不会像在分支中那样有头跟随。您必须通过重新创建标记或使用update-ref手动更新标记。这一点解释得很好。非常感谢。你不能把你的标签和头移回C吗?@jtchity-你当然可以,但是你必须使用上面描述的方法之一。所描述的这些方法在您需要更改标记的任何时候都应该起相同的作用。请记住,标记是无头的,因此在添加提交时不会像在分支中那样有头跟随。您必须通过重新创建或使用update-ref手动更新标记。