标签: git-tag

将 git tag 指向特定的提交 ID

如何将 git tag 指向特定的提交 ID?

例如:我有以下提交

#git log 6470098 变更1 b72099b 变更2 1514994 变更3 068bf4c 变更4

我需要标记1514994. 我要怎么做呢?

git git-tag

1
推荐指数
1
解决办法
2429
查看次数

单独的分支机构或git项目?

我在公司介绍Git。我有几个都通过套接字一起交互的应用程序,现在,将决定我是否应该使用

  • 我的应用程序不同部分的单独分支,或者
  • 单独的Git项目。

我也想使用标签进行修订;如果使用分支,则必须像branchnameV1.0, but if I use separate Git projects I could tag likev1.0 一样标记。

最常规的方法是什么?

git git-tag git-branch

1
推荐指数
1
解决办法
214
查看次数

获取提交的标签

给定一个 GitPython Commit 对象,如何获取与此提交相关的标签?

我喜欢有这样的东西:

next(repo.iter_commits()).tags
Run Code Online (Sandbox Code Playgroud)

python git commit git-tag gitpython

1
推荐指数
1
解决办法
1416
查看次数

如何获取类似 git-branch -avv 的标签列表?

git branch -avv显示所有分支(包括远程分支),用跟踪分支、短 SHA 和提交标题装饰它们。是否有类似的命令来显示所有标签及其指向的提交,可选地包括是否将其推送到上游,以及如果标签被注释的话还包含消息?

到目前为止我能得到的最好的结果是:

git tag --format '%(color:green)%(refname:short)%09%(color:white)%(objectname:short) %(contents:subject)'
Run Code Online (Sandbox Code Playgroud)

但这有几个问题:

  • 根据标签长度,通过%09(a \t) 的对齐失败
  • 无法查看标签是否是轻量级的(%(objecttype)将其显示为 或committag但我更喜欢下一行的标签注释之类的内容)
  • %(objectname:short)结果是带注释标签的标签SHA,而我想知道它们指向什么。

最后两个归结为基本上想要git show-refs --tags -d显示什么,但这并没有提供--format

git git-tag git-branch

1
推荐指数
1
解决办法
1165
查看次数

git 标签不再被识别

我的 git 存储库遇到了一个奇怪的问题。它突然“停止”使用标签。我可以创建标签,我可以列出标签。我什至可以使用git checkout $taggit logs $tag。但是当使用git describe --exact-match标签时就不再检测到了?这目前破坏了我的管道,因为 master 上的标记提交似乎没有标记到 git 本身?一周前,它运行得非常完美。

$ git checkout master
$ git tag my-test-tag
$ git describe --exact-match
fatal: no tag exactly matches '4b2aa1dcf70eaf61640e6a983df82e1ffe3a5812'
Run Code Online (Sandbox Code Playgroud)

我已经尝试过运行git fsck --full,它只修复了一些悬空的提交,这对我来说看起来很好(因为我进行了很多变基)。

另一个有趣的事情是:该工具gitg没有显示这些“新”提交的任何历史记录。而对于“旧”承诺,一切都按预期进行。

有人知道这里发生了什么事吗?

在 3 台机器上测试,全部运行 git 版本 2.17.1。

git git-tag git-describe

1
推荐指数
1
解决办法
2874
查看次数

列出所有带注释的标签,带注释,按提交日期排序

列出带有注释的所有标签似乎很容易,例如:

git tag -n99
Run Code Online (Sandbox Code Playgroud)

或者

git for-each-ref --format '%(refname:short) %(contents)' refs/tags
Run Code Online (Sandbox Code Playgroud)

也可以用于git log按创建者日期列出标签,例如(来自此处):

git log --tags --simplify-by-decoration --pretty="format:%cs %d"
Run Code Online (Sandbox Code Playgroud)

然而,这些都没有回答问题,因为据我所知:

  • 无法按提交日期对带注释的标签进行排序git tag,因为标签指向标签注释对象,因此committerdate为空。您可以通过以下方式确认这一点git tag --format='%(committerdate)'
    • 有一个,它列出了未注释提交的creatordate提交日期,以及带注释提交的标签创建日期,这对于这个问题来说也是无用的。
  • 无法使用 来显示标签注释git log,因为格式化程序中没有标签注释选项(而且这无论如何都没有意义,因为单个提交可以有多个标签。

那么,有没有一种方法可以列出所有标签,按提交日期排序,并显示提交日期和注释?我不关心这个问题的未注释标签。

git git-log git-tag

1
推荐指数
1
解决办法
516
查看次数

Git - 可以添加标签并将其作为提交吗?正如Mercurial一样

当我使用Mercurial时,我曾经将标记作为提交 - 至少在TortoiseHG中,它在添加标记时创建了一个提交.当我尝试使用Git时,我很失望 - 它没有为标记创建提交,而且 - 当我从Intellij IDEA提交时,我必须选中一个复选框来将标记提交到存储库.是否可以在Git中添加标签,并将其作为提交,与Mercurial完全相同?非常感谢你的每一个答案.

git mercurial dvcs git-tag

0
推荐指数
1
解决办法
93
查看次数

git reflog 管道传输时丢失数据

git reflog
Run Code Online (Sandbox Code Playgroud)

输出日志看起来像这样

8b388bc (HEAD -> master) HEAD@{0}: commit (amend): tempppp22222
7c33c70 (tag: v2.0) HEAD@{1}: commit: tempppp
76702b2 (origin/master, origin/HEAD) HEAD@{2}: reset: moving to HEAD^
fc1ea9d HEAD@{3}: commit (amend): temp2
0bc8223 (tag: v1.0) HEAD@{4}: reset: moving to 0bc8223
Run Code Online (Sandbox Code Playgroud)

但当我尝试时

git reflog | grep "HEAD@{1}"
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样

7c33c70 HEAD@{1}: commit: tempppp
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我为什么标签名称丢失吗?

git bash grep git-tag

0
推荐指数
1
解决办法
141
查看次数

如何 git delete 一个分支和一个同名的标签,名称中都带有斜杠?

我有一个 git 分支和一个 git 标签,它们在本地和远程都具有相同的名称和多个斜杠。

我想写一个bash脚本调用git命令删除本地分支和本地标签,然后是远程分支和远程标签。

对于此示例,假设分支/标签名称为: production/2020/12/10

该分支/标签名称是一个假设,可以找到适用于更好命名的分支/标签的解决方案。

任何帮助将不胜感激。

git git-tag git-branch

0
推荐指数
1
解决办法
154
查看次数

git标签和时间

我的印象是标签会像提交一样,如果我有一个基于旧提交的克隆,我不希望看到git标签输出中列出的新标签.

但是,这种假设显然是错误的.它破坏了我计划使用标签的方式.我正在使用简单的标签.其他类型的标签会在时间上有所不同吗?

git commit git-tag

-1
推荐指数
1
解决办法
1061
查看次数

标签 统计

git ×10

git-tag ×10

git-branch ×3

commit ×2

bash ×1

dvcs ×1

git-describe ×1

git-log ×1

gitpython ×1

grep ×1

mercurial ×1

python ×1