标签: git-tag

在 git Push 上需要带注释的标签并拒绝轻量级标签

是否可以在 git 存储库上设置不允许将轻量级标签推送到其中的策略?

git git-tag

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

GIT:[拒绝](会破坏现有标签)错误

背景故事:我们在构建过程中使用GitVersion用版本号重命名构建。我们也在关注GitFlow流程。我们有一个hotfix/2.9.1分支可能已经合并了另一个分支,从而导致 GitVersion 从2.9.12.9.2. 为了解决这个问题,我们用标签标记了hotfix/2.9.1分支2.9.1。在此期间,修补程序分支的工作正在进行中。在发布期间,我们删除了标签,合并hotfix/2.9.1到 中master,然后用2.9.1. 然后我们将 master 合并到develop我们的release分支中。

我们现在看到我们的构建中存在问题:

在此处输入图片说明

我发现这个关于标签,我不确定这是否适用。我尝试按照此处的建议本地删除标签,我尝试执行git fetch --tags并推送。这似乎只发生在我们的构建服务器(Azure)上。

忘了提: 如果我删除 Azure 中的标记并将失败的构建重新排队,一切都会按预期进行。

git azure git-tag azure-devops

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

是否有更简单的方法从单一存储库发布到不同的存储库?

我有一个带有纱线工作区(和lerna)的monorepo

-package
--one
--two
-site
Run Code Online (Sandbox Code Playgroud)

一个脚本将它们中的每一个(站点)推送到它们的 github 存储库

我用类似的东西来做这个

-package
--one
--two
-site
Run Code Online (Sandbox Code Playgroud)

它(到目前为止)有效,尽管速度很慢

问题是我这样做是否正确,或者还有其他更好的解决方案

git git-checkout git-tag git-subtree git-branch

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

在推送标签上触发 Github Action,删除标签并再次推送后会触发,但会使用旧版本的代码

我有一个 github 操作定义,用于构建 + 测试我的节点项目。

我已将其设置为以这种方式触发:

on:
  push:
    tags:
      - '*'
Run Code Online (Sandbox Code Playgroud)

它有效,但问题是,有时构建失败,我不想在每次失败时发布新版本 + 标签。所以我想我会使用以下方法删除标签:

git push --delete origin v1.0.0
Run Code Online (Sandbox Code Playgroud)

然后简单地再次推动。

这项工作和管道被触发。但是,由于超时时间太短(实际上是从远程接收数据)而导致测试失败 超时为 5000 毫秒,我尝试使用此方法将其更改为 15000 毫秒,大约 8 次提交,即使我没有5000任何地方我的应用程序,它仍然抛出相同的超时错误。

我决定用相同的文件创建一个新版本,由于超时时间足够,错误消失了,这让我意识到它仍在使用旧版本的文件。

我的问题是:

  • 这是错误还是功能?
  • 当我的管道失败并在标签上触发时,我有哪些选择?
  • 在使用标签跟踪版本/发布和触发管道时,是否有另一种管理标签的方法?例如,触发带有标签的提交而不是标签创建?如果是,我如何为提交分配标签?我还没有找到答案。

谢谢你。

git github git-tag github-actions

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

使用 GitHub Actions 创建标签而不是发布

目前在我的 GitHub 存储库中,我有以下每天发布夜间快照的工作流程,并使用当前日期作为发布名称和标签名称:

name: Nightly Snapshot

on:
  schedule:
  - cron: "59 23 * * *"

jobs:
  build:
    name: Release
    runs-on: ubuntu-latest
    steps:
      - name: Get current date
        id: date
        run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
      - name: Checkout branch "master"
        uses: actions/checkout@v2
        with:
          ref: 'master'
      - name: Release snapshot
        id: release-snapshot
        uses: actions/create-release@latest
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ steps.date.outputs.date }}
          release_name: ${{ steps.date.outputs.date }}
          draft: false
          prerelease: false
Run Code Online (Sandbox Code Playgroud)

GitHub 将所有以这种方式创建的快照标记为最新版本。但是,我想避免这种情况,并实现类似于Swift 快照的效果:快照只是标签;尽管它们出现在版本中,但它们的处理方式不同。

我应该如何修改我的工作流程文件来实现这一点?谢谢!

github github-api git-tag github-release github-actions

5
推荐指数
3
解决办法
5846
查看次数

构建 Docker 镜像并使用 github 标签名称进行标记

我已经创建了一个关于创建存储库标签的 GitHub 操作。我成功地构建了 Docker 映像并将其推送到 AWS,但是我不知道如何使用与 GitHub 标签相同的名称来标记该映像。下面是我的 git 工作流程文件

name: Build Docker Image and Push to AWS ECR
on:
  push:
    tags:
    - '*'


jobs:

  build:

     runs-on: ubuntu-latest

     steps:
         - name: Checkout
           uses: actions/checkout@v1

         - name: Configure AWS credentials
           uses: aws-actions/configure-aws-credentials@v1
           with:
               aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
               aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
               aws-region: us-west-2

         - name: Login to Amazon ECR
           id: login-ecr
           uses: aws-actions/amazon-ecr-login@v1

         - name: Build, tag, and push image to Amazon ECR
           id: build-image
           env:
               ECR_REGISTRY: ${{ secrets.AWS_REGISTRY }}
               ECR_REPOSITORY: …
Run Code Online (Sandbox Code Playgroud)

git-tag docker docker-image github-actions

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

GitPython:获取远程存储库的最新标签

我希望能够检查给定存储库的最新标签是什么(我在这里使用 CPython 作为示例)。

以下作品:

g = git.cmd.Git()
blob = g.ls_remote('https://github.com/python/cpython', sort='-v:refname', tags=True)
blob.split('\n')[0].split('/')[-1]  # 'v3.9.0a6'
Run Code Online (Sandbox Code Playgroud)

因为blob看起来像这样:

'bc1c8af8ef2563802767404c78c8ec6d6a967897\trefs/tags/v3.9.0a6\ndcd4 (...)'
Run Code Online (Sandbox Code Playgroud)

但是:有没有更干净的方法来获取最新标签?

最好使用gitpython但任何其他包也可以。

python git git-tag gitpython

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

Git:提交标签,然后将提交合并到master

我主要熟悉SVN.我一直在使用Git,但还没有做过非常先进的事情.对于我的项目,我一直在创建标记单个版本的标签.例如,我有一个标签,v1.2.3用于我项目的特定版本.我想为该标记提交一个错误修复,然后将其合并到master中.我该怎么做呢?我查找了有关从标记创建分支的信息,但我不确定这是否是正确的方法.我可以直接提交标签然后将其合并到主设备中吗?

git git-merge git-tag git-branch

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

来自远程标签的Git分支

我已经创建了一个从另一个远程存储库镜像的新的本地git存储库:

git init
git remote add original {url}
git pull original master
git remote add origin {url}
git push -u origin master
Run Code Online (Sandbox Code Playgroud)

这将创建一个originals master分支的镜像.现在我想创建一个标签的新分支original.

命令应该如何?我试过git checkout -b newbranch original/tagname但是我得到了:

fatal: Cannot update paths and switch to branch 'newbranch' at the same time.
Did you intend to checkout 'original/tagname' which can not be resolved as commit?
Run Code Online (Sandbox Code Playgroud)

git git-tag git-branch

4
推荐指数
3
解决办法
2万
查看次数

如何设置TFS 2013构建定义以从Git标记构建?

我想在TFS 2013中创建一个特殊的构建定义,以便从标记构建.该项目中使用的源代码控制是Git.

所以,假设我有一个名为的标签v1.0.我希望此构建定义拉出与该标记对应的源并运行构建.触发器现在无关紧要 - 它甚至可以是手动的.怎么可能?

我可以看到你只能在Source Settings选项卡上选择分支...

考虑高级方案:在创建新标记时触发构建,并从新创建的标记中获取源以运行构建.那可能吗?如果是这样,怎么样?

除了在MSDN上解释的普通默认方案之外,我找不到任何信息.可能是因为配置(Git模式下的TFS 2013)很新......

提前致谢.

git tfs tfsbuild git-tag tfs2013

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