git的远程分支是干啥的,和本地的有什么区别?

【全解析 | PTA】浙大版《Python 程序设计》题目集-第一章 Python浙大版PTA题解 阅读详情
AI摘要

本文详细解释了Git中远程分支的概念,包括远程分支的作用、如何通过git fetch和git pull命令从远程仓库获取代码,以及如何使用git push命令将本地分支推送到远程仓库。此外,还介绍了如何设置本地分支与远程分支的关联。

不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误。

我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支。然后git提示我们可以运行下面这行代码来设置远程的上游,这样我们就可以push成功了。

当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功了。比如这样:

那么这是什么原因呢?这个origin分支又是什么意思呢?我们今天就来讨论一下这个问题。

远程分支

远程分支其实就是远程代码仓库当中的分支,比如我们的repo如果是存在github的,那么这个远程仓库就是github,如果是存在gitlab的,那么这个仓库就是gitlab,如果是其他的仓库也是一样的道理。

当我们在使用git clone的时候,git会自动地将这个远程的repo命名为origin,拉取它所有的数据之后,创建一个指向它master的指针,命名为origin/master,之后会在本地创建一个指向同样位置的指针,命名为master,和远程的master作为区分。

也就是说,origin的含义指的是远程的仓库。它只是一个标记,就和默认分支叫做master一样,本身并没有特别的含义。如果我们愿意也可以起其他的名字,但是一般没有人这么干。比如我们在clone的时候可以添加一个参数-o给远程的repo起一个别名:

git clone -o chengzhi

这样一来,远程的这个repo就会被命名为chengzhi,代替原本的origin。但是这样除了装逼和增加成本之外,没有任何用处,不推荐这么干。

操作命令

还记得我们之前在介绍git的时候曾经说过远程repo的作用,就是为了防止本地的代码错乱,所以在远程留一份备份。这样即使我们的代码完蛋了,至少还可以找到备份。

所以远程的repo最大的作用就是保留备份,既然要保留备份,那么我们本地和远程的代码交互肯定是免不了的。大家可能都大概知道git pull从远程拉取,git push推送到远程,但是对于这其中的细节可能不太清楚。之前没有详细介绍过远程分支,所以也没办法深入,我们今天刚好聊到这个话题,正好好好说道说道。

代码拉取

我们先说代码拉取,说到代码拉取大家的第一反应可能是git pull。但是其实git pull并不是严格意义上的代码拉取命令,至少它还不是最细粒度,其实还有一个比git pull更加细粒度的操作。它就是——git fetch。

实际上git fetch才是真正的代码拉取的操作,它的作用是将远程的改动同步到本地。当我们执行git fetch origin的时候,这里的origin指的是远程的名字,如果你有多个远程的话要指定的话需要加上,否则可以不写。它会把远程所有的改动和分支都拉取到本地,命名为origin/xxx。origin的分支我们用git branch是看不到的,它只能看到本地的分支名,如果想要查看可以使用git branch -r。

当我们使用git checkout切换过去的时候,可以不必加上origin,git会自动生成一个本地的分支指针,也指向同样的节点。它相当于我们执行了git checkout -b test origin/test。说到这里就需要提一下git pull和git fetch的区别了,这两者从表面上来看都是拉取远程的改动。但是两者针对的范围不同,git fetch针对远程的所有改动,而git pull只针对当前分支对应的远程分支。另外git pull执行之后会将远程的改动merge到本地的分支,也就是说它其实多了一步merge的操作。

代码推送

说到代码推送回到了我们开头的那个问题,什么情况下git push就可以,什么情况下需要加上origin呢?

这里涉及一个机制就是本地的分支是不会自动和远程同步的,比如远程有人创建了一个test分支,我们拉取到本地会叫做origin/test。我们也可以自己创建一个test分支,和它井水不犯河水。这也是为了方便,如果直接用名称映射的话,可能会有潜在的冲突。并且由于可能会存在多个远程repo,所以我们push的时候也会有多种选择。

最完整的push命令是应该写成这样的:

git push origin test:cz/test

我们注意到这里用了一个奇怪的写法test:cz/test,它的意思是说将本地的test分支推送到远程作为cz/test分支。如果我们想要本地的名称和远程一样,我们可以省略简写成:git push origin test。

如果我们设置过当前test分支的上游是远程的test,或者本地的test就是从origin拷贝过来的,那么我们可以直接git push,它会自动将本地的分支与远程关联上,会方便很多。实际上我们大多数的push操作都是这么进行的。将本地分支和远程建立映射可以使用这个命令:

git branch --set-upstream-to master origin/master

它表示的是将本地的master和远程的master进行关联,设置过关联之后我们只需要git push和git pull就可以更新和推送这个分支了,会方便很多。

关于远程分支还有一些内容我们没有涉及,比如如何跟踪远程的分支,如何删除等等。由于这些内容几乎用不到,我们即使强行记住了到时候也会忘记,所以就不多赘述了。

今天的文章就到这里,衷心祝愿大家每天都有所收获。如果还喜欢今天的内容的话,请来一个三连支持吧~(点赞、关注、转发)

原文链接,求个关注

逆向工程师视角:拆解DataDome滑块验证码的3层防护机制与绕过思路 本文从逆向工程师视角,深入剖析DataDome滑块验证码的三层核心防护机制。第一层通过动态加密参数实现会话绑定与抗重放;第二层采集TLS指纹、鼠标轨迹动力学等多维行为数据进行一致性验证;第三层则是基于机器学习的后端异步风险决策引擎。文章不仅拆解了其技术原理,更分享了模拟、钩取等超越单纯工具调用的底层分析与绕过思路。 阅读详情

相关推荐

QTabWidget动态标签页管理:从代码创建到UI设计的实战指南

本文深入探讨了QTabWidget动态标签页管理的实战技巧,涵盖从纯代码创建到UI设计器布局的两种核心方法。详细讲解了如何动态添加、插入、关闭标签页,并管理其内容与生命周期。文章还提供了标签页精细化控制、界面优化(如设置图标、样式表)以及构建简易多文档编辑器的进阶实战案例,帮助开发者灵活应对数据监控、多文档编辑等复杂界面需求。

omega的博客 863

Git中的五种分支详解及常用命令,rebase和merge的区别

git中本地分支,远程分支,远程跟踪分支,跟踪分支,上游分支的理解

dxh9231028的博客 1836

LABVIEW学习之MODBUS-TCP通讯

LABVIEW学习之MODBUS-TCP通讯 1,MODBUS-TCP通讯介绍: MODBUS通讯是工业上面经常用到的一种通讯协议。该协议的原理及介绍不在此累述,下面直接介绍LABVIEW对此协议的应用。 2,MODBUS通讯所需的函数: 安装了DSC模块之后可以在数据通信内找到相关函数 3 ,主VI 主要思路就是使用状态机来进行连接 读取 写入 断开。使用枚举类型来选择状态: 1,连接 2,写入多个M继电器: 3,写入单个M继电器 4,写入双字节D...

风动9527的博客 2万+

11.Git分支-远程跟踪分支的概念、多个远程仓库的使用

1.远程跟踪分支的概念   远程引用是对远程仓库的引用,包括分支、标签等等。 1.可以通过git ls-remote <remote>来获得远程引用的完整列表 2.git remote show <remote>来获取远程分支的更多相关信息。 如下图所示,运行git remote show origin可以得到有哪些远程分支,pull和pu...

weixin_30305735的博客 259

【ADCU详解】PMIC电源管理集成电路详解

自动驾驶域控制器(ADCU)中的电源管理集成电路(PMIC)是高度集成的关键部件,负责为计算核心、传感器等提供高效稳定的多路电源。其核心特点包括:符合车规AEC-Q100标准、支持功能安全ASIL等级、精确的时序控制及强抗干扰能力。PMIC由开关稳压器、LDO、时序控制器、监控保护电路等模块组成,通过分层电源树框架实现电能分配。设计需考虑效率、功率密度、噪声性能等关键维度,底层基于Buck转换器和LDO原理工作。使用中需满足严苛的车规环境要求,并通过静态/动态测试及故障注入测试进行验证,确保系统可靠性和安全

qq_40844444的博客 841

YOLOv11改进 | 主干/Backbone篇 | 利用RT-DETR主干网络PPHGNetV2助力yolov11有效涨点(轻量化目标检测网络)

本文给大家带来利用RT-DETR模型主干HGNet去替换YOLOv11的主干,RT-DETR是今年由百度推出的第一款实时的ViT模型,其在实时检测的领域上号称是打败了YOLO系列,其利用两个主干一个是HGNet一个是ResNet,其中HGNet就是我们今天来讲解的网络结构模型,这个网络结构目前还没有推出论文,所以其理论知识在网络上也是非常的少,我也是根据网络结构图进行了分析(精度mAP提高0.05)。YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备​目录一、本文介绍。

Snu77的博客 3719

Git-远程分支,远程跟踪分支,跟踪分支的区别

本文转自:点击打开链接 最近在看git pro 3.5远程分支一节,结果被其中的远程分支,远程跟踪分支,跟踪分支这三个概念搞得有点困惑,看了几遍又结合英文版看了看,才明白其的区别以及其与本地分支的关系,在此说明一下。 远程分支 远程分支对应的英文为remote branch,其就是在远程仓库的普通分支,比如远程仓库上的master,自己在远程仓库创建的分支,以及自己推送到远程仓库

zhuyucheng123的专栏 1万+

YOLO26 改进 | 基于特征蒸馏 | 知识蒸馏 (Response & Feature-based Distillation)

本文系统介绍了YOLO26中的知识蒸馏技术,包含五大核心方法:基于响应的蒸馏(学习分类概率)、基于特征的蒸馏(学习中间层表示)、基于关系的蒸馏(学习特征关联)、通道维度蒸馏(CWD)和前景背景分离蒸馏(FGD)。文章深入解析了每种方法的数学原理与实现细节,并提出动态训练策略,包括一致性匹配和蒸馏权重退火机制。通过教师模型向学生模型传递"暗知识",在保持模型轻量化的同时逼近大模型性能。配套代码支持模块化组合不同蒸馏方法,为YOLO26模型压缩提供了一套完整的解决方案。

weixin_51988935的博客 269

git 远程分支与本地分支

前言 远程仓库上只有 1 个 master 分支。 复制远程仓库的地址。 3. 克隆远程仓库到本地。 一、 注意:本地的 head 和 master 文件都存在,但是 remote 的 master 信息是保存在文件 .git/packed-refs 中。 可以看到,当前 HEAD 指针指向本地仓库的 master 分支。同时远程仓库的 mater 分支的最新 commit 和本地仓库 master 分支的 commit 一样。 但是注意:origin/master, origin/HEA

weixin_42109053的博客 4683

基于Python的军事装备信息爬虫实战:Scrapy+Playwright+智能反反爬技术

本文将详细介绍如何使用Python构建一个高效的军事装备信息爬虫系统。我们将从基础的HTTP请求开始,逐步深入到使用Scrapy框架、Playwright浏览器自动化以及最新的反反爬技术。文章包含完整的代码实现、性能优化策略以及数据处理方案,旨在为读者提供一个全面的军事信息爬取解决方案。关键词:Python爬虫、军事装备、Scrapy、Playwright、反反爬。

2201_76125261的博客 1154

手把手教你学PCIE(1.38)--基本概念:ATU(地址转换单元)

ATU(Address Translation Unit)是一种硬件单元,用于在PCIe系统中进行地址转换。它将设备的本地地址(外部地址)转换为系统内存或配置空间中的全局地址(内部地址),反之亦然。ATU的工作原理:通过地址匹配和转换,确保事务能够在不同的地址空间之间正确路由。配置寄存器:通过配置寄存器来设置地址转换规则。应用场景:地址空间隔离、访问控制、动态地址管理、虚拟化和多租户。

MHD0815的博客 2053

Git本地分支与远程分支的追踪关系

序言 测试环境:ubantu14、window10 读本文需要用到的操作基础 注:以下操作命令主要与分支有关。且认为本地master为当前分支,dev为要新建的分支。 从当前分支切换到‘dev’分支: git checkout dev 建立并切换新分支: git checkout -b 'dev' 查看当前详细分支信息(可看到当前分支与对应的远程追踪分支): git branch ...

Daioo 随笔 3万+

SolidWorks 小车底盘 装配体

通过制作小车底盘了解solidworks装配体的部分知识

及时总结 2226

谈谈git的远程分支是干啥的,和本地的有什么区别?

不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误。 我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支。然后git提示我们可以运行下面这行代码来设置远程的上游,这样我们就可以push成功了。 当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功了。比如这样: 那么这是什么原因呢?这个origin分支又是什么意思呢?我们今天就来讨论一下这个问题。 远程分支 远程分支其实就是远程代码仓库当中的分支,比

公众号:【伤心的辣条】 1522

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

git checkout 远程分支_git的远程分支是干啥的,和本地的有什么区别?

不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误。我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支。然后git提示我们可以运行下面这行代码来设置远程的上游,这样我们就可以push成功了。当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功了。比如这样:那么这是什么原因呢?这个origin分...

weixin_39548776的博客 762

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

git idea 如何删除本地分支_git的远程分支是干啥的,和本地的有什么区别?

不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误。我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支。然后git提示我们可以运行下面这行代码来设置远程的上游,这样我们就可以push成功了。当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功了。比如这样:那么这是什么原因呢?这个origin分...

weixin_32014283的博客 1579

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

git checkout 远程分支_原创 | git的远程分支是干啥的,和本地的有什么区别?

点击上方蓝字,关注并星标,和我一起学技术。不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误。我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支。然后git提示我们可以运行下面这行代码来设置远程的上游,这样我们就可以push成功了。当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功...

weixin_39756445的博客 1823

拉取远程分支到本地分支_git的远程分支是干啥的,和本地的有什么区别?

不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误。我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支。然后git提示我们可以运行下面这行代码来设置远程的上游,这样我们就可以push成功了。当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功了。比如这样:那么这是什么原因呢?这个origin分...

weixin_39640543的博客 434

分支看不到_git的远程分支是干啥的,和本地的有什么区别?

不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误。我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支。然后git提示我们可以运行下面这行代码来设置远程的上游,这样我们就可以push成功了。当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功了。比如这样:那么这是什么原因呢?这个origin分...

weixin_34163020的博客 271

看待php中git的远程分支是干啥的,和本地的输出的区别

不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误。 我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支。然后git提示我们可以运行下面这行代码来设置远程的上游,这样我们就可以push成功了。 当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功了。比如这样: 那么这是什么原因呢?这个origin分支又是什么意思呢?我们今天就来讨论一下这个问题。 远程分支 远程分支其实就是远程代码仓库当中的分支,比如我

m0_54349408的博客 204

git 创建新分支并关联远程分支_原创 | git的远程分支是干啥的,和本地的有什么区别?...

点击上方蓝字,关注并星标,和我一起学技术。不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误。我们把日志里的英文翻译过来是说,我们当前的分支没有设置任何上游分支。然后git提示我们可以运行下面这行代码来设置远程的上游,这样我们就可以push成功了。当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功...

weixin_29137997的博客 725

git学习之本地分支与远程分支

Git是目前最先进的分布式版本控制系统,常被用于代码版本管理。在实际使用中,分支是Git一个十分常用的特性,相较于其他版本控制系统(Version Control System, VCS ),git的分支管理十分轻量且快速。这主要得益于其底层的设计,很多旧的VCS的分支是对某个版本的整个拷贝,因此新增、删除、更改分支的速度十分缓慢;而Git的分支实际上是一个指向某个版本的指针,对分支的增删改操作就相当于对指针的增删改,因此十分快速轻量。 git是分布式的,每一份clone都是一个完整的版本库,因此可以把当前

暖暖2333的专栏 5831

Git 切换分支,拉取分支,删除本地分支和删除远程分支代码指令操作\合并指定内容到某分支

git与github的区别:git可以认为是一个软件,能够帮你更好的写程序,github则是一个网站,这个网站可以帮助程序员之间互相交流和学习。 git clone to ... 从远程克隆下来到本地 git pull origin dev(远程分支名称) 把远程代码拉下来到本地 git status 查看状态 git add . 全部添加 git commit -m '修改日志'...

林中明月间丶 5万+

如何比较本地git分支与其远程分支?

如何查看本地分支和远程分支之间的diff ?

asdfgh0077的博客 3万+

彻底理解git 本地分支与远程分支,以及git pull与git fetch的区别, 以及git status输出的“Your branch is behind xxx”

当clone一个远程repo之后,默认会新建一个master或main的本地分支。比如: 可以看到本地默认只建了一个main分支,剩下的都是远程分支。可以在远程分支基础上checkout出一个本地分支来,比如执行命令: 这是一个本地分支develop被创建出来。就是上边输出的名字以remotes/origin/开始的分支。虽然叫远程分支,但是这些分支所对应的commits也是在我们本地的,严格来说应该叫本地的远程分支(有些别扭)。下文说的远程分支都是指这种分支,而不是指远程仓库上的分支。同时我们也

Tom098的博客 1万+

git删除远程分支

1. git删除远程分支 git push origin --delete [branch_name] 2. 删除本地分支区别 git branch -d 会在删除前检查merge状态(其与上游分支或者与head)。 git branch -D 是git branch --delete --force的简写,它会直接删除。 共同点 都是删除本地分支的方法(与删除远程分支命令相独立,要想本地和远程都删除,必须得运行两个命令)。 3. git查看分支: 查看本地分支 git branch 查看远程分支

mandagod的博客 11万+
上一篇: codefroces中的病毒,这题有很深的trick,你能解开吗?
下一篇: 看完就懂,五千字长文带你领略推荐系统
TechFlow
博客等级 码龄7年 347粉丝 276原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值