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

news2024/9/23 23:17:05

目录

背景提示

将当前仓库的一个分支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 master
 
eg:
 
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博客

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

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

相关文章

92、K8s之ingress下集

一、ingress 1.1、两种部署方式 1、ingress------------deployment nodeport ​ daemonset hostnetwork----每台设备只能有一个pod&#xff0c;因为直接使用宿主机的端口&#xff0c;所以只能开启一个pod。 2、ingress------svc------deployment里面的pod&#xff0c;这种…

文件IO编程

文章目录 文件描述符相关系统调用文件有关的系统调用文件操作函数--creat函数文件操作函数--open函数文件操作函数--read函数文件操作函数--write函数文件操作函数--close函数文件操作函数--lseek函数缓冲区的大小对性能的影响 实验&#xff1a;调用系统函数&#xff0c;实现文…

Linux:体系结构和操作系统管理

目录 一、冯诺依曼体系结构 1.问题1 2.问题2 二、操作系统管理 一、冯诺依曼体系结构 本章将会谈论一下对冯诺依曼计算机体系结构的理解。 在2024年&#xff0c;几乎所有的计算机&#xff0c;都遵守冯诺依曼体系结构。 冯诺依曼体系结构是应用在硬件层面的&#xff0c;而硬…

Docker高级管理--Compose容器编排与私有仓库(Docker技术集群与应用)

本文介绍了Docker的三大工具&#xff1a;Docker Machine用于创建和管理Docker主机&#xff0c;Docker Compose用于单引擎模式下的多容器应用部署和管理&#xff0c;而Docker Swarm则是一个集群管理工具&#xff0c;提供微服务应用编排功能。Docker Machine支持在不同环境配置Do…

【代码随想录训练营第42期 Day56打卡 - 图论Part6 - 并查集2 - 冗余连接问题

目录 一、做题心得 二、题目与题解 题目一&#xff1a;108. 冗余连接 题目链接 题解&#xff1a;并查集 题目二&#xff1a;109. 冗余连接II 题目链接 题解&#xff1a;并查集 三、小结 一、做题心得 冗杂连接问题是图论章节应用并查集的经典问题。所有的顶点通过边相…

Redis 篇- 实战项目中使用 Redis 实现经典功能(异步秒杀商品、点赞功能、共同关注的好友、投喂功能)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 使用 Redis 实现异步秒杀 1.1 基于 Lua 脚本判断是否符合条件&#xff1a;库存是否充足、一人一单 1.2 基于 Redis 中的 Stream 实现消息队列 1.3 使用 Java 操作…

Unity Hub自动安装指定版本Unity的Android开发环境

Unity开发Android环境要求SDK、DNK、JDK、Gradle版本都要对才能发布APK&#xff0c;自己去配置很容易出错。Unity Hub可以自动安装指定版本Unity的Android开发环境。 1.安装国内用的UnityHub&#xff08;我这里用的3.3.2-c6&#xff09; 2.找到对应的Unity版本 3.点击【从Unit…

docker管理redis集群

1.拉取redis镜像 docker pull redis拉取完成 [rootlocalhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest a617c1c92774 3 years ago 105MB2.运行redis容器 docker run -itd --name redis-test01 -p 6379:6379…

谈谈PCIe VID、DID、SSID、SSVID背后的智慧

PCIe Vendor ID 想了半天还是觉得从“ID是什么”这个问题开始比较好。那么ID是什么&#xff1f;ID就是身份。那身份又是什么&#xff1f;身份就是一个合理存在&#xff0c;用于区分不同个体。为什么叫“合理存在”呢&#xff1f;如果国家不给你发身份证&#xff0c;你就是黑户…

记一次导入dbf文件后数据为空问题的解决方法

前言 省流&#xff1a;这篇文章最终采用的是更换导出文件格式的方法&#xff0c;看到这里觉得方法不适用的小伙伴可以不用浪费几秒钟看完这篇文章哦。 问题描述 作者使用的是Navicat数据库管理工具&#xff0c;然后在将源数据库的数据表导出为dbf格式文件后&#xff0c;再将…

F110批量付款如何Debug BTE增强(后台JOB的调试方法)

F110批量付款如何Debug BTE增强&#xff08;后台JOB的调试方法&#xff09; SAP系统中的F110&#xff08;Automatic Payment&#xff09;是一个常用的付款程序&#xff0c;在实施过程中&#xff0c;也经常会遇到一些运行的错误&#xff0c;而对于此类的错误&#xff0c;通常的…

基于SpringBoot的租房网站系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot框架 工具&#xff1a;ECLIPSE 系统展示 首页 管理员功能界面 用户信息界面 预约看房界…

动手学深度学习(pytorch)学习记录28-使用块的网络(VGG)[学习记录]

目录 VGG块VGG网络训练模型 VGG块 定义了一个名为vgg_block的函数来实现一个VGG块 import torch from torch import nn from d2l import torch as d2ldef vgg_block(num_convs, in_channels, out_channels):layers []for _ in range(num_convs):layers.append(nn.Conv2d(in_…

线程池原理及改造

目录 一 线程池执行原理 二 线程池改造(一) 三 线程池改造(二) 一 线程池执行原理 首先我们先了解一下线程池里面几个参数&#xff1a; 第一个是核心线程数&#xff0c;第二个是线程池最大线程数。&#xff08;线程池里面的线程分为核心线程和非核心线程&#xff0c;既然核心…

人物化身持有者每月奖励:九月版

世界急需英雄。你准备好响应号召了吗&#xff1f; 穿上你的斗篷&#xff0c;戴上你的面具&#xff0c;用你的风格保卫 The Sandbox 的街道吧&#xff01;本月为人物化身持有者准备的独家奖励是 The Sandbox 超级套装&#xff01; 本月我们将首次向我们生态系统中的所有人物化…

Vulnhub-RickdiculouslyEasy靶机攻略

御剑扫描到ip 一.第一个flag 主机扫描 目录扫描 二.网页信息收集-第二个flag 9090也开放了web服务所以我们在IP地址后面加端口试试&#xff0c;如下图&#xff0c;加上了端口&#xff0c;并且发现了第二个flag&#xff0c;也对第二个flag进行了简单的探索也没有发现什么可以…

Kubernetes上安装Metallb和Ingress并部署应用程序

视频和代码仓库 视频教程地址&#xff1a;https://www.bilibili.com/video/BV1QV4rebEb8 代码仓库地址&#xff1a;https://github.com/xiaohh-me/kubernetes-yaml 网络规划 之前已经写了几篇安装Kubernetes文章&#xff0c;这次来讲讲在Kubernetes上安装Ingress&#xff0c…

【Linux】Linux介绍及CentOS虚拟机环境搭建

内容大纲介绍 文章目录 内容大纲介绍1.计算机简介2.Linux系统介绍3.虚拟化软件介绍4.Linux环境搭建5.扩展_虚拟机的快照6.Linux的目录介绍 1.计算机简介 概述 全称叫电子计算机, 英文名叫Computer, 俗称叫: 电脑, 简称叫: PC, 就是有硬件和软件组成的电子设备. 组成 计算机硬件…

IO复用-epoll基础

文章目录 IO复用认识epollepoll原理重要结构体 epoll的ET、LTepoll高效的原因epoll需要解决的问题对于使用epoll的建议 IO复用 IO等待拷贝 IO复用是一种通过减少等待时间&#xff0c;来提高IO效率的方式。 其原理是通过同时管理多个IO接口&#xff08;文件描述符&#xff09;…

VS2022搭建Linux开发环境

一、VS2022按钮Linux开发组件 双击启动后 选择Linux开发组件 点击修改&#xff0c;开始按钮Linux组件 二、创建新项目 三、远程连接Linux系统 选择工具&#xff0c;点击选项 选择跨平台中的连接管理器&#xff0c;点击添加 配置信息&#xff0c;输入你需要连接到的Linux…