如何签出远程 Git 分支?

这篇具有很好参考价值的文章主要介绍了如何签出远程 Git 分支?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述:

有人将名为 test 和 git push origin test 的分支推送到共享存储库。我可以看到带有 git branch -r 的分支。如何签出远程 test 分支?我试过了:

git checkout test,什么都不做

git checkout origin/test 给出 *(无分支)

解决方案1:

huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。文章来源地址https://www.toymoban.com/news/detail-501099.html

答案已根据配置的远程存储库是一个还是多个而有所不同。这样做的原因是,对于单个远程情况,一些命令可以简化,因为歧义较少。

针对 Git 2.23 更新:对于旧版本,请参阅最后的部分。

一个遥控器

在这两种情况下,首先从远程存储库获取以确保您已下载所有最新更改。

$ git fetch

这将为您获取所有远程分支。您可以通过以下方式查看可用于结帐的分支:

$ git branch -v -a

...
remotes/origin/test

以 remotes/* 开头的分支可以被认为是远程分支的只读副本。要在分支上工作,您需要从它创建一个本地分支。这是使用 Git 命令 switch(自 Git 2.23 起)通过为其指定远程分支的名称(减去远程名称)来完成的:

$ git switch test

在这种情况下,Git 猜测(可以使用 --no-guess 禁用)您正在尝试签出并跟踪具有相同名称的远程分支。

使用多个遥控器

在存在多个远程存储库的情况下,需要显式命名远程存储库。

和以前一样,首先获取最新的远程更改:

$ git fetch origin

这将为您获取所有远程分支。您可以通过以下方式查看可用于结帐的分支:

$ git branch -v -a

有了远程分支,您现在需要使用 -c 签出您感兴趣的分支,以创建一个新的本地分支:

$ git switch -c test origin/test

有关使用 git switch 的更多信息:

$ man git-switch

我还创建了下面的图像供您分享差异,看看如何获取工作,以及拉取的不同之处:

https://i.stack.imgur.com/zBb51.png

在 Git 2.23 之前

git switch 是在 Git 2.23 中添加的,在此之前 git checkout 用于切换分支。

要仅使用单个远程存储库签出:

git checkout test

如果配置了多个远程存储库,它会变得更长一些

git checkout -b test /test

对此进行扩展:git 不允许您在其他人的分支上工作。你只能自己工作。因此,如果您想添加到其他人的分支,您需要创建您自己的该分支的“副本”,这就是上面的命令所做的(好吧,它也会创建您的分支并检查它)。

如果它是一个新的远程分支,您可能需要在执行此操作之前git fetch,以便 git 知道 origin/test

...您可以使用 git fetch origin test

错误:“git checkout:更新路径与切换分支不兼容。您是否打算签出无法解析为提交的 origin/test?”

如果您有多个具有相同分支名称的遥控器,git checkout test 将无法在现代 git 中工作。它不知道该使用哪一个。

解决方案2:

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

旁注:使用现代 Git (>= 1.6.6),您可以只使用

git checkout test

(注意,它是 ‘test’ 而不是 ‘origin/test’)执行神奇的 DWIM-mery 并为您创建本地分支 ‘test’,上游将是远程跟踪分支 ‘origin/test’。

git branch 输出中的 * (no branch) 表示您在未命名的分支上,处于所谓的“分离 HEAD”状态(HEAD 直接指向提交,而不是对某个本地分支的符号引用)。如果你在这个未命名的分支上做了一些提交,你总是可以从当前提交创建本地分支:

git checkout -b test HEAD

评论中建议的更现代的方法:

@Dennis: git checkout ,例如 git checkout origin/test 结果在分离的 HEAD / 未命名分支中,而 git checkout test 或 git checkout -b test origin/test 结果在本地分支测试(带有远程跟踪分支起源/测试作为上游) – Jakub Narębski 2014 年 1 月 9 日在 8:17

强调git checkout origin/test

不足为奇,但是这个版本是在过去几年发布的——知道这种语法可以节省很多时间,因为仍然有很多旧的文档和评论线程在建议使用旧的方法来执行此操作。

“现代 git”——记录一下,(大约)你指的是什么版本?有时我们必须在运行旧发行版的系统上工作。

@aidan 如果你得到像 error: pathspec 'branch_name' did not match any file(s) known to git. 这样的响应,那么你应该先做一个 git fetch 。

使用 git 版本 1.8.3.msysgit.0 这对我不起作用 - 与 git 已知的任何文件都不匹配 - 我已经完成了许多 git fetches

@Dennis:git checkout ,例如 git checkout origin/test 导致分离的 HEAD / 未命名分支,而 git checkout test 或 git checkout -b test origin/test 导致本地分支 test(远程跟踪分支 origin/test 作为 upstream< /i>)

解决方案3:

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

在这种情况下,您可能希望创建一个本地 test 分支来跟踪远程 test 分支:

$ git branch test origin/test

在 git 的早期版本中,您需要一个明确的 --track 选项,但现在当您从远程分支分支时,这是默认选项。

要创建本地分支并切换到它,请使用:

$ git checkout -b test origin/test

这将创建一个本地分支而不切换到它。

在您上面的 bash git checkout -b test/origin/test 建议中,您希望在它前面加上一个 bash git fetch upstream 以确保您的本地存储库知道远程分支 test 在那里。否则,谢谢,一切都像宣传的那样工作。

解决方案4:

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

接受的答案对您不起作用?

虽然第一个和选定的答案在技术上是正确的,但您可能尚未从远程存储库中检索所有对象和引用。如果是这种情况,您将收到以下错误:

$ git checkout -b remote_branch origin/remote_branch

致命:git checkout:更新路径与切换分支不兼容。您是否打算签出无法解析为提交的“origin/remote_branch”?

解决方案

如果您收到此消息,则必须先执行 git fetch origin,其中 origin 是远程存储库的名称,然后才能运行 git checkout remote_branch。这是一个完整的响应示例:

$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'

如您所见,运行 git fetch origin 检索了我们尚未设置为在本地计算机上跟踪的任何远程分支。从那里开始,由于我们现在有一个远程分支的引用,我们可以简单地运行 git checkout remote_branch,我们将获得远程跟踪的好处。

谢谢! git checkout -b branch_name 为我工作。

解决方案5:

huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。

我尝试了上述解决方案,但没有奏效。试试这个,它有效:

git fetch origin 'remote_branch':'local_branch_name'

这将获取远程分支并创建一个名为 local_branch_name 的新本地分支(如果不存在)并跟踪其中的远程分支。

当 git fetch origin 或 git remote update 都没有创建本地分支时,这对我有用。我不确定为什么。

这是完成我需要的最直接的方法,即使用远程分支(不是主分支)来创建新分支。

无缝工作,尤其是在从具有多个分支的远程克隆单个分支时。

这对我也有用,接受的答案和其他高票没有。我的 git 版本是 2.5.0

有谁知道为什么这在其他一切都不起作用的情况下有效? (我在 git 2.13.0 上)

解决方案6:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

这将 DWIM 用于未命名的远程源 (documentation):

$ git checkout -t remote_name/remote_branch

要添加新的遥控器,您需要先执行以下操作:

$ git remote add remote_name location_of_remote
$ git fetch remote_name

第一个告诉 Git 远程存在,第二个获取提交。

解决方案7:

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

利用:

git checkout -b  /

在我的良性案例中,其他答案不适用于现代 Git。如果远程分支是新的,您可能需要先提取,但我没有检查过这种情况。

现在来看,它们确实重叠。只有我的很简洁,告诉你该做什么,而不是讲故事。因此,我认为它可能会更有用,尤其是对于当今的 git 版本。如果您认为这是一个错误的答案,您可以投反对票。

解决方案8:

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

您基本上看到了分支,但是您还没有本地副本!…

您需要 fetch 分支…

您可以简单地获取然后结帐到分支,使用下面的一行命令来执行此操作:

git fetch && git checkout test

我还为您创建了下面的图片来分享差异,看看 fetch 的工作原理以及它与 pull 的不同之处:

https://i.stack.imgur.com/ODFYa.png

解决方案9:

huntsbot.com – 高效赚钱,自由工作

要克隆 Git 存储库,请执行以下操作:

git clone 

上述命令检出所有分支,但只有 master 分支会被初始化。如果要检查其他分支,请执行以下操作:

git checkout -t origin/future_branch (for example)

此命令检出远程分支,您的本地分支名称将与远程分支相同。

如果您想在结帐时覆盖您的本地分支名称:

git checkout -t -b enhancement origin/future_branch

现在您的本地分支名称是 enhancement,但您的远程分支名称是 future_branch。

解决方案10:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

你可以试试

git fetch remote
git checkout --track -b local_branch_name origin/branch_name

或者

git fetch
git checkout -b local_branch_name origin/branch_name

仅供参考,较新版本的 git 不再需要 --track,因为它是默认设置的,如 this earlier answer 中所述。

这个评论对我有用,谢谢! git checkout -b local_branch_name origin/branch_name

解决方案11:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

对于上述所有建议,我陷入了看到 error: pathspec ‘desired-branch’ did not match any file(s) known to git. 的境地。我在 Git 版本 1.8.3.1 上。

所以这对我有用:

git fetch origin desired-branch
git checkout -b desired-branch FETCH_HEAD

后面的解释是我注意到在获取远程分支时,它被提取到了 FETCH_HEAD:

git fetch origin desired-branch

From github.com:MYTEAM/my-repo
    * branch            desired-branch -> FETCH_HEAD

尝试检查工作树中子模块中的远程分支时,我遇到了同样的问题。有谁知道这是什么原因?

原文链接:https://www.huntsbot.com/qa/1jEO/how-do-i-check-out-a-remote-git-branch?lang=zh_CN

huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。

到了这里,关于如何签出远程 Git 分支?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git 删除分支——如何删除本地或远程分支

    Git 是一种流行的版本控制系统,也是 Web 开发人员工具包中必不可少的工具。分支是使用 Git 的一个强大且不可或缺的部分。在本文中,您将学习有关如何在 Git 中删除本地和远程分支的基础知识。 分支是指向提交的指针。 Git 分支是从特定时间点开始的项目及其更改的快照。

    2024年04月12日
    浏览(53)
  • git 本地如何创建分支并提交到远程分支

    前言 相信每个小伙伴在项目中创建新分支后都要走一下这个步骤, 流程还是比较简单的。 具体步骤 1、创建分支 2、切换到新分支 3、合并主分支 将新分支合并后的代码提交一下 4、所有代码提交到本地暂存区 5、所有代码提交到本地仓库区 6、正式将本地仓库区的代码提交到

    2024年02月11日
    浏览(38)
  • git 如何切换到远程分支(remote)分支

    要切换到远程分支,你可以按照以下步骤操作: 首先,使用 git branch -r 命令查看可用的远程分支列表。 选择你要切换到的远程分支,然后使用以下命令创建并切换到一个新的本地分支: 替换 branch_name 为你想要创建的本地分支的名称, remote_branch_name 为你选择的远程分支的名

    2024年02月08日
    浏览(30)
  • 如何创建远程 Git 分支?

    我创建了一个本地分支。如何将其推送到远程服务器? 更新:我写了一个simpler answer for Git 2.0 here。 一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会 首先,创建一个新的本地分支并检查它: 将远程分支推送到远程服务器时会自

    2024年02月02日
    浏览(37)
  • git 如何查看本地分支和远程分支映射关系

    可以使用以下命令查看本地分支和远程分支映射关系: 该命令会显示所有本地分支及其对应的远程分支。输出的格式类似于: 在以上示例中, master 分支的上游分支是 origin/master ; develop 分支的上游分支是 origin/develop ; feature-branch 分支的上游分支是 origin/feature-branch 。 其中

    2024年02月16日
    浏览(33)
  • git 如何创建分支并且同步到远程

    要在 Git 中创建分支并将其同步到远程,您可以按照以下步骤: 命令 git branch 可以用来列出本地所有的分支。使用以下命令创建一个新的分支,并切换到该分支: 这个命令相当于执行了两个 Git 命令: 现在你就可以在新的分支上开发,并提交更改。 一旦分支已经被创建并有

    2024年02月11日
    浏览(31)
  • 如何删除本地和远程的 Git 分支

    我们利用git进行项目管理时,常常需要删除分支,分支分为本地分支和远程分支,本文主要介绍如何删除本地及远程分支。 要删除本地的Git 分支,请按照以下步骤操作: 首先,确保你不在要删除的分支上。可以使用git checkout命令切换到其他分支。例如,切换到 master 分支:

    2024年02月05日
    浏览(32)
  • git 如何切换远程分支到本地进行开发

    正文: 在协作开发或个人项目中,我们通常会使用Git进行版本控制,并针对不同的功能或修复需求创建不同的分支。有时,我们可能需要在本地进行开发或修改,而不希望直接修改远程分支。在这种情况下,我们可以切换远程分支到本地,以便在本地创建一个与远程分支相对

    2024年02月08日
    浏览(41)
  • git在本地分支完成开发后,如何推到远程分支上

    今天人生第一次阿,我把云哥分给我的小活儿完成,并且成功推到了远程分支上,当然在这之中离不开我家大宝难得给予我的耐心和一如既往的巨大帮助。在此,作为git小白的我,有义务也有责任,把我的这个过程记录下来,帮助到那些和我一样git会看不会用的小白。更多的

    2024年02月15日
    浏览(31)
  • git如何切换到已有分支(切换到远程库中已有分支)

    1、先查看本地分支,可以看到目前位于 master 分支,本地另外一个分支是 dev 2、切换到dev分支 通过 git branch 可以看到目前位于dev分支了 1、查看远程库中已有分支,从图中找到自己想要切换的分支名。( remotes/origin/dev , remotes 表示是远程库, origin 表示远程库的名字, dev 表

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包