【问题标题】:Git: How do I pull a tagged revision into my fork?Git:如何将标记的修订版拉入我的叉子?
【发布时间】:2010-11-24 07:59:06
【问题描述】:

我在 github 上有一个项目的分支,其中最近标记了主干。我想将代码从标记的修订版中提取到我的 fork 中。我该怎么做?

【问题讨论】:

  • 我是 git 新手,所以我还不知道所有术语...我想将主干中的标记代码合并到我的 fork 中。如果这就是 git 所说的“合并”,那么是的 :)
  • 你可能还想看看这个问题stackoverflow.com/questions/881092/…

标签: git github


【解决方案1】:

一旦您在本地存储库中拥有标签,您就可以执行类似的操作

git merge tags/yourtag

如果本地没有“trunk”标签,可以使用

git fetch remote-url "refs/tags/*:refs/tags/*"

或者通过设置遥控器

git remote add upstream remote-url

并使用

git fetch -t upstream

我认为,虽然,使用

git remote update

会有类似的效果。

【讨论】:

  • “一旦你在本地存储库中有标签” - 我该怎么做(我真的是一个 git 新手)。 “git merge”和“git fetch”和“git pull”有什么区别?
  • @Jon:这里的第二条指令将从远程获取所有标签。请注意,您也可以使用git fetch --tags <remote-url>
  • @Jon: git pullgit fetchgit merge 的组合。它使用git fetch 从远程存储库中检索信息(分支位置、提交等),然后使用git merge 将适当的远程分支合并到当前本地分支中。您可以通过git pull <remote-url> <branch> 指定远程分支,或者您可以使用配置参数branch.<branchname>.remotebranch.<branchname>.merge 指定默认远程和要合并的分支。
  • 值得注意的是,git pull 在分支上运行,因此将合并到分支的尖端而不是相关标签。并回答“我该怎么做?”这个问题。 (获取本地存储库)——这就是从“如果你不这样做”开始的所有内容。
  • 好的,我越来越近了。我已经设置了远程参考。然后我做了“git fetch --tags myproject”,它得到了标签。但是现在如何获取带有特定标签的源代码?
【解决方案2】:

我可能在预测,但我认为 Jon 的问题和我的一样:

我 fork 别人的项目(在 GitHub 上),并且需要将我的 fork 的 master 分支指向他们项目的特定 tag,从而有效地忽略了所有后续开发. (为什么?在那个标签之后,他们的项目放弃了我的 fork 依赖并且必须构建的功能。所以我与历史上的那个时刻挂钩。可悲但真实。)

在本例中,标签名为0.6.3。我所要做的就是cd 到我的本地克隆(我的叉子)然后做

git reset --hard 0.6.3
git push --force

然后我在 GitHub 上验证了我的 fork 反映了他们标签上的代码状态!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    相关资源
    最近更新 更多