目录

前言

第一步:安全起见先备份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 这边有什么未提交的

完结撒花❀

更多推荐