当前位置: 首页 > news >正文

Git使用—把当前仓库的一个分支push到另一个仓库的指定分支、基于当前仓库创建另一个仓库的分支并推送到对应仓库(mit6828)

把学习过程中遇到的Git问题汇总如下(后续学习遇到问题会及时更新此专栏):

Git原理及常用命令小结——实用版(ing......)、Git设置用户名邮箱-CSDN博客

解决git每次push代码到github都需要输入用户名以及密码-CSDN博客

在VScode中使用Git将本地已有文件夹提交到Github仓库以便于使用版本控制进行项目开发-CSDN博客

Git使用—把当前仓库的一个分支push到另一个仓库的指定分支、基于当前仓库创建另一个仓库的分支并推送到对应仓库(mit6828)-CSDN博客

目录

背景提示

将当前仓库的一个分支push到另一个仓库的指定分支

直接基于仓库rep1中的某个分支创建新的分支并将其推送到目标仓库rep2

补充

参考链接


背景提示

        最近打算做一下mit6.828的项目,这个仓库使用问题困扰了自己一段时间,由于6828官方提供的代码有很多分支,克隆下来后如果不解除和原有仓库的关联,可以正常使用,但自己修改代码无法提交,并且不能使用自己的仓库。我希望的是将克隆下来的代码,作为自己的一个仓库,推送到自己Github网站,随后基于Git进行代码分支管理、开发。问题:将克隆的代码和官方仓库解除关联:

git remote rm origin

        执行此操作后本地代码显示没有任何分支,无法切换到对应目录,无法进行后续操作,自己探索,一下。需要实现的功能是创建一个自己的仓库,当需要使用到对应分支时,将官方仓库对应分支拷贝到自己仓库对应分支。

将当前仓库的一个分支push到另一个仓库的指定分支

下面内容转载自:GIT操作:把当前仓库的一个分支push到另一个仓库的指定分支_gitpush到指定branch-CSDN博客

有时候我们想把当前仓库A的一个指定分支1 推给 另一个仓库B的另一个指定分支2,

可以通过2个主要命令git remote xxx 和 git push newOrigin 当前分支:目标分支 完成。

示例
假设有2个仓库rep1和rep2

rep1:当前仓库  rep2:目标仓库

我们想把当前仓库[rep1]的指定分支[branch1]

推给

另一个仓库[rep2]的指定分支[branch2]

具体步骤如下:

1.在当前仓库操作:更新代码库

git pull

2.查看当前仓库origin只有一个,接下来我们要add另一个仓库的origin 

git remote
or
git remote -v(可以看到origin的url)

3.newOrigin:远程仓库名称,可以随便起个方便记忆的,目的是在本地添加一个新的远程链接 

git remote add newOrigin mastereg:git remote add rep2 branch2
or
git remote add rep2 master

        rep2后面是rep2的一个分支,可以指定为master或你要push的目标分支,都可以。执行完命令后可以再次通过git remote or git remote -v查看现在有几个origin,大家可以自行试一试。 

4.为新加的仓库设置上目标仓库的url地址(以下以gitee为例)

git remote set-url rep2 https://gitee.com/greatoak/rep2.git

5.在A的本地仓库进行git push

git checkout 本地分支名
git push <远程主机名> <本地分支名>:<远程分支名>eg:git checkout branch1
git push newOrigin branch1:branch2

        newOrigin是你想push上哪个远程库,branch1是你想push的那个分支,branch2是push到远程的那个分支。

注意,push前先切换到要push的当前分支上,然后再push。

        使用上述命令完成操作后,在仓库rep2拉取创建的推送的分支的最新代码时,会报错:git pull "fatal: 拒绝合并无关的历史"

查了一下这个原因参考:

  • 当你执行 git pull 并遇到错误 "fatal: 拒绝合并无关的历史" 时,这是因为本地分支和远程分支之间的提交历史并不相关(即它们没有共同的祖先提交)。这种情况通常发生在以下几种场景:
  1. 你初始化了一个新的本地仓库,然后试图从一个远程仓库中拉取代码。本地仓库和远程仓库之间没有任何共同的提交历史。
  2. 远程仓库和本地仓库是由不同的历史创建的,比如远程仓库是一个独立创建的项目,而你的本地仓库是从零开始的

         在pull命令后添加 --allow-unrelated-histories参数解决:

git pull origin feat/util --allow-unrelated-histories

直接基于仓库rep1中的某个分支创建新的分支并将其推送到目标仓库rep2

        通过以上操作能够实现自己想要的效果,但又思考了一下,如果我每开发一个对应的分支,都需要关联新的分支到源仓库rep1,随后从源仓库rep1将新的分支推送到目标分支岂不是太麻烦了。

        直接在关联了目标仓库Git的代码中,基于想要的分支创建新的分支,并将其提交到目标仓库中。实现方式参考乳如下:

1、查看源仓库和目标仓库

wt@wt:~/Backend/mit6828/codes/xv6-labs-2020$ git remote -v
origin	git://g.csail.mit.edu/xv6-labs-2020 (fetch)
origin	git://g.csail.mit.edu/xv6-labs-2020 (push)
wt_rep	git@github.com:Wwt15537588047/mit6828.git (fetch)
wt_rep	git@github.com:Wwt15537588047/mit6828.git (push)

        上述仓库origin是mit6.828官方仓库,wt_rep仓库是基于第一种实现方式关联的目标仓库。

2、查看远程源仓库和目标仓库的分支:

git branch -a

3、切换到对应分支:

git checkout origin/lazy ;源仓库的对应分支。

4、 基于源仓库的某个分支创建新的分支:

git checkout -b new-branch

5、提交本地修改:

git add . 和 git commit -m "new-branch"

6、将新分支推送到目标仓库(我这里是wt_rep):

git push wt_rep new-branch。

7、设置跟踪分支:(这一步我直接跳过了)

git push --set-upstream wt_rep new-branch

        以上操作完成后基本实现了基于源仓库rep1的某个分支创建新分支并将新分支推送到目标仓库rep2。此时使用命令git branch --remote从目标仓库拉取所有远程分支并不会出现刚刚新创建的分支。

        按照以下命令从配置的远程仓库拉取所有的分支:(前两条命令只需要执行一条即可)

git fetch origin #从配置的远程仓库origin拉取所有分支
git fetch --all  #从配置的所有远程仓库拉取分支
git branch -a    #获取所有远程仓库和本地仓库的分支的信息

补充

git remote -v     #获取所有远程仓库的信息
git branch        #获取所有本地分支
git branch -r     #获取所有远程分支
git branch -a     #获取所有远程分支和本地分支
git fetch --all   #当维护多个远程仓库时,并且希望获取所有远程的更新时使用
git fetch origin  #仅仅维护一个默认仓库origin,并希望获取origin仓库的更新时使用
git remote prunge origin  #清除本地缓存并重新获取远程分支

        其他Git相关操作请参考笔者其他文章 

参考链接

GIT操作:把当前仓库的一个分支push到另一个仓库的指定分支_gitpush到指定branch-CSDN博客

git pull "fatal: 拒绝合并无关的历史"-CSDN博客

相关文章:

Git使用—把当前仓库的一个分支push到另一个仓库的指定分支、基于当前仓库创建另一个仓库的分支并推送到对应仓库(mit6828)

把学习过程中遇到的Git问题汇总如下&#xff08;后续学习遇到问题会及时更新此专栏&#xff09;&#xff1a; Git原理及常用命令小结——实用版&#xff08;ing......&#xff09;、Git设置用户名邮箱-CSDN博客 解决git每次push代码到github都需要输入用户名以及密码-CSDN博客…...

windows11+ubuntu20.04.6双系统安装

记录win11和ubuntu20.04.6在单个硬盘上安装的主要流程 系统说明 BIOS模式&#xff1a; UEFI 硬盘&#xff1a; 1TB固态 内存&#xff1a; 32GB 步骤 1、 准备两个不小于16GB的U盘&#xff0c;一个用于装Windows&#xff0c;一个用于装ubuntu&#xff0c;注意8G的U盘虽然能够…...

如何通过 PhantomJS 模拟用户行为抓取动态网页内容

引言 随着网页技术的不断进步&#xff0c;JavaScript 动态加载内容已成为网站设计的新常态&#xff0c;这对传统的静态网页抓取方法提出了挑战。为了应对这一挑战&#xff0c;PhantomJS 作为一个无头浏览器&#xff0c;能够模拟用户行为并执行 JavaScript&#xff0c;成为了获…...

ARM驱动学习之8 动态申请字符类设备号

ARM驱动学习之8 动态申请字符类设备号 KernelCode: • 字符设备函数在文件“include/linux/fs.h”中 • alloc_chrdev_region() 是动态分配主次设备号。 • 宏定义MAJOR提取dev_t数据中的主设备号源码&#xff1a; /*** alloc_chrdev_region() - register a range of char dev…...

TCP.IP四层模型

一、TCP/IP模型协议分层 1、应用层&#xff1a; 2、传输层&#xff1a; TCP&#xff1a;传输控制协议 UDP&#xff1a;用户数据报协议 3、网络层&#xff1a; IP: 国际协议&#xff08;IP地址&#xff09; ICMP&#xff1a; 互联网控制消息协议&#xff08;互联网…...

极狐GitLab DevSecOps 功能合集(七大安全功能)

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…...

进阶SpringBoot之异步任务、邮件任务和定时执行任务

SpringBooot 创建 Web 项目 异步任务&#xff1a; service 包下创建 AsyncService 类 Async 异步方法 Thread.sleep(3000) 停止三秒&#xff0c;捕获异常 package com.demo.task.service;import org.springframework.scheduling.annotation.Async; import org.springfram…...

【设计模式-桥接】

定义 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;它通过将抽象部分与实现部分分离&#xff0c;使它们都可以独立地变化。桥接模式的关键在于将类的抽象部分与其实现部分解耦&#xff0c;以便两者可以独立地变化。这种设计模式的一个主要…...

JVM JMM 专题篇 ( 12000 字详解 )

一&#xff1a;JVM 简介 JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java 虚拟机&#xff0c;虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机&#xff1a;JVM、VMwave、Virtual Box&#xff0c;JVM 和其…...

【C++】—— list 模拟实现

【C】—— list 模拟实现 1 list 基础结构2 默认构造3 迭代器3.1 整体框架3.2 成员函数3.3 begin() 与 end() 的实现3.4 operator-> 的实现3.5 const 迭代器3.5.1 const 迭代器为什么命名 const_iterator3.5.2 const 迭代器的实现3.5.3 合并两个迭代器 4 源码 1 list 基础结…...

Redis主要问题

Redis redis是单线程&#xff0c;基于内存操作&#xff0c;所以执行很快。&#xff0c;与网络延迟有关。 还是买早餐的例子&#xff0c;从早餐店买一个包子&#xff0c;首先早餐店得还有包子没有卖完&#xff0c;然后卖出&#xff0c;包子数量-1&#xff0c;重新设定早餐店包…...

vue3 ref的用法及click事件的说明

1、ref可以定义一个简单的属性&#xff0c;也可以是一个复杂的列表、数组等等。 2、为什么要使用 ref&#xff1f;简单的let个变量不行吗&#xff1f;const个变量不行吗&#xff1f; 其实这个跟vue的响应式的系统有关&#xff0c;官方的说明如下&#xff1a; 3、为 ref() 标注…...

通信工程学习:什么是HFC混合光纤同轴电缆

HFC&#xff1a;混合光纤同轴电缆 HFC&#xff08;Hybrid Fiber Coaxial&#xff09;混合光纤同轴电缆是一种结合了光纤与同轴电缆的宽带接入网技术。以下是对HFC混合光纤同轴电缆的详细解释&#xff1a; 一、HFC混合光纤同轴电缆的定义与概述 定义&#xff1a;HFC是一种结合光…...

怎么浏览URL的PDF文件呢

最近发现PDF文件网页端打开就是丑&#xff0c;不知道怎么办 1. 看着实在不舒服&#xff0c;用chorm的插件 然后原本本地用的也是2345pdf阅读器 2. 之后也下载了adobe pdf的桌面阅读器 2345打开是这个样子 这个是现在啦 如果要一些安装包什么的&#xff0c;评论见~ 最…...

【2025届华为秋招机考三道编程题之一】华为校招留学生软件开发工程师-真题机考笔试/(200分)- 跳格子3(Java JS Python C)

华为校招机考的题型&#xff1a; 编程&#xff1a;软件测试工程师&#xff0c;算法&#xff0c;OD岗&#xff0c;三道编程题不限语言【C&#xff0c;Python&#xff0c;Java】 校招&#xff1a;600分 120分钟&#xff0c;100/200/300 社招&#xff1a;400分 150分钟&#xf…...

高性能缓存利器:Caffeine 在 Spring Boot 中的应用

在现代应用程序中&#xff0c;缓存是提高数据检索速度、减少对数据库或其他数据源访问次数的重要手段。Spring Cache 提供了多种缓存实现方式&#xff0c;而在我们的 Spring Boot 项目中&#xff0c;我们选择了 Caffeine 作为默认的缓存库。 Caffeine 简介 Caffeine 是一个基…...

pWnOS的第二种全新解法(ssh私钥破解、webmin漏洞提权)

端口 端口扫描内容请看&#xff1a;vulnhub&#xff08;8&#xff09;&#xff1a;pWnOS&#xff08;还没信息收集就已经成功打点&#xff09;-CSDN博客 打点 ssh登录公钥收集 ./2017.pl 192.168.234.116 10000 /home/vmware/.ssh/authorized_keys 0 ./2017.pl 192.168.234.11…...

Maven入门学习笔记

一、maven介绍 Maven是一款自动化构建工具&#xff0c;专注服务于JAVA平台的项目构建和依赖管理。在javaEE开发的历史上构建工具的发展也经历了一系列的演化和变迁。 管理jar包 当我们使用SSM之后我们就需要使用非常多的jar包 没有maven找jar包非常的麻烦。 使用maven下载…...

linux驱动开发-arm汇编基础

目录 写在前面 1、Cortex-A7 处理器有 9 种处理模式 2、Cortex-A 寄存器组 通用寄存器 1、汇编语法 2、Cortex-A7 常用汇编指令 2.1 处理器内部数据传输指令 2.1.1 传输数据操作类型 1、MOV指令 2、MRS指令 3、MSR指令 2.2、存储器访问指令 2.2.1 LDR指令 2.2.2 …...

【HarmonyOS】鸿蒙头像上传-(编辑个人信息页- 头像上传)+实时数据更新

#效果图 #思路 ##步骤&#xff1a; ###一、利用picker api选择1张图片 实例化选择器参数(使用new PhotoSelectOptions())实例化图片选择器 (使用newPhotoViewPicker() )调用图片选择器的select方法传入选择器参数完成图片选取获得结果 利用picker api选择1张图片 async sele…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...