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

前端项目同时使用svn和gitee管理代码

目录

前言

第一步:安全起见先备份svn文件夹

第二步:在svn文件夹初始化git

第三步:建立初始化同步

第四步:设置gitee分支跟踪

使用场景

场景1:在svn上修改了代码

场景2:同事在gitee上修改了代码

场景3:两边同时有修改(需要合并)

重要提醒

1、一定要添加 .gitignore 并包含 .svn/

2、两个版本控制系统的是独立的

3、定期检查状态


前言

由于项目是内网svn部署,同事出差驻场无法拉项目,需要创建gitee仓库同步修改代码。

当前本地有svn和gitee两个项目文件夹,每次修改代码都需要粘贴被修改的文件夹,长时间会导致代码混乱。

诉求是同时使用svn和gitee管理代码

第一步:安全起见先备份svn文件夹

# 先复制一份整个 SVN 文件夹作为备份 cp -r 你的svn项目文件夹 你的svn项目文件夹_backup

第二步:在svn文件夹初始化git

cd svn项目文件夹 # 1. 初始化 Git git init # 2. 添加 Gitee 远程仓库 git remote add gitee <你们的Gitee仓库URL> # 3. 设置 .gitignore(避免把不需要的文件提交到 Gitee) # 创建 .gitignore 文件,写入需要忽略的文件,比如: echo "node_modules/" >> .gitignore echo ".svn/" >> .gitignore # 很重要!不要提交 SVN 的元数据

第三步:建立初始化同步

# 1. 把当前 SVN 文件夹的内容添加到 Git git add . git commit -m "初始化导入:从SVN同步" # 2. 拉取 Gitee 上的最新代码(同事提交的) git pull gitee master --allow-unrelated-histories

这里可能会代码冲突,需要:

  • 解决冲突
  • 保留正确的代码(保留当前修改、保留传入修改、合成双方修改)
  • git add .
  • git commit

第四步:设置gitee分支跟踪

# 设置本地 master 分支跟踪 Gitee 的 master 分支 git branch --set-upstream-to=gitee/master master

这样就设置完成了,接下来是使用场景

使用场景

场景1:在svn上修改了代码

# 1. 先用 SVN 提交到内网(正常操作) svn commit -m "我修改了XX功能" # 2. 同步到 Gitee(让同事能拿到) git add . git commit -m "同步SVN修改:XX功能" git push gitee master

搞定!同事就能在gitee上看到修改了

场景2:同事在gitee上修改了代码

# 1. 从 Gitee 拉取同事的修改 git pull gitee master # 2. 把代码同步到你的 SVN 工作目录 # (Git pull 已经自动把文件更新到你的本地了) # 3. 用 SVN 提交到内网 svn commit -m "同步同事的Gitee修改:XX功能"

搞定!不需要手动复制粘贴任何文件!

场景3:两边同时有修改(需要合并)

# 1. 先提交 SVN 修改 svn commit -m "我的修改" # 2. 从 Gitee 拉取同事的修改 git pull gitee master # 如果有冲突,Git 会提示解决 # 3. 解决冲突后 git add . # 标记冲突已解决 git commit -m "合并同事的修改" git push gitee master # 推送到 Gitee # 4. 用 SVN 提交合并后的版本 svn commit -m "合并同事修改后的版本"

重要提醒

1、一定要添加 .gitignore 并包含 .svn/

这样git就不会把svn的元数据提交到gitee,避免把内网信息泄露出去

2、两个版本控制系统的是独立的

  • svn提交记录和内网相关
  • git提交记录和gitee相关
  • 各自保留自己的历史提交记录,互不干扰

3、定期检查状态

git status # 查看 Git 这边有什么未提交的 svn status # 查看 SVN 这边有什么未提交的

完结撒花❀

http://www.jsqmd.com/news/477456/

相关文章:

  • TypeScript 极简指南:那个尖括号 <T> 到底是什么?
  • OpenClaw Channel 对接飞书:从零到一实现企业级 AI 助理
  • 使用 storcli 将 LSI RAID 硬盘从 JBOD 模式改为 RAID 模式
  • 杭州宙宇未来科学技术有限公司靠谱吗?从官方资质看企业实力 - 资讯焦点
  • OpenClaw简介
  • 生成式AI教育公平的五大现实障碍
  • Human IgE His-Tagged Protein:从过敏介质到肿瘤免疫治疗的创新突破
  • 查出5级组织树结构
  • iOS 解决 4.3a【二进制加固】
  • 国产数据库选型实战:MySQL迁移的兼容性、安全与性能落地
  • 使用AsyncOpenAI通过LLM Proxy网关异步调用多种大模型的实践指南
  • 2026年公众号SVG互动排版指南 3款微信编辑器权威测评 - 资讯焦点
  • linux内核高端内存映射-kmap/kunmap
  • 毕业设计实战:基于Spring Boot的家电销售展示平台设计与实现全攻略
  • influxdb(时序数据库)+mqtt(emqx+mqtt客户端)
  • 基于Matlab的数字信号处理音频FIR去噪滤波器探索
  • PowerShell 设置默认读取某个文件夹
  • 计算质谱的进展、挑战与展望
  • 聊聊2026年口碑好的集装袋正规供应商,哪家性价比高 - 工业品网
  • 2026年婚礼邀请函制作复盘:从关键词搜索到版式细节调整
  • 2026年阀门选择,闸阀vs截止阀
  • 5分钟学会!把代码从本地推送到 GitHub,就是这么简单
  • 实战案例十三:HR 招聘自动化 - 简历筛选与面试辅助
  • Unity3d实时读取Modbus RTU数据
  • day112(3.14)——leetcode面试经典150
  • 苹果 MacBook Neo:低价入局,模块化维修开启新战局
  • 2026宝宝辅食锅煮粥哪个牌子好?宝妈实测推荐 - 品牌排行榜
  • 收藏备用|2026年大模型+AI深度影响的专业汇总,程序员/小白入门必看
  • 长沙心理医院就诊指南:真实案例分享与暖心复盘
  • GEO源码搭建从零到一实战教程 完整部署流程与避坑指南全解析