【随笔】Git 高级篇 -- 远程跟踪分支 git checkout -b | branch -u(三十五)

news2025/1/13 13:13:37

请添加图片描述

  • 💌 所属专栏:【Git】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩 🤩 🤩

请添加图片描述

文章目录

  • 前言
  • 一、远程跟踪分支
      • 1、介绍
      • 2、示范
        • 第一种方法
        • 第二种方法
      • 3、实战
        • (1)第一种方法
        • (2)第二种方法
  • 总结


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【Git】专栏的第三十五篇文章;
  这是今天学习到Git 高级篇 – 远程跟踪分支 💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【Git】 , 此专栏是我是夜阑的狗对Git,Gitee等工具使用过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、远程跟踪分支

  这里给大家推荐一个好用的 Git在线练习地址。在这练习网站里面也有自己的教程,就让我们一步一步跟着教程学习吧,记录下自己的所感所悟。前面已经简单的学习了怎么合并远程仓库,接下来就让我们看看在实际项目过程中是怎么远程跟踪分支的吧。话不多说,让我们原文再续,书接上回吧。

请添加图片描述

1、介绍

  在前几节课程中有件事儿挺神奇的,Git 好像知道 maino/main 是相关的。当然这些分支的名字是相似的,可能会让你觉得是依此将远程分支 main 和本地的 main 分支进行了关联。这种关联在以下两种情况下可以清楚地得到展示:

  • pull 操作时, 提交记录会被先下载到 o/main 上,之后再合并到本地的 main 分支。隐含的合并目标由这个关联确定的。
  • push 操作时, 我们把工作从 main 推到远程仓库中的 main 分支(同时会更新远程分支 o/main) 。这个推送的目的地也是由这种关联确定的!

  直接了当地讲,maino/main 的关联关系就是由分支的“ remote tracking ”属性决定的。main 被设定为跟踪 o/main —— 这意味着为 main 分支指定了推送的目的地以及拉取后合并的目标。
  你可能想知道 main 分支上这个属性是怎么被设定的,你并没有用任何命令指定过这个属性呀!好吧,当你克隆仓库的时候,Git 就自动帮你把这个属性设置好了。
  当你克隆时, Git 会为远程仓库中的每个分支在本地仓库中创建一个远程分支(比如 o/main)。然后再创建一个跟踪远程仓库中活动分支的本地分支,默认情况下这个本地分支会被命名为 main
  克隆完成后,你会得到一个本地分支(如果没有这个本地分支的话,你的目录就是“空白”的),但是可以查看远程仓库中所有的分支(如果你好奇心很强的话)。这样做对于本地仓库和远程仓库来说,都是最佳选择。
  这也解释了为什么会在克隆的时候会看到下面的输出:

local branch “main” set to track remote branch “o/main”

  那我们能自己指定这个属性吗?当然可以啦!你可以让任意分支跟踪 o/main,然后该分支会像 main 分支一样得到隐含的 push 目的地以及 merge 的目标。 这意味着你可以在分支 totallyNotMain 上执行 git push,将工作推送到远程仓库的 main 分支上。

2、示范

  有两种方法设置这个属性,第一种就是通过远程分支切换到一个新的分支,执行:

git checkout -b totallyNotMain o/main

  就可以创建一个名为 totallyNotMain 的分支,它跟踪远程分支 o/main

第一种方法

  闲话少说,咱们先看看演示!我们切换到一个名叫 foo 的新分支,让其跟踪远程仓库中的 main 分支。

git checkout -b foo o/main
git pull

  运行结果如下图所示:

请添加图片描述

  正如你所看到的, 我们使用了隐含的目标 o/main 来更新 foo 分支。需要注意的是 main 并未被更新!git push 同样适用

git checkout -b foo o/main
git commit
git push

  运行结果如下图所示:

请添加图片描述

  我们将一个并不叫 main 的分支上的工作推送到了远程仓库中的 main 分支上

第二种方法

  另一种设置远程追踪分支的方法就是使用:git branch -u 命令,执行:

git branch -u o/main foo

  这样 foo 就会跟踪 o/main 了。如果当前就在 foo 分支上,还可以省略 foo

git branch -u o/main

  看看这种方式的实际的效果…

git branch -u o/main foo
git commit
git push

  跟之前一样, 但这个命令更明确!运行结果如下图所示:

请添加图片描述

  OK!本节我们在不切换到 main 分支的情况下将工作推送到的远程仓库中的 main 分支上。因为这是高级课程, 就不做过多的提示了! 😛

3、实战

  从前面了解到具体的实现的步骤,就可以开始实战啦。这里先给大家说一下这个练习网站的一些使用技巧,

  • help 指令

  执行这个命令后就会有个帮助信息的弹窗。

在这里插入图片描述

  • levels 指令

  执行完这个命令之后就能看到关卡目录了。

在这里插入图片描述

  • 目标

在这里插入图片描述

  注意,这里的目标要实现得一摸一样,才能通过。

  • 开始结构

在这里插入图片描述

(1)第一种方法

  接下来就让我们来看看是怎么操作的吧。

  • Step 1、跟踪远程分支

  首先需要创建新的分支来跟踪 o/main 分支。

git checkout -b side o/main

  很简单吧,运行结果如下图所示:

在这里插入图片描述

  • Step 2、提交

  在本地分支进行一次提交。

git commit

  运行结果如下图所示:

在这里插入图片描述

  • Step 3、拉取合并分支

  这里是最关键的一步,拉取远程分支数据并以 rebase 的方式合并到本地分支中,实际项目过程中可能还需要解一下冲突。

git pull --rebase

  运行结果如下图所示:

请添加图片描述

  • Step 4、推送修改

  将主分支更新至最新状态之后,就可以将本地的修改点上传至远程分支了。

git push

  运行结果如下图所示:

在这里插入图片描述

(2)第二种方法

  除了第一种方法之外,当然也可以先创建新分支,然后用 branch 命令去跟踪远程分支,接下来就让我们来看看是怎么操作的吧。

  • Step 1、创建新分支

  创建新分支 side 为后续跟踪远程分支做准备。

git checkout -b side

  运行结果如下图所示:

在这里插入图片描述

  • Step 2、远程跟踪

  选择本地分支 side 跟踪远程分支。

git branch -u o/main side

  运行结果如下图所示:

在这里插入图片描述

  • Step 3、提交

  在本地分支进行一次提交。

git commit

  运行结果如下图所示:

在这里插入图片描述

  • Step 4、拉取合并分支

  这里是最关键的一步,拉取远程分支数据并以 rebase 的方式合并到本地分支中,实际项目过程中可能还需要解一下冲突。

git pull --rebase 

  运行结果如下图所示:

请添加图片描述

  • Step 5、推送分支

  将主分支更新至最新状态之后,就可以将本地的修改点上传至远程分支了。

git push

  运行结果如下图所示:

在这里插入图片描述

  达成目标之后就会有成功的提示。

在这里插入图片描述


总结

  感谢观看,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

在这里插入图片描述

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:

  • 😀 【LeetCode题解(持续更新中)】
  • 🌼 【鸿蒙系统】
  • 👑 【Python脚本笔记】
  • 🚝 【Java Web项目构建过程】
  • 💛 【微信小程序开发教程】
  • 【JavaScript随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1668899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Github 2024-05-12 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目5Python项目2非开发语言项目2Vue项目1Rust项目1AFFiNE: 下一代知识库 创建周期:649 天开发语言:TypeScript协议类型:OtherSta…

2024最新最全【NMAP】零基础入门到精通

一、Nmap介绍 Nmap(Network Mapper,网络映射器)是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹识别、WAF识别及常见安全漏洞。它的图形化界面是Zenmap&#xff…

AJAX前端与后端交互技术知识点以及案例

Promise promise对象用于表示一个异步操作的最终完成(或失败)及其结果值 好处: 逻辑更清晰了解axios函数内部运作机制成功和失败状态,可以关联对应处理程序能解决回调函数地狱问题 /*** 目标:使用Promise管理异步任…

基于JAVA的微信小程序二手车交易平台(源码)

博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

顺序表、单链表和双链表

2.算法设计题 1.合并递增链表 1.算法分析: 两个链表合并,由于限定不能用额外的存储空间,所以链表比较合适。 算法步骤: 第一步:取出b表中的第一个结点; 第二步:和a表中的结点依次比较&…

全国院校及梯度排序深度解析课(免费下载-帮助更多高考生做出人生重要的选择。)

"全国院校及梯度排序深度解析课"旨在深入探讨全国院校的排名及梯度排序原理。通过系统解析各院校的学术声誉、师资力量、科研水平等因素,帮助学员全面了解院校排名的背后逻辑,为选择合适院校提供理论支持。 课程大小:7G 课程下载…

Electron、QT、WPF三强争霸,该支持谁呢?

Electron、QT、WPF都是跨平台的桌面应用开发框架,都是非常流行的,作为开发者该选用哪个呢?本文从多个角度分析一下。 一、定义 Electron、Qt 和 WPF 都是用于创建桌面应用程序的框架或工具,它们各自有着不同的特点和优势。 Elec…

【3dmax笔记】036:FDD修改器

一、FDD修改器简介 FDD修改器是对模型进行变形处理的命令,FDD后面的数字越大,编辑节点越多,编辑越精细,但是FDD控制点多的同时,模型上的节点也要多才可以。 FFD修改器是一种非常灵活的修改器,可以让我们对模型进行自由的变形操作。通过在FFD修改器中设置变形点,我们可…

力扣HOT100 - 55. 跳跃游戏

解题思路&#xff1a; class Solution {public boolean canJump(int[] nums) {int n nums.length;int maxReach 0;// 正常来说每次至少跳一格&#xff0c;所以最多循环n次for (int i 0; i < n; i) {if (i > maxReach) return false;// 这种情况代表遇到了0&#xff0…

树莓派python开发

树莓派自带thonny 点亮LED灯 import RPi.GPIO as GPIO import time# 设置GPIO模式为BCM GPIO.setmode(GPIO.BCM)# 设置LED引脚 led_pin 18# 设置LED引脚为输出 GPIO.setup(led_pin, GPIO.OUT)# 点亮LED GPIO.output(led_pin, GPIO.HIGH)# 延时2秒 time.sleep(2)# 关闭LED GPI…

机器学习周报第三十八周 iTransformer

文章目录 week38 iTransformer摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构**转置Embedding&#xff1a;****LayerNorm&#xff08;层归一化&#xff09;****Feed-forward network&#xff08;前馈网络&#xff09;****Multivariate-Attention&#xff08;多变量注意…

使用 PXE+Kickstart 批量网络自动装机

前言&#xff1a; 正常安装系统的话使用u盘一个一个安装会非常慢&#xff0c;所以批量安装的技术就出来了。 一、 概念 PXE &#xff08;Preboot eXecute Environment&#xff0c;预启动执行环境&#xff09;是由 Intel 公司开发的技术&#xff0c;可以让计算机通过网络来启动…

无人机+远程控制:卫星通信技术详解

无人机与远程控制技术的结合&#xff0c;为现代科技应用带来了广阔的前景。其中&#xff0c;卫星通信技术作为无人机远程控制的关键技术之一&#xff0c;发挥着至关重要的作用。以下是无人机远程控制中卫星通信技术的详细解析&#xff1a; 一、卫星通信技术的概述 卫星通信技术…

《完美黑暗》重启版6月发布,分析指出开发“没有问题” 状况没那么

易采游戏网5月12日消息&#xff0c;在21世纪初的游戏界&#xff0c;一款名为《完美黑暗》的FPS游戏在N64平台上崭露头角&#xff0c;以其独特的剧情设定和丰富的武器系统赢得了众多玩家的喜爱。然而&#xff0c;这款作品在推出时也并非一帆风顺&#xff0c;受到了不少玩家的吐槽…

C++高精度算法-加法

引子 在C++的运算中,难免会出现很大很大的数,下面是各个关键字的表示范围 但是如果要表示的数超过了long long可以表示的最大值( 2 64 2^{64} 264-1) 怎么办呢? 如果强制表示,就会溢出,这里的溢出大家可以自行百度,反正就是会出一些-5665434之类的数 现在,就要切入正…

后端开发之用Mybatis简化JDBC的开发快速入门2024及数据库连接池技术和lombok工具详解

JDBC 简化JDBC的开发 JDBC仅仅是一套接口 是一套规范 Mybatis是持久层框架 用于简化JDBC的开发 使用Java语言操作关系型数据库的一套API 原始的JDBC程序 package com.bigdate.mybatis;import com.bigdate.mybatis.mapper.UserMapper; import com.bigdate.mybatis.pojo.Use…

易图讯三维电子沙盘-大数据处理服务

易图讯科技10名高级大数据工程师&#xff0c;高效、快速进行POI、DEM、高清卫星影像、地形地貌、路网、矢量地图等海量大数据处理服务。 免费专业提供POI、AOI、DEM、高清卫星影像、地形地貌、路网、矢量地图等海量大数据处理服务。 1年更新2次POI、高清卫星影像。

[通用人工智能] 论文分享:ElasticViT:基于冲突感知超网的快速视觉Transformer

引言: 近年来&#xff0c;视觉Transformer&#xff08;Vision Transformer&#xff0c;简称ViT&#xff09;在计算机视觉任务中的应用日益广泛&#xff0c;从图像分类到对象识别等&#xff0c;均显示出优越的性能。然而&#xff0c;ViT模型也面临一些挑战&#xff0c;特别是在模…

2024最新最全【网络安全】逆向工程教学

逆向工程 以设计方法学为指导&#xff0c;以现代设计理论、方法、技术为基础&#xff0c;运用各种专业人员的工程设计经验、知识和创新思维&#xff0c;对已有产品进行解剖、深化和再创造。 逆向工程不仅仅在计算机行业、各行各业都存在逆向工程。 计算机行业逆向工程 计算…

pytorch单机多卡训练_数据并行DataParallel

1.单机多卡概述 单卡多级的模型训练&#xff0c;即并行训练&#xff0c;可分为数据并行和模型并行两种. 数据并行是指&#xff0c;多张 GPUs 使用相同的模型副本&#xff0c;但采用不同 batch 的数据进行训练. 模型并行是指&#xff0c;多张 GPUs 使用同一 batch 的数据&…