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

昆明城乡和住房建设局网站做网站公司的收费多少

昆明城乡和住房建设局网站,做网站公司的收费多少,房产网新房,学校网站建设源代码Git 实战:完整拉取项目所有分支和标签,切换远程仓库,解决保护分支推送冲突“前段时间在工作中,我需要把一个 GitHub 上的项目完整迁移到公司自建的 GitLab 上。看似简单的操作,实际遇到了分支标签拉取不全、远程仓库切…

Git 实战:完整拉取项目所有分支和标签,切换远程仓库,解决保护分支推送冲突

“前段时间在工作中,我需要把一个 GitHub 上的项目完整迁移到公司自建的 GitLab 上。看似简单的操作,实际遇到了分支标签拉取不全、远程仓库切换混乱、推送受保护分支拒绝等多重难题。经过不断摸索和查资料,终于把问题解决了。本文结合我的真实案例,分享给大家,希望能帮你们少踩坑。”


一、项目背景

我们项目源代码托管在 GitHub 上,出于企业安全和管理需求,需要完整迁移到内部 GitLab,保持所有分支和标签完整,并且后续在 GitLab 上进行开发和维护。

关键需求:

  • 本地拉取 GitHub 项目所有分支和标签
  • 切换远程地址为 GitLab 并推送所有内容
  • 处理推送时遇到的远程保护分支不允许强制推送的情况
  • 解决合并时 refusing to merge unrelated histories 报错

二、完整拉取 GitHub 项目所有分支和标签

普通 git clone 只会拉取默认分支(如 main),而且可能标签不完整。正确做法:

# 克隆仓库(带工作目录)
git clone https://github.com/open-webui/open-webui.git
cd open-webui# 拉取所有远程分支引用
git fetch origin "+refs/heads/*:refs/remotes/origin/*"# 拉取所有标签
git fetch --tags# 查看所有本地分支和远程分支
git branch -a
git tag

这样你就完整拥有了 GitHub 上的所有分支和标签。


三、切换远程地址到 GitLab

如果你想将代码推送到 GitLab,需要把远程地址修改为 GitLab 仓库地址。

git remote set-url origin https://gitlab.com/your-namespace/open-webui.git# 验证远程地址
git remote -v

如果你想保留 GitHub 作为另一个远程,也可以这样:

git remote add github https://github.com/open-webui/open-webui.git

以后拉 GitHub 代码用:

git fetch github

推送 GitLab 用:

git push origin --all
git push origin --tags

四、推送时遇到的“拒绝推送受保护分支”

推送 GitLab 的 main 分支时,报错:

! [rejected] main -> main (fetch first)
error: failed to push some refs ...
remote: GitLab: You are not allowed to force push code to a protected branch on this project.

这表示:

  • GitLab 上 main保护分支,默认禁止强制推送,避免误操作覆盖代码
  • 本地和远程分支提交历史不一致,Git 拒绝推送防止丢失远程改动

解决步骤:

  1. 先拉取远程最新代码,合并历史
git pull origin main --allow-unrelated-histories

这条命令允许合并不相关历史,避免 “refusing to merge unrelated histories” 错误。

  1. 解决合并冲突(如果有),提交合并
  2. 推送合并后的代码
git push origin main

五、如果必须强制推送(谨慎操作)

如果你确认需要用 GitHub 的代码覆盖 GitLab 的代码:

在这里插入图片描述

  • 需要管理员取消 GitLab 保护分支的“禁止强制推送”限制,或你有权限自行取消
  • 取消后用:
git push origin main --force
  • 推送完成后,可以再重新开启保护分支

六、总结

这次迁移过程中我学习到了:

  • git fetch --tags 让标签也能完整拉取
  • 保护分支机制对团队协作的重要性,避免误操作强推
  • git pull --allow-unrelated-histories 解决完全无关历史合并
  • 远程仓库切换要小心,最好同时保留多个 remote

希望这篇文章能帮你少走弯路,顺利完成项目迁移。如果你遇到类似问题,欢迎留言交流。

http://www.dtcms.com/a/435339.html

相关文章:

  • LLM 笔记 —— 02 大语言模型能力评定
  • 做网站视频用哪个视频编辑软件网站设计相似侵权吗
  • [特殊字符]灵感补给站 | pinterest 设计灵感分享 UI版面设计3
  • 网站主机一般选哪种的远程访问群晖wordpress
  • Edit Starts找不到Mybatis Framwork依赖
  • 【C++算法】类与对象通用题目解析分享
  • C语言中原子操作(简要)
  • 珠宝行业做网站的好处网站建设平台有哪些 谢谢平台建站
  • OpenOCD 终端使用指令大全
  • JS工具函数与代码优化实战
  • 学生信息管理系统|基于Springboot的学生信息管理系统设计与实现(源码+数据库+文档)
  • 哪些ppt网站是免费的wordpress微信验证码
  • 【P0】Spring 面试篇
  • pyqt 播放视频遮罩显示 时钟
  • Day01_刷题niuke20251002
  • 做宠物商品的网站公司网页首页图片
  • 衡水建设网站长沙房地产网站建设
  • linux进程与服务
  • wordpress订阅会员seo建站技术
  • 医疗AI平台化转型:从单点试点到体系化建设的互操作性与质量控制路径研究(下)
  • JavaScript 数组清空的三种方式
  • 网站云空间和普通空间上海传媒公司官网
  • 网站标题正确书写标准微信公众号登录不上
  • 复制标签页导致的Vue动态路由失效问题解决思路
  • 从零起步学习Redis || 第六章:Redis单线程模式的实现详解
  • 影视公司网站设计河南省建设厅厅长
  • PySide6 新(建)窗口 简单示例
  • 逍遥WEBP图片转换组件XiaoyaoWebp.dll
  • 网站建设公司+长春建设部质监局网站
  • Oracle的connect by level在MySQL中的华丽变身