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

一行命令将已克隆的本地Git仓库推送到内网服务器

一、需求背景

我们公司用gitea搭建了一个git服务器,其中支持win7的最高版本是v1.20.6。

我们公司的电脑在任何时候都不能连接外网,但是希望将一些开源的仓库移植到内网的服务器来。一是有相关代码使用的需求,二是可以建设一个内网能够查阅的资料库。

外网的仓库是在不断更新的,我们不但希望下载到当时版本仓库的内容,还要有方法可以同步后续更新的内容。

我们自己也有可能对项目做出修改,但是这一部分是和开源项目不一致的内容,我们不希望这一部分也被推送。或者说是否同步我们希望自己来决定。

所以总共有这3种使用场景:

外网 本地 内网 首次推送 clone push Create 获取外网更新后推送 update pull push Update 本地开发后不影响远端 develop push Not update 外网 本地 内网

二、解决问题

分布式管理为著称的git,自然是可以在无广域网的情况下将本地仓库推送到内网服务器的。但是具体怎么操作呢?

2.1 不可行的方法

使用 git push origin 是常规的做法,但是只能推送本地分支。当然我可以将远端分支先检出到本地同名分支,然后再次推送。但是如果检出之前已经有了本地分支呢?我检出的时候不是破坏了已有的本地分支?

如果使用 git push origin origin/master,会将本地的 origin/master 分支,推送到服务器上的 origin/master 分支,这么做在Git服务浏览器上是看不到的,将来再次克隆的时候也拉不下来。

如果使用 git push origin --mirror 参数推送,会将仓库的所有分支推送到 gitea 服务器上,但是在Git服务器上啥也看不见。我推测这种方式推送是一比一平移,在服务器上存在的 origin/master 分支是看不到的,必须是 master 这样的分支才能在服务器中看到。

如果使用 git clone --bare 命令克隆裸仓库,然后用 git push --mirror 命令推送到内网,这种方法是可行的。但是克隆到本地的裸仓库没有办法继续开发,而且克隆的时候如果不是裸仓库呢?难道要再克隆一遍吗?

2.2 可行的解决方法

前面的方法不可行,是因为我将本地本地分支,推送到了远端本地分支(所以未检出到本地远端分支,推送不到远端)。

或者是将本地远端分支,推送到了远端远端分支(所以在远端服务器上看不到)。

而解决我们的需求,需要将本地远端分支,推送到远端本地分支。

如果在推送命令中添加一个冒号,例如:git push origin master:main,就可以将本地的 master 分支推送到远端的 main 分支。

那么能不能将本地的 origin/master 分支,推送到远端的 master 分支呢:

git push <URL> origin/master:master

运行报错:

git-push

错误提示我们没有使用完整引用名称full refname )。

改为使用完整引用名称,然后将分支名 master 替换成通配符 *,再加上推送标签的参数 --tags

git push --tags <URL> refs/remotes/origin/*:refs/heads/*

就可以把所有本地远端分支、以及标签,一起推送到内网服务器:

git-push-remotes

在网页端查看,已经将所有分支标签全都推送成功:

网页查看

这样做不需要在本地检出或者创建新分支。

但是会把 HEAD 作为一个分支名也推送上去。。唯一的一点遗憾了。

分支列表

三、自动化脚本

我写了一个自动化脚本,命名 git-push-remotes.bat

@echo offREM 读取文件夹名和拼接服务器网址
for %%i in ("%cd%") do set name=%%~ni
set url=http://<URL>/repos/%name%.gitREM 将本地的所有远端分支推送到远端的本地分支上
git push --tags %url% refs/remotes/origin/*:refs/heads/*
echo.pause

将文件复制到已克隆的本地仓库,然后双击运行。

就可以自动获取当前文件夹的名称,拼接成URL,然后推送到同名的内网服务器仓库中。

相关文章:

一行命令将已克隆的本地Git仓库推送到内网服务器

一、需求背景 我们公司用gitea搭建了一个git服务器&#xff0c;其中支持win7的最高版本是v1.20.6。 我们公司的电脑在任何时候都不能连接外网&#xff0c;但是希望将一些开源的仓库移植到内网的服务器来。一是有相关代码使用的需求&#xff0c;二是可以建设一个内网能够查阅的…...

Linux文本处理三剑客(详解)

一、文本三剑客是什么&#xff1f; 1. 对于接触过Linux操作系统的人来说&#xff0c;应该都听过说Linux中的文本三剑客吧&#xff0c;即awk、grep、sed&#xff0c;也是必须要掌握的Linux命令之一&#xff0c;三者都是用来处理文本的&#xff0c;但侧重点各不相同&#xff0c;a…...

AI在线UI代码生成,不需要敲一行代码,聊聊天,上传图片,就能生成前端页面的开发神器

ioDraw的在线UI代码生成器是一款开发神器&#xff0c;它可以让您在无需编写一行代码的情况下创建前端页面。 主要优势&#xff1a; 1、极简操作&#xff1a;只需聊天或上传图片&#xff0c;即可生成响应式的Tailwind CSS代码。 2、节省时间&#xff1a;自动生成代码可以节省大…...

go-zero整合单机版ClickHouse并实现增删改查

go-zero整合单机版ClickHouse并实现增删改查 本教程基于go-zero微服务入门教程&#xff0c;项目工程结构同上一个教程。 本教程主要实现go-zero框架整合单机版ClickHouse&#xff0c;并暴露接口实现对ClickHouse数据的增删改查。 go-zero微服务入门教程&#xff1a;https://b…...

行政工作如何提高效率?桌面备忘录便签软件哪个好

在行政管理工作中&#xff0c;效率的提高无疑是每个行政人员都追求的目标。而随着科技的发展&#xff0c;各种便捷的工具也应运而生&#xff0c;其中桌面备忘录便签软件便是其中的佼佼者。那么&#xff0c;这类软件又如何帮助我们提高工作效率呢&#xff1f; 首先&#xff0c;…...

利用向日葵和微信/腾讯会议实现LabVIEW远程开发

利用向日葵远程控制软件结合微信或腾讯会议的视频通话功能&#xff0c;可以实现LabVIEW的远程开发和调试。通过向日葵进行远程桌面访问&#xff0c;配合视频通话工具进行实时沟通与问题解决&#xff0c;不仅提高了开发效率&#xff0c;还减少了地域限制带来的不便。介绍这种远程…...

SpringBoot 单元测试 指定 环境

如上图所示&#xff0c;在配置窗口中添加--spring.profiles.activedev&#xff0c;就可以了。...

Flutter 中的 SliverOpacity 小部件:全面指南

Flutter 中的 SliverOpacity 小部件&#xff1a;全面指南 Flutter 是一个功能强大的 UI 框架&#xff0c;由 Google 开发&#xff0c;允许开发者使用 Dart 语言来构建高性能、美观的跨平台应用。在 Flutter 的滚动组件体系中&#xff0c;SliverOpacity 是一个用来为其子 Slive…...

源码分析の前言

源码分析路线图&#xff1a; 初级部分&#xff1a;ArrayList->LinkedList->Vector->HashMap(红黑树数据结构&#xff0c;如何翻转&#xff0c;变色&#xff0c;手写红黑树)->ConcurrentHashMap 中级部分&#xff1a;Spring->Spring MVC->Spring Boot->M…...

接口性能测试复盘:解决JMeter超时问题的实践

在优化接口并重新投入市场后&#xff0c;我们面临着一项关键任务&#xff1a;确保其在高压环境下稳定运行。于是&#xff0c;我们启动了一轮针对该接口的性能压力测试&#xff0c;利用JMeter工具模拟高负载场景。然而&#xff0c;在测试进行约一分钟之后&#xff0c;频繁出现了…...

[数据集][目标检测]猕猴桃检测数据集VOC+YOLO格式1838张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1838 标注数量(xml文件个数)&#xff1a;1838 标注数量(txt文件个数)&#xff1a;1838 标注…...

摸鱼大数据——Hive函数7-9

7、日期时间函数 Hive函数链接&#xff1a;LanguageManual UDF - Apache Hive - Apache Software Foundation SimpleDateFormat (Java Platform SE 8 ) current_timestamp: 获取时间原点到现在的秒/毫秒,底层自动转换方便查看的日期格式 常用 to_date: 字符串格式时间…...

python连接数据库

python连接MYSQL、postgres、oracle等的基本操作 python连接mysql MySQLdb MySQLdb又叫MySQL-python &#xff0c;是 Python 连接 MySQL 的一个驱动&#xff0c;很多框架都也是基于此库进行开发&#xff0c;只支持 Python2.x&#xff0c;而且安装的时候有很多前置条件&#…...

能不能接受这些坑?买电车前一定要看

图片来源&#xff1a;汽车之家 文 | Auto芯球 作者 | 雷慢 刚有个朋友告诉我&#xff0c;买了电车后感觉被骗了&#xff0c; 很多“坑”都是他买车后才知道的。 不提前研究&#xff0c;不做功课&#xff0c;放着我这个老司机不请教&#xff0c; 这个大冤种他不当谁当&…...

k8s中pod如何排错?

排除Kubernetes Pod故障通常涉及一系列步骤&#xff0c;以诊断问题并找到解决方案。以下是一些常见的故障排除方法&#xff1a; 检查Pod状态: 使用kubectl get pods查看Pod的状态。如果Pod没有处于Running状态&#xff0c;查看更详细的信息&#xff0c;使用kubectl describe …...

【手撕面试题】Vue(高频知识点二)

每天10道题&#xff0c;100天后&#xff0c;搞定所有前端面试的高频知识点&#xff0c;加油&#xff01;&#xff01;&#xff01;&#xff0c;在看文章的同时&#xff0c;希望不要直接看答案&#xff0c;先思考一下自己会不会&#xff0c;如果会&#xff0c;自己的答案是什么&…...

四、.Net8对接Ollama实现文字翻译(.Net8+SemanticKernel+Ollama)本地运行自己的大模型

.Net8SemanticKernelOllama 一、Semantic Kernel官方定义SK能做什么&#xff1f; 二、基本使用1、普通对话2、使用插件实现文本翻译功能 三、IChatCompletionService、ITextGenerationService、ITextEmbeddingGenerationService 很多情况都有这样的需求&#xff0c;使用自有系统…...

初始C++

感谢大佬的光临各位&#xff0c;希望和大家一起进步&#xff0c;望得到你的三连&#xff0c;互三支持&#xff0c;一起进步 个人主页&#xff1a;LaNzikinh-CSDN博客 文章目录 前言一.引用二.内联函数三.类和对象总结 前言 之前讲c的命令空间和第一个程序的运行&#xff0c;继…...

Chapter 5 Current Mirrors and Biasing Techniques

Chapter 5 Current Mirrors and Biasing Techniques 这一章介绍电流镜 5.1 Basic Current Mirrors MOS工作在饱和区, 表现为一个电流源. 考虑电源变化, PVT波动, 我们会首先产生一路精准电流源, 再复制这路电流. 如何复制呢? 电流转电压再转电流就行了, 如下图所示 考虑到…...

Avalonia Image控件上通过鼠标拖动画出矩形框

注册鼠标事件&#xff1a;首先&#xff0c;你需要注册 Image 控件上的鼠标事件&#xff0c;包括 PointerPressed、PointerMoved 和 PointerReleased。你可以在 XAML 文件或代码中注册这些事件。 <Image PointerPressed"Image_PointerPressed" PointerMoved"…...

Wireshark Lua插件入门

摘要 开发中经常通过抓包分析协议&#xff0c;对于常见的协议如 DNS wireshark 支持自动解析&#xff0c;便于人类的理解&#xff0c;对于一些私有协议&#xff0c;wireshark 提供了插件的方式自定义解析逻辑。 1 动手 废话少说&#xff0c;直接上手。 第一步当然是装上wiresh…...

XXE漏洞简介

目录 漏洞原理 漏洞危害 前置知识 XML简介 DTD简介 DTD的两种声明方式 实体 实体分类 内置实体(Built-inentities) 字符实体&#xff08;Characterentities&#xff09; 通用实体&#xff08;Generalentities&#xff09; 参数实体(Parameterentities) XXE漏洞…...

小白跟做江科大32单片机之蜂鸣器

1.复制之前编写的工程库项目&#xff0c;详细工程库创建过程如下链接&#xff1a; 小白跟做江科大32单片机之LED闪烁-CSDN博客https://blog.csdn.net/weixin_58051657/article/details/139295351?spm1001.2014.3001.55022.按照江科大老师给的图片进行连接蜂鸣器 接线时要用公…...

IsoBench:多模态基础模型性能的基准测试与优化

随着多模态基础模型的快速发展&#xff0c;如何准确评估这些模型在不同输入模态下的性能成为了一个重要课题。本文提出了IsoBench&#xff0c;一个基准数据集&#xff0c;旨在通过提供多种同构&#xff08;isomorphic&#xff09;表示形式的问题&#xff0c;来测试和评估多模态…...

MyEclipse使用教程

MyEclipse使用教程如下&#xff0c;按照以下步骤&#xff0c;您可以逐步熟悉并掌握MyEclipse的基本使用&#xff1a; 一、MyEclipse安装与准备 软件准备&#xff1a; 在使用MyEclipse之前&#xff0c;您需要确保已经安装了JDK&#xff08;Java Development Kit&#xff09;。J…...

TiDB学习9:Ti Cloud简介

目录 1. 为什么选择TiDB 2. 多租户 3. TiDB架构 4. 什么是TiDB Cloud 5. TiDB Cloud Provider Region 6. TiDB Cloud 入门 6.1 在浏览器中打开TiDB Cloud 6.2 创建您的账户 6.3 Developer Tier 与Dedicated Tier 6.3.1 Developer Tier 6.3.2 Dedicated Tier 6.3.2.…...

JavaScript 创建新节点的方法

在 JavaScript 中&#xff0c;可以使用 document.createElement() 方法来创建新的节点。该方法接受一个字符串参数&#xff0c;表示要创建的节点类型&#xff0c;如 "div"、"p" 等。 创建一个新节点的基本步骤如下&#xff1a; 使用 document.createElem…...

在phpstorm2024版里如何使用Jetbrains ai assistant 插件 ?

ai assistant激活成功后&#xff0c;如图 ai assistant渠道&#xff1a;https://web.52shizhan.cn/activity/ai-assistant 在去年五月份的 Google I/O 2023 上&#xff0c;Google 为 Android Studio 推出了 Studio Bot 功能&#xff0c;使用了谷歌编码基础模型 Codey,Codey 是…...

进程间通信(27000字超详解)

&#x1f30e;进程间通信 文章目录&#xff1a; 进程间通信 进程间通信简介       进程间通信目的       初识进程间通信       进程间通信的分类 匿名管道通信       认识管道       匿名管道       匿名管道测试       管道的四种…...

一、大模型推理

https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/README_zh.md 安装 v7.1 https://github.com/hiyouga/LLaMA-Factory/releases/tag/v0.7.1 git clone --depth 1 https://github.com/hiyoug…...