Git 获取远程分支

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

问:

遥控器包含各种分支,例如 origin/daves_branch:

$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/master

如何在本地结帐 daves_branch 以跟踪 origin/daves_branch?我试过了:

$ git fetch origin discover
$ git checkout discover

答1:

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

更新:使用 Git 开关

下面写的所有信息都是准确的,但添加了一个新命令 git switch 以简化工作。

如果远程存储库中存在 daves_branch,但本地分支中不存在,则只需键入:

git switch daves_branch

由于您在本地没有分支,这将自动使 switch 查看远程存储库。然后它还将自动设置远程分支跟踪。

请注意,如果本地不存在 daves_branch,您需要先git fetch,然后才能使用 switch。

原帖

您需要创建一个跟踪远程分支的本地分支。以下命令将创建一个名为 daves_branch 的本地分支,跟踪远程分支 origin/daves_branch。当您推送更改时,远程分支将被更新。

对于最新版本的 Git:

git checkout --track origin/daves_branch

–track 是 git checkout -b [branch] [remotename]/[branch] 的简写,其中 [remotename] 在本例中是 origin,而 [branch] 在本例中是 daves_branch 的两倍。

对于 Git 1.5.6.5,你需要这个:

git checkout --track -b daves_branch origin/daves_branch

对于 Git 1.7.2.3 及更高版本,这就足够了(它可能开始得更早,但这是我能很快找到的最早确认):

git checkout daves_branch

请注意,在最近的 Git 版本中,此命令不会创建本地分支,而是会将您置于“分离 HEAD”状态。如果您想要一个本地分支,请使用 --track 选项。

完整的详细信息在这里:3.5 Git Branching - Remote Branches, Tracking Branches

“git fetch” 以确保您的 repo 使用远程引用进行更新,并且“git checkout --track origin/discover”应该足够了。然后,您可以提交到该分支和“git push”以将远程与您的更改同步。

我试过这个并得到“致命:git checkout:更新路径与切换分支不兼容。您是否打算签出无法解析为提交的'upstream/develop'?”。难道我做错了什么?

看起来 git 1.5.6.5 需要这个: git checkout --track -b origin/daves_branch

这让我一团糟,它创建了一个名为 origin/ 的本地分支,它现在与远程分支 origin/ 模棱两可,我不知道如何摆脱疯狂的本地分支!

您需要显式添加本地分支名称,否则 git 会使用完整的分支路径创建一个新的本地分支,如上面的 @AlanMoore 和 @derekmx271 所述:git checkout -b --track daves_branch origin/daves_branch

答2:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

我使用了 fetch,然后是 checkout…

git fetch  :
git checkout 

…其中 是远程分支或 source ref,而 是目前 不存在 本地分支或 destination ref 您想要跟踪并且您可能想要将其命名为与远程分支或源引用相同的名称。这在 的解释中的 options 下进行了解释。

Bash 非常聪明,如果我在远程分支的前几个字母之后按 Tab,它会自动完成第一个命令。也就是说,我什至不必命名本地分支; Bash 会自动为我复制远程分支的名称。谢谢,巴什!

同样如 the answer in this similar Stack Overflow post 所示,如果您不在 fetch 中命名本地分支,您仍然可以在使用 -b 标志检出它时创建它。 也就是说, git fetch 后跟 git checkout -b / 与我最初的答案完全相同。显然,如果您的存储库只有一个远程,那么您只需在 fetch 之后执行 git checkout ,它就会为您创建一个本地分支。 例如,您刚刚克隆了一个存储库,并希望从远程检查其他分支。

我相信 fetch 的某些文档可能是从 pull 逐字复制的。特别是 options 中的 部分是相同的。但是,我不相信 fetch 会永远merge,因此如果您将冒号的目标端留空,fetch 应该什么都不做。

注意:git fetch 是 git fetch : 的缩写,因此不会执行任何操作,但 git fetch 与 git fetch : 相同,应将远程 复制到本地。

我想这仅在您想在本地复制远程分支时才有用,但不一定要立即检查出来。否则,我现在将使用 the accepted answer,它在 checkout description 的第一部分以及稍后在 --track 的解释下的 options 部分中进行了详细说明,因为它是单行的。 嗯… 有点像单线,因为您仍然必须先运行 git fetch 。

仅供参考: 的顺序(来源:目的地)解释了 deleting remote branches 的奇怪的 pre Git 1.7 方法。也就是说,不向目标 refspec 推送任何内容。

这对我来说可以将远程代码放入本地分支。然而,它并没有让我的本地分支跟踪远程分支。

出于某种原因,git fetch remote branch 根本没有为我添加分支头,尽管所有的 refs 都被获取了,所以当我尝试按照接受的答案中的步骤操作时,我得到了 pathspec did not match any file(s) known to git. 的错误,但是rbranch:lbranch 方法有效。有趣的是,它还获取了所有以相同前缀开头的标签,就像它是通配符 (rbranch*)。

Nit: git 不做自动完成,它是 bash shell 做的。

FWIW,我认为这个答案和接受的答案之间的区别在于这个答案告诉你执行 fetch 命令。不过,接受的答案是有道理的,因为 OP 指出他已经进行了提取。这至少是我遇到的问题。

嗨@Honey,正如answer above所述:“显然,如果您的仓库只有一个遥控器,那么您可以在 fetch 之后执行 git checkout 它会为您创建一个本地分支。例如:您刚刚克隆了一个 repo 并想从远程检查其他分支。”同样在 git-checkout docs 中:“如果未找到 但在一个具有匹配名称的远程(称为 )中确实存在跟踪分支,则视为等同于:$ git checkout -b --track /”

答3:

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

如果您尝试“签出”一个新的远程分支(仅存在于远程,而不是本地),这就是您需要的:

git fetch origin
git checkout --track origin/

这假设您想从原点获取。如果不是,请将 origin 替换为您的远程名称。

通常,我使用 git fetch,但问题是 git fetch 和 git fetch origin 有什么区别?

@PingWoo 假设您要获取的分支位于远程 origin 中,git fetch 和 git fetch remote 都会做同样的事情。如果您需要从 origin 以外的远程获取,您可以使用 git fetch 来完成。这种情况很少见,这里只是为了完整起见。

我得到fatal: 'fusedwm/fuse_keybindings-setborderpx-alphabar-transparency-monrules-nowarpresize' is not a commit and a branch 'fuse_keybindings-setborderpx-alphabar-transparency-monrules-nowarpresize' cannot be created from it

答4:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

要检查远程而不是本地存在的 myBranch - 这对我有用:

git fetch --all
git checkout myBranch

我收到了这条消息:

Branch myBranch set up to track remote branch myBranch from origin
Switched to a new branch 'myBranch'

换句话说,您不必写 -t?

我认为这个答案有错误。我最初在没有 -t 的情况下执行命令并得到 You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.,因为没有同名的本地分支。我不得不用 -t 重新运行才能修复。

这对我来说效果很好——我的同事添加了一个新的远程分支,我想将它添加到我的本地存储库中。我一直在取,但没有看到新分支出现在本地。没有意识到我可以运行 checkout 来创建它。谢谢!

取决于 git 版本。最新版本,正如这里其他地方所说,只需要 git checkout 。小心同名的本地分支和远程分支 - 他们会把事情搞砸

--all 绝不是一个好主意,因为它会下载每个分支上的每个文件。这将需要更多的时间和空间。最好具体说明分支名称并像 this

答5:

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

在本地获取分支:

git fetch origin 

移动到那个分支:

git checkout 

不带其他分支

@BenjaminHarel 问题说“获取远程分支”并非所有分支。为此,这可能对您有所帮助stackoverflow.com/questions/10312521/…

使用此 fetch 命令后,所需的分支将在本地计算机上可用。 git checkout -b 'your_branch' origin/'remote branch' 是签出此分支所必需的。

答6:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感文章来源地址https://www.toymoban.com/news/detail-756879.html

使用 git branch -a(本地和远程分支)或 git branch -r(仅远程分支)查看所有远程及其分支。然后,您可以对远程执行 git checkout -t remotes/repo/branch 并创建本地分支。

还有一个 git-ls-remote 命令可以查看该遥控器的所有参考和标签。

git checkout remotes/repo/branch 使 git checkout 查找路径规范,而不是远程存储库。

是的,甚至可以在远程仓库上签出一个分支吗?显然(或者可能不是那么明显),首先获取遥控器,以便您在本地拥有它们。 git book 中有一个很好的部分:git-scm.com/book/en/Git-Branching-Remote-Branches

git checkout -t remote_branch_name 可能是所有答案中最简单和最懒惰的方法。

答7:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

标题和问题混淆了:

Git 获取远程分支

我的同事怎么能专门拉那个分支。

如果问题是,我怎样才能得到一个远程分支,或者我怎样才能 Git 签出一个远程分支?,一个更简单的解决方案是:

使用 Git (>= 1.6.6),您可以使用:

git checkout 

如果未找到本地 <branch_name>,但在一个具有匹配名称的远程中确实存在跟踪分支,则将其视为等效于:

git checkout -b  --track /

See documentation for Git checkout

给你的朋友:

$ git checkout discover
Branch discover set up to track remote branch discover
Switched to a new branch 'discover'

谢谢纪尧姆!我刚刚使用了这个命令并写了一篇关于它的帖子来描述我的确切情况:leniel.net/2014/05/…

按预期工作,谢谢 Guillaume!

答8:

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

要获取远程存在的分支,最简单的方法是:

git fetch origin branchName
git checkout branchName

您可以通过以下方式查看它是否已存在于远程:

git branch -r

这会将远程分支获取到您的本地并自动跟踪远程分支。

这个问题怎么没有更多的赞成票?我可能是错的,但这似乎确实可以解决问题,从远程获取我在本地没有的分支......

答9:

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

利用:

git checkout -b serverfix origin/serverfix

这是一个足够常见的操作,Git 提供了 --track 简写:

git checkout --track origin/serverfix

事实上,这很常见,甚至还有一条捷径。如果您尝试签出的分支名称 (a) 不存在并且 (b) 仅与一个遥控器上的名称完全匹配,Git 将为您创建一个跟踪分支:

git checkout serverfix

要使用与远程分支不同的名称设置本地分支,您可以轻松地使用具有不同本地分支名称的第一个版本:

git checkout -b sf origin/serverfix

现在,您的本地分支 sf 将自动从 origin/serverfix 拉取。

来源:Pro Git, 2nd Edition, written by Scott Chacon and Ben Straub(为便于阅读而删减)

那些速记是一个教训

答10:

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

使用这个简单的命令:

git checkout -b 'your_branch' origin/'remote branch'

答11:

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

[快速回答]

有很多选择,我最喜欢的是:

  • 备选方案 1:
git fetch --all
git checkout YourBranch

使用远程存在但不在本地的分支使用此替代方法。

  • 备选方案 2:
git checkout -b 'YourBranch' origin/'YourRemote'

可能,这是最简单的方法。

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

原文链接:https://www.huntsbot.com/qa/QQA4/git-fetch-remote-branch?lang=zh_CN&from=csdn

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

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

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

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

相关文章

  • Git拉取远程分支到本地

    先在电脑中安装Git。 在想要放置项目的文件夹中【右键】- 【Git Bash Here】 打开Git弹窗。 git init 项目根目录下出现.git文件夹是成功。 git remote add origin git@xxxxx Git项目的路径在【Clone】按钮中获取,SSH或HTTPS格式的都可以。 git fetch origin develop develop是远程仓库上服务的分支名,

    2024年02月15日
    浏览(33)
  • 本地git拉取远程新分支

    相信大部分下小伙伴遇到了过这样的问题,就是说本地不存在xxx分支,但是远程别人创建了一个新分支,需要你去push代码。但是本地没有你也无法切换分支。这时候你就需要从远处将这个分支拉取下来。具体操作流程如下: 前提: 1.查看本地分支 2.查看远程分支  或者查看本

    2024年02月11日
    浏览(43)
  • git拉取远程分支,创建新的分支

    2024年02月15日
    浏览(41)
  • git 拉取远程分支到本地仓库

    查看分支 查看本地仓库的本地分支 查看本地仓库的远程分支 拉取远程分支到本地(未创建本地分支) 拉取远程分支 创建本地分支,将远程分支的代码拉取到本地分支 拉取远程分支到本地(已创建本地分支) 拉取远程分支 切换本地分支 将远程分支的代码拉取到本地分支 如果本

    2024年01月20日
    浏览(41)
  • 本地git操作-之远程分支的拉取

    一、本地文件夹下载git分支内容(首次拉取git代码) 方法一:clone整个git分支 a. 初始化指定目录为本地git仓库 b. 克隆git主分支master c. 使用git命令拉取指定分支 d. 切换其他分支,查看其他分支 e. 切换到目标分支 方法二:拉取某一个分支 a. 初始化 b. 自己要与origin master建立连

    2024年02月08日
    浏览(42)
  • 使用Git Bash拉取github仓库代码(包含分支拉取与切换)

    小白记录一下自己拉取项目的过程 1. 创建一个文件夹,用来存放使用git克隆下来的代码。 2.在此右键打开Git Bash Here。 3.对项目进行克隆,项目地址为github仓库中Code下复制的HTTPS地址。期间可能需要进行身份验证。此时下载了仓库中的master,并创建了本地分支main,且本地分支

    2024年02月16日
    浏览(52)
  • git创建一个本地分支,并从远程分支拉取代码

    Git 是一种分布式版本控制系统,广泛用于管理项目的源代码。它可以追踪文件的修改、记录历史变更、协调多人合作开发,并提供了回滚、分支管理、合并等功能。要创建一个本地分支并从远程分支拉取代码,你可以按照以下步骤进行操作: 首先,确认远程分支存在于远程

    2024年02月14日
    浏览(34)
  • 【Git】Github fork项目后如何拉取其他分支

    【前言】我们在Github里fork了一个仓库后会发现自己的仓库里只有一个分支,就是源仓库的主分支,这个时候我们想在其他分支上贡献代码,应该怎么办呢?因为有时候我们可能会想把修改同步到多个分支。 查看当前分支: 该仓库的主分支为release/2.6,此时我已经切换到了d

    2024年02月15日
    浏览(41)
  • git拉取远程仓库到本地并建立远程分支+各类操作

    我决定自己写一篇文章,不然每次玩git都要找许多文章搞半天才会,很浪费时间!!!!!!!!! 本文包括如何用git将远程仓库拉取到本地、建立远程分支和一些问题的解决方案等,非常之详细!!! 首先在桌面新建一个文件夹,打开该文件夹,点击右键,选择“Git Bas

    2024年02月07日
    浏览(70)
  • Git:从远程仓库拉取最新代码分支合并到本地分支

    在 Git 中,你可以使用 git fetch 和 git pull 命令拉取远程仓库的更新。 git fetch 命令可以让你在合并代码之前查看更新,从而更好地管理你的代码和解决可能的合并冲突。 当然你可以选择在本地创建一个新分支来拉取远程的更新(也可以称之为\\\"临时\\\"分支),然后再将这个新分支

    2024年02月16日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包