【问题标题】:GIT pull/fetch from specific tagGIT 从特定标签拉/取
【发布时间】:2011-04-27 05:38:05
【问题描述】:

有没有办法从 repo 中的特定标签中提取/获取代码。

我知道克隆后,我可以结帐到标签,但是可以在拉取期间指定标签吗?

在 ClearCase 中,我可以 rebase 或交付特定的代码基线,有没有一种方法可以让我使用 git 标签来类似地将代码拉/推到指定标签?

【问题讨论】:

标签: git git-pull git-fetch


【解决方案1】:

ClearCase 会有所不同,因为您只能重新设置在父 Stream 上生成的基线(尽管您可以将任何基线从任何 Stream 传递到您的 Stream)。
因此,您使用 ClearCase 进行的合并类型存在一些限制。

使用 Git,您可以将任何提交合并到当前分支的 HEAD。
如果该提交来自远程仓库,它将首先导入本地仓库的远程分支(git pull 的“fetch”部分),然后合并。

 git pull [options] [<repository> [<refspec>…]]

git pull 命令的“refspec”部分表示你可以拉取任何东西。

&lt;refspec&gt; 可以命名任意的远程引用(例如,标签的名称),甚至可以命名具有相应远程跟踪分支的引用集合(例如,refs/heads/:refs/remotes/origin/),但通常它是分支的名称在远程存储库中。

另见How to pull remote branch with specified commit id?

【讨论】:

    【解决方案2】:

    Pull 是 fetch + merge。

    谈到如何获取特定的远程引用(标签或分支),可能一个例子可以更好地阐明这一点:

    git fetch origin :refs/remotes/origin/master
    

    或者更短的形式:

    git fetch origin :remotes/origin/master
    

    请注意,即使 remotes/origin/master 已在本地删除。

    另一个直接从远程标签创建本地分支的例子

    git fetch <repo_url> +refs/tags/<TAG>:<branch>
    

    【讨论】:

      猜你喜欢
      • 2017-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-01
      • 2015-09-15
      • 2019-07-29
      • 1970-01-01
      • 2018-09-30
      相关资源
      最近更新 更多