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

请添加图片描述

  • 💌 所属专栏:【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.hqwc.cn/news/678919.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组合模式(Composite)——结构型模式

组合模式(Composite)——结构型模式 组合模式是一种结构型设计模式, 你可以使用它将对象组合成树状结构, 并且能通过通用接口像独立整体对象一样使用它们。如果应用的核心模型能用树状结构表示, 在应用中使用组合模式才有价值。 例如一个场景…

NSSCTF中的web

目录 [第五空间 2021]WebFTP [LitCTF 2023]PHP是世界上最好的语言!! [SWPUCTF 2021 新生赛]PseudoProtocols [LitCTF 2023]导弹迷踪 [NISACTF 2022]easyssrf [第五空间 2021]WebFTP 1.进入页面,发现是登录页面,想到 弱口令&…

不科学上网使用Hugging Face的Transformers库

参考 Program Synthesis with CodeGen — ROCm Blogs (amd.com) HF-Mirror - Huggingface 镜像站 https://huggingface.co/docs/transformers/v4.40.1/zh/installation#%E7%A6%BB%E7%BA%BF%E6%A8%A1%E5%BC%8F 准备 apt show rocm-libs -a pip install transformers python …

FPGA学习笔记(1)——Vivado和HLS

1 Vivado设计 1.1 FPGA基本知识 Xilinx Atrix-7使用6输入LUT结构(0-63)CLB:可配置逻辑块Slice:每个CLB包含2个Slice(包含查找表LUT和8位寄存器REG)布线池:围绕在CLB周围,衔接FPGA的资源调度I/O块&#xf…

ABB RobotStudio学习记录(一)新建工作站

RobotStudio新建工作站 最近遇到 虚拟示教器和 Rapid 代码不能控制 视图中机械臂的问题,其实是由于机械臂和工作站不匹配。以下是解决方法。 名称版本Robot Studio6.08 新建一个”空工作站“; 在目标位置新建一个目标文件夹 C:\solution\test&#xff0…

C/C++ 入门(10)list类(STL)

个人主页:仍有未知等待探索-CSDN博客 专题分栏:C 欢迎来指教! 一、标准库中的list 1、了解 list:是一个双向带头循环链表,不支持随机访问(即下标访问),任意位置的插入删除效率高。 …

大数据毕业设计Python+Django旅游景点评论数据采集分析可视化系统 NLP情感分析 LDA主题分析 bayes分类 旅游爬虫 旅游景点评论爬虫 机器学习 深度学习 人工智能 计算机毕业设计

毕业论文(设计)开题报告 学生姓名 学 号 所在学院 信息工程学院 专 业 指导教师姓名 指导教师职称 工程师 助教 指导教师单位 论文(设计)题目 基于朴素贝叶斯算法旅游景点线上评价情感分析 开 题 报 告…

JavaEE技术之MySql高级-ShardingSphere5(SpringBoot版本:3.0.5)

文章目录 1 ShardingSphere-JDBC读写分离1.1 创建SpringBoot程序1.1.1、创建项目1.1.2、添加依赖1.1.3、创建实体类1.1.4、创建Mapper1.1.5、配置 Spring Boot1.1.6、配置shardingsphere 1.2 测试1.2.1 读写分离测试1.2.2 负载均衡测试1.2.3 事务测试常见错误 2 ShardingSphere…

JSP技术讲解

目录 1、JSP简介 2、JSP体验 3、JSP运行原理 4、JSP基本语法 5、JSP指令 6、JSP内置九大对象 7、JSP标签 8、JSP配置 9、JSP排错 10、总结 在前面的Servlet学习中发现Servlet本质是一个java程序,因此Servlet更加擅长编写程序的业务逻辑,而如果要…

数据结构学习——线性表、顺序表

1.线性表 线性表 ( linear list ) 是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一…

ICode国际青少年编程竞赛- Python-2级训练场-列表入门

ICode国际青少年编程竞赛- Python-2级训练场-列表入门 1、 Dev.step(3)2、 Flyer.step(1) Dev.step(-2)3、 Flyer.step(1) Spaceship.step(7)4、 Flyer.step(5) Dev.turnRight() Dev.step(5) Dev.turnLeft() Dev.step(3) Dev.turnLeft() Dev.step(7) Dev.turnLeft() Dev.…

pytest教程-41-钩子函数-pytest_runtest_teardown

领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了pytest_runtest_call钩子函数的使用方法,本小节我们讲解一下pytest_runtest_teardown钩子函数的使用方法。 pytest_runtest_teardown 钩子函数在每个测试用例执行完成后被调用&…