标签: git-tag

从签名标签自动发布 GitHub?

我曾经将轻量级标签推送到我的 GitHub 存储库中,并将它们编辑到带有更改详细信息的发布中。这很好用。

现在我开始签署我的标签,这意味着它们是带注释的而不是轻量级标签。我希望 GitHub 会考虑发布它们,因此我将之前在 GitHub 上写入的相同信息放入标签消息中。

然而,GitHub 并不认为它是一个版本,而只是一个标签。我可以像以前一样根据标签“起草新版本”,但我想知道是否有一种方法可以让 GitHub 使用标签消息中的信息自动执行此操作。

git release github git-tag

7
推荐指数
0
解决办法
138
查看次数

Azure Devops Pipeline YAML 中的 Git 标记名称

概括

如何在 Azure Devops Pipeline YAML 文件中获取当前 git 标签的名称?

我想做什么?

我正在 Azure Devops 中设置构建管道。创建新的 git 标签时会触发管道。然后我想构建 docker 镜像并用 git 标签的名称标记它们。

我的 YAML 管道如下所示:

# Trigger on new tags.
trigger:
  tags:
    include:
    - '*'

stages:
- stage: Build
  jobs:
  - job: Build
    pool:
      vmImage: 'ubuntu-latest'

    steps:
    - script: export VERSION_TAG={{ SOMEHOW GET THE VERSION TAG HERE?? }}
      displayName: Set the git tag name as environment variable

    - script: docker-compose -f k8s/docker-compose.yml build
      displayName: 'Build docker containers'

    - script: docker-compose -f k8s/docker-compose.yml …
Run Code Online (Sandbox Code Playgroud)

git yaml git-tag azure-devops azure-pipelines

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

Git标签 - 结帐问题

如果Git项目中有多个可用的标签,我们如何检查,这是当前所有标签中的检出标签.

git tag 将列出所有标签,条目将出现在.git/refs/tags中

比如说: - 今天我们从主存储库进行了存储库同步并得到了标记1,我们检查了标记1并开始处理它,几周后我们同步了内容并检查了新标记.

现在,如果我想检查最新状态,即当前检出标签 - 我们该怎么做?

git github git-svn git-tag

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

git pre-push hook,如果是--tags则不运行

我有一个用于测试我的代码的预刷钩,但是,当我执行时,它也会运行git push --tags.有什么方法可以避免这种情况吗?

也许有一些方法可以检查它是否是常规推动还是--tags推动?

更新 - 这是我能找到的唯一参数:

  • 1美元是遥控器的名称
  • $ 2是推送正在进行的网址

git githooks git-tag

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

获取mvn release:回滚以删除GIT中的标记

我有一个maven项目,存储在我们的GIT存储库中.当我发布这个项目时mvn release:prepare,mvn release:perform有时它会在后面的步骤中失败,但无论如何都会为此版本创建一个标记.此标记不会被删除mvn release:rollback,如果我再次尝试准备该版本,则会因此标记已存在错误而失败:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.2:prepare (default-cli) on project lwl-module: Unable to tag SCM
[ERROR] Provider message:
[ERROR] The git-tag command failed.
[ERROR] Command output:
[ERROR] fatal: tag 'lwl-module-1.5.1' already exists
[ERROR] -> [Help 1]
[ERROR]
Run Code Online (Sandbox Code Playgroud)

有没有办法mvn release:rollback删除我们的GIT存储库中的最后一个标签?

我正在使用此版本插件:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.2</version>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

git rollback maven maven-release-plugin git-tag

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

由于特殊字符"Ã",无法删除GIT标记

创建了一个标签,其名称中包含"Ã",我无法删除标签,尝试了以下内容:

git tag -d -- xxÃxx
git push origin :refs/tags/xxÃxx

git config --global core.precomposeunicode true
git tag -d -- xxÃxx
git push origin :refs/tags/xxÃxx
Run Code Online (Sandbox Code Playgroud)

也试过这个名字的双引号.

执行命令时,git表示标签已删除:本地删除:

Deleted tag 'xxÃxx' (was 434eae7)
Run Code Online (Sandbox Code Playgroud)

推后:

remote: warning: Allowing deletion of corrupt ref.
 - [deleted]         xxÃxx
Run Code Online (Sandbox Code Playgroud)

标签"xxÃxx"在每个git fetch -p或git pull(两次连续拉动后的事件)中都是新的.

还尝试从源树中删除标记,但标记再次出现.

git special-characters git-tag

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

是否可以将git提交标记为正在进行中?

我知道关于主分支上的所有提交是否应该使项目处于有效的工作状态存在各种观点和哲学.我不是要求这些意见.

为了论证,让我们假设在master分支历史中的某个地方我确定了一个提交,它实际上是一个正在进行的提交,即它不构建或破坏其他东西.由于我们在主分支中讨论历史,因此不能选择重新定位或修改(或实际更改提交的任何内容).

为了警告其他开发人员并使自动git bisect脚本轻松跳过此提交,我想以某种方式将此提交标记为正在进行中.我该怎么做呢?

我已经考虑过使用git tag,但由于标签必须是唯一的,因此我最终会使用标签,就像wip/<some_unique_id>我认为的那样丑陋.另外,从概念上讲,我们不希望将此提交视为标记提交,即我们可能永远不想检查它,我们可能不希望它出现在标记提交点列表等中.

git version-control git-bisect git-tag

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

如何在 git filter-branch 上为修剪空或子目录过滤器保留标签

git filter-branch --tag-name-filter cat …通过使用--prune-empty和/或--subdirectory-filter=…您将进入案例重写历史记录时,标记的提交将被删除。到目前为止,这是合理的,并且按设计工作。

问题/目标

我现在想要存档的是:保留附近重写提交的标签

例子:

从...开始 A -> B(tag: foo) -> C -> D -> E

(其中 E 比 D 新,比 C 新……)

跑步git filter-branch我得到

  • 得到A' -> B'(tag: foo)' -> E ( ^ 好案例)

  • 或:(A' -> D' -> E' ^ 坏情况)

我想要得到的是:A'(tag: foo)' -> D' -> E' 因为A'代表了被标记的内容B

一些研究: 我遇到的第一件事是git cherryGit 中:有没有办法找出提交是从哪里挑选出来的?但这似乎对发现差异没有太大帮助,因为树木是不相交的。

相反,我已经找到了一个有用的示例--commit-filter /sf/answers/1034837401/来写重写对象的日志

一些想法:考虑--commit-filter …

git-filter-branch git-tag

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

git:列出悬空标签

语境:

  • 假设你有一些相当棘手的 CI/CD 工作流程,它依赖于 git 标签
  • 构建功能分支并生成一些短期标签以表示产生可部署工件的提交
  • 当功能分支被压缩合并时,通常它会被删除,但不出所料,标签仍然存在
  • 比如说,经过几个月的开发,标签列表可以预见地变得毛茸茸的

因此,问题:

我将如何使用 git 命令行和可选的基本 bash 工具

  1. 列出所有给定标签可达的分支(双重标签是git tag -l --merged ${BRANCH_COMMITTISH},但我不需要给定分支的标签,而是给定标签的分支)
  2. 列出上面第 1 点输出为空的所有标签(显然这可以用 for 循环(给定 1 的任何终止实现),但也许有一些简洁的神奇 git one-liner)?

git git-log git-tag git-branch

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

如何在Azure管道中获取Git标记

在Azure Pipelines中,我启用了git标签来触发管道,如下所示:

trigger:
  branches:
    include:
    - '*'
  tags:
    include:
    - '*'
Run Code Online (Sandbox Code Playgroud)

现在,我想知道是否有一种方法可以通过编程确定:

  1. 管道是从git commit还是git标签开始的?
  2. 如果管道是从git标签启动的,标签名称是什么?

git git-tag azure-devops azure-pipelines

6
推荐指数
4
解决办法
1869
查看次数