Git New Tag有旧的提交

  • 本文关键字:提交 New Tag Git git
  • 更新时间 :
  • 英文 :


我是这个标签概念的新手。在主分支中,我使用提取了最近的提交

git pull origin main

我用提取了远程标签

git fetch --tags --force                               

然后,我在本地创建了一个标签

git tag -a v2.2 -m "some message"

问题是,当我检查VScode中的标记时,标记v2.2具有v2.1的提交。我只希望v2.1之后的提交出现在新标签中。我该怎么做?

在添加标记之前,您需要先在分支上添加并提交

如果在pull之后立即进行标记,则会标记最后一个提取的提交,可能是已经标记v2.1的提交。

别忘了,一个标记引用一个Git对象(这里是提交(
该提交又引用了过去提交的历史记录(包括v2.1版本(。


  • 如果我这样做";CCD_ 1";它显示了我在创建标签v2.1之前所做的旧更改作为新更改

参见";双点";CCD_ 2";和三点";CCD_ 3";在Git diff提交范围内">

git diff v2.1..v2.2将向您展示v2.2中的内容,以及与v2.1相比v2.2中没有的内容。

首先检查v2.1提交是否是v2.2提交的直接后代(即,如果它们在同一分支上(。

我在";特征";分支,合并为";开发";(远程(通过PR;主";通过PR(远程(从develop。

现在我需要创建一个标签(v2.2(。所以我拉了主标签,创建了一个标签,把它推到远程。当我检查v2.2和v2.1之间的差异时,大约有20个提交。

我建议:

git fetch
git tag -a v2.2 -m "some message" origin/main
git push --tags

这样,您一定要标记刚刚获取的远程origin中的内容,而不是本地main分支,后者将包括您自己的本地提交,但尚未推送。


OP Hari Warshan在评论中澄清:

我有一些其他提交,这些提交在远程中不存在
这就是造成混乱的原因。

最新更新