Git链接上游仓库

news2024/9/25 9:31:57

技术背景

在Git的操作过程中,一般的组织内部工作模式可以在同一个仓库上的master-develop-feature不同分支上进行开发,也有一些人和外部协作者会通过Fork到自己本地的仓库进行更新的方案。但是对于Fork仓库的更新有一个问题是,如果长期在自己本地更新,有可能会逐渐脱离原始的分支,甚至会产生众多的冲突。那么为了避免在开发过程中遇到众多的冲突,建议大家在开发的过程中定期从远程的原始仓库同步过来。本文要探讨的是,如何跟远程的上游仓库进行同步。

方法一:强制拉取

第一种方法非常的简单粗暴,其实不建议使用,但是如果确实嫌麻烦的人,可以点击下图中的圈圈按钮,直接从原始仓库强制拉取。

之所以不推荐这种方法,是因为在远程拉取的过程中有可能出现冲突,但是因为采取了强制性拉取的策略,所以实际上本地开发的一些内容有可能会在拉取的过程中被覆盖。

方法二:创建远程同步

以下详细介绍下远程仓库同步的方法。首先我们从远程clone一个我们自己Fork的仓库到本地来:

 
$ git clone https://gitee.com/dechin/mindsponge.git
正克隆到 'mindsponge'...
Username for 'https://gitee.com': dechin
Password for 'https://dechin@gitee.com':
remote: Enumerating objects: 7869, done.
remote: Counting objects: 100% (7869/7869), done.
remote: Compressing objects: 100% (2198/2198), done.
remote: Total 7869 (delta 5653), reused 7869 (delta 5653), pack-reused 0
接收对象中: 100% (7869/7869), 34.72 MiB | 1.15 MiB/s, 完成.
处理 delta 中: 100% (5653/5653), 完成.

进入本地目录,查看远程链接:

 
$ cd mindsponge/
$ git remote -v
origin https://gitee.com/dechin/mindsponge.git (fetch)
origin https://gitee.com/dechin/mindsponge.git (push)

可以看到,此时只跟自己Fork的两个仓库有链接,也就是只能pull或者push到origin的这个仓库上面。然后可以使用git remote add的方法添加原始仓库的链接:

 
$ git remote add -t develop remote https://gitee.com/helloyesterday/mindsponge.git

上一步的操作中我们甚至可以使用-t来配置与远程仓库构建链接的指定分支。此时我们再次查看远程链接:

 
$ git remote -v
origin https://gitee.com/dechin/mindsponge.git (fetch)
origin https://gitee.com/dechin/mindsponge.git (push)
remote https://gitee.com/helloyesterday/mindsponge.git (fetch)
remote https://gitee.com/helloyesterday/mindsponge.git (push)

我们发现多了两个名为remote的链接,这个就是我们Fork来的原始仓库。当然,要构建这种远程的链接,需要拥有远程仓库的相关操作权限,如push和fetch等。完成上述操作后,如果我们在本地执行了一些更新,并且已经addcommit过了,那么我们就可以向远程仓库进行push:

 
$ git push origin develop
$ git push remote develop

只要有权限,就两边都可以pull和push。这样一来,我们在本地开发了一定的时间之后,也可以从remote上pull下来最新的代码,在本地解决好相关的冲突之后,push到自己Fork的分支。最后在完成特性的开发之后,再提交一个Pull Request到远程remote的分支上,这样是一个比较合理的Git操作。

总结概要

通常来说,一个Git仓库由内部组织者和外部协作者共同维护。对于内部开发者而言,他们可以通过master-develop-feature模型进行代码开发,在仓库中创建相应的特性分支和开发分支,最后再合入到主分支供大家使用。而对于外部开发者而言,最好的方式是Fork一个仓库到自己本地,然后使用本文介绍的方法二去定期跟远程remote仓库进行同步,避免在长时间的开发周期中遇到一些冲突。

  

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

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

相关文章

【React Native】学习记录(一)——环境搭建

Expo是一套工具,库和服务,可让您通过编写JavaScript来构建原生iOS和Android应用程序。 一开始学习的时候直接使用的是expo。 npx create-expo-app my-appcd my-appnpm run start接下来需要搭建安卓和IOS端(为此特意换成了苹果电脑&#xff09…

AArch64异常模型

概述 AArch64 异常模型指南介绍了 Armv8‑A 和 Armv9‑A 中的异常和特权模型。它涵盖了 Arm 架构中不同类型的异常,以及与异常相关的处理器行为。 这些内容适用于底层代码(例如boot code或kernel)开发人员,对于配置或者管理异常…

【家庭公网IPv6】

家庭公网IPv6 这里有两个网站: 1、 IPV6版、多地Tcping、禁Ping版、tcp协议、tcping、端口延迟测试,在本机搭建好服务器后,可以用这个测试外网是否可以访问本机; 2、 IP查询ipw.cn,这个可以查询本机的网络是否IPv6访问…

ChatGPT把python 的import和from讲明白了

文章目录 1、import:import关键字用于导入整个模块,您可以使用该模块中的所有对象。语法如下:2、from ... import ...:from ... import ... 语法用于从模块中导入特定的对象,而不是导入整个模块。您可以通过这种方式选…

Nginx系列之 一 搭建文件共享服务器

目录 一、概述 二、实现 三、Nginx的限速 3.1 并发限制 3.2 速度限制 Nginx系列之 一 入门安装_开着拖拉机回家的博客-CSDN博客 Nginx系列之 一 反向代理_开着拖拉机回家的博客-CSDN博客 Nginx系列之 一 负载均衡_开着拖拉机回家的博客-CSDN博客 一、概述 Nginx一个高性…

【Docker--harbor私有仓库部署与管理】

目录 一、Harbor 部署1. 部署 Docker-Compose 服务2. 部署 Harbor 服务(1)下载或上传 Harbor 安装程序(2)修改harbor安装的配置文件 3. 启动 Harbor4. 查看 Harbor 启动镜像5. 创建一个新项目1、在虚拟上进行登录 Harbor2、下载镜…

QT连接Mysql数据库

文章目录: 一:准备工作 1.确保QT有Mysql驱动 2.创建数据库和表 二:连接数据库 1.目录结构 2.编辑pro文件 3.编辑.cpp文件 4.运行结果 一:准备工作 1.确保QT有Mysql驱动 这个是QT自己没有的,需要单独下载 不然就…

透过黑马程序员7月就业数据,看下半年经济复苏及数字化人才发展趋势

近日,黑马程序员深圳校区发布了一则就业数据,引得网友围观,其中,Java138期毕业当天就业率达到60.94%,平均就业薪资10148元;Java139期毕业后1个工作日就业率达到了73.13%,平均薪资10505元&#x…

关于anki的一些思考

文章目录 通常情况下选择什么模板制卡?一张填空卡片的填空数量到底要多少才合适? 通常情况下选择什么模板制卡? 通常情况是指知识是以一段文字的形式呈现,而不是这些:单词、选择题、成语等(这些都可以定制…

【机器学习】 奇异值分解 (SVD) 和主成分分析 (PCA)

一、说明 在机器学习 (ML) 中,一些最重要的线性代数概念是奇异值分解 (SVD) 和主成分分析 (PCA)。收集到所有原始数据后,我们如何发现结构?例如,通过过去 6 天…

Java后端开发 —— 记录一个spring入门案例

前言 最近荔枝在转技术栈呢,后端Java零零散散也学了半个月,在一边总结blog输出的同时一遍实操项目。最近学完JavaSE部分的重点之后荔枝来入手spring框架,说起spring其实大家耳熟能详的就想起IoC和AOP了,但在这篇文章荔枝主要还是梳…

Ubuntu22.04 安装Anaconda

文章目录 1.下载Anaconda2.安装Anaconda3.启动环境4.常用命令4.1创建虚拟环境4.2查询当前系统conda虚拟环境4.3挂载虚拟环境4.4退出虚拟环境4.5查看已安装的工具包4.6删除虚拟环境 1.下载Anaconda (1)下载地址:https://mirrors.tuna.tsinghu…

低代码开发重要工具:jvs-flow(流程引擎)审批功能配置说明

流程引擎场景介绍 流程引擎基于一组节点与执行界面,通过人机交互的形式自动地执行和协调各个任务和活动。它可以实现任务的分配、协作、路由和跟踪。通过流程引擎,组织能够实现业务流程的优化、标准化和自动化,提高工作效率和质量。 在企业…

无涯教程-jQuery - jQuery.ajax( options )方法函数

jQuery.ajax(options)方法使用HTTP请求加载远程页面。 $.ajax()返回它创建的XMLHttpRequest。在大多数情况下,您不需要该对象直接进行操作,但是如果您需要手动中止请求,则可以使用该对象。 jQuery.ajax( options ) - 语法 $.ajax( options…

Talk | 卡内基梅隆大博士生侯博涵:MLC-LLM-机器学习编译与在大语言模型上的应用

本期为TechBeat人工智能社区第516期线上Talk! 北京时间7月26日(周三)20:00, 卡内基梅隆大博士生—侯博涵的Talk已经准时在TechBeat人工智能社区开播了! 他与大家分享的主题是: “MLC-LLM-机器学习编译与在大语言模型上的应用”,与…

服务器VNC软件与服务器中Sentaurus TCAD软件相关问题汇总(持续更新中)

目录 license失效问题个人端口的VNC无法连接/系统页面失效(无最小化、关闭等)也可以用该方法重启VNC后端口发生混乱/断电后个人端口无法连接操作的步骤在Centos环境下给Sentaurus TCAD安装编辑器jeditSSH重启VNC rootCentos查看NETMASK,GATWAY,DNS licen…

基于vue3.0实现vr全景编辑器

随着社会的不断发现,现实生活中有很多时候会使用到全景现实,比如房地产行业vr看房,汽车行业vr看车之类的,全景可视化真实还原了现场的场景,真正做到沉浸式体验。 现在我们基于vue3.0版本开发出了一款沉浸式的编辑器&a…

拿捏 ---> 水仙花数+变种水仙花数

文章目录 题目描述(水仙花数)思路代码示例方法一方法二 题目描述(变种水仙花数)思路代码示例 题目描述(水仙花数) 求出0~1000之间的所有“水仙花数”并输出。“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身&a…

ThinkPHP8知识详解:ThinkPHP8特性和功能介绍

ThinkPHP8 是一个开源的 PHP 框架,采用了面向对象编程和 MVC(Model-View-Controller)设计模式,提供了丰富的功能和易于使用的 API,是一个适用于 web 应用开发的高效框架。 ThinkPHP8具有许多强大的特性和功能&#xf…

k8s容器日志收集方案

背景 由于以下容器本身特性和现有日志采集工具的缺陷,开发者在收集Kubernetes分布式集群日志时常常遇到困扰: 容器本身特性: 采集目标多:容器本身的特性导致采集目标多,需要采集容器内日志、容器stdout。对于容器…