gpt4 book ai didi

Github 发布/标签未在本地显示?

转载 作者:行者123 更新时间:2023-12-05 04:11:07 26 4
gpt4 key购买 nike

我将一些代码推送到远程存储库,然后在 GitHub 上创建了第一个版本,并将其命名为 'v0.0.1'。 GitHub 现在显示我现在有一个版本,并且还在“标签”中显示我有一个标签 “v0.0.1”

然后我执行 git pull origin master 来更新本地 repo,它返回 'Already up-to-date.' 现在如果我输入 git tag 没有任何反应。

那么为什么这个标签没有在本地显示呢?

最佳答案

这里的问题是 git pull origin master运行 git fetch origin master后面实际上是 git merge origin/master . git fetch步骤对 git fetch 提供了太多约束,禁止它获取您的标签。如果您自己运行 git fetch origin甚至只是 git fetch ,您将获得标签。

背景

注意第一个命令git pull运行— git fetch origin master —使用两个单独的参数,originmaster ,第二个没有;相反,它有这个奇怪的斜杠:git merge origin/master .这都是历史原因:git pull最早是在 2005 年左右,结果是做得太多,做得不太好;所以一个单独的,更有用的git fetch作为标准的面向用户的命令提供。大约在这个时候,发明了“ Remote ”的整个概念。姓名origin本身就是这些 Remote 之一。

Remote 带有远程跟踪分支,和origin/master ,里面有斜杠,是这些远程跟踪分支之一。尽管这里使用了“远程”一词,但“远程跟踪分支”实际上只是您自己(本地)存储库中的另一个名称:这是您的 Git 为您记住您的 Git 在其他(来源)Git,你的 Git 上次与他们的 Git 交谈的时间。

一开始(又是 2005 年左右),你必须运行 git pull <url> <branch> ,这就是为什么两者是分开的。没有远程,也没有远程跟踪分支,所以你必须让你的 Git 通过 URL 调用他们的 Git,获取他们的分支,然后立即将结果 merge 到你的分支中。所以你命名了通过网络电话调用他们的 Git 的 URL,然后命名了他们的分支。

您现在可以运行 git fetch 完全没有参数,这将调用origin (您的 Git 使用您的名字 origin 来保存 URL)在网络电话上获取所有内容,然后使用标签和远程跟踪分支为您记住所有内容。之后,git merge 完全没有参数通常会做正确的事情:如果你在master它将 merge origin/master ,这是你的 Git 从他们的 Git 中记住的内容。但是git pull继续存在,部分原因是在 git fetch 之后,您通常希望再执行至少一个 Git 命令,并且 git pullgit fetch然后是另一个 Git 命令——它仍然使用相同的旧语法:一个 URL(但现在您可以使用“远程”名称),后跟分支的名称 ,如在 Git 上看到的那个 URL.

我对 Git 新手的建议是:永远不要使用 git pull ;你的 Git 生活会更快乐。它似乎很方便,但它为粗心的人设置了所有这些陷阱。例如,您运行的第二个命令应该经常是 git rebase , 不是 git merge . 找出要使用哪个命令的方法是运行 git fetch然后 git log —但是git pull要求您提前决定是 rebase 还是 merge ,您查看哪个更好。

关于Github 发布/标签未在本地显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43340115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com