我刚学会了如何恢复分支。这很好。问题是,我标记了主提交,我计划使用git describe
命令根据最新标记创建部署。还原提交会创建一个新提交,因此git describe
命令会使用提交修改输出标记,如下所示:
在:
git describe
1-2-0
将'back'恢复为此提交后:
git describe
1-2-0-1ga99ae04
有没有办法克服这个问题?或者我应该以不同的方式获得最新的标签?
答案 0 :(得分:1)
要清楚。你真的不会“回归”。假设您有以下历史记录。
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
假设原点是你的遥控器。