🎯 日常必备命令

  1. svn update # 更新代码(= git pull)
  2. svn status # 查看状态(= git status)
  3. svn diff # 查看修改(= git diff)
  4. svn add 文件名 # 添加新文件(= git add)
  5. svn commit -m "说明" # 提交到服务器(= git commit + git push)

📋 完整工作流程

1️⃣ 每天开始工作

  1. cd /home/kinbos/Desktop/GemmyCustomerH5Next
  2. svn update # 拉取最新代码

2️⃣ 修改代码后提交

  1. # 查看改了什么
  2. svn status # 查看文件状态
  3. svn diff # 查看具体改动
  4. # 如果有新文件
  5. svn add 新文件.txt
  6. # 提交(直接到服务器,无需 push)
  7. svn commit -m "修复了登录bug"
  8. # 或只提交指定文件
  9. svn commit 文件名.txt -m "只提交这个文件"

3️⃣ 删除文件(重要!)

  1. # ❌ 错误方式(会被 svn update 恢复)
  2. rm 文件名
  3. # ✅ 正确方式
  4. svn delete 文件名
  5. svn commit -m "删除某文件"
  6. # 或简写
  7. svn rm 文件名
  8. svn commit -m "删除某文件"

为什么 Git 可以用 rm,SVN 不行?

操作 Git SVN
rm file 后提交 git add . 自动检测删除 ✓ svn update 会恢复文件 ✗
正确删除方式 git rmrm + git add . 必须用 svn delete

如果已经用 rm 删了怎么办?

  1. # 方案1:让 SVN 恢复文件(撤销删除)
  2. svn revert 文件名
  3. # 方案2:确认删除(告诉 SVN 你是要删除它)
  4. svn delete 文件名
  5. svn commit -m "删除文件"
  6. # 方案3:批量处理已删除的文件
  7. svn status | grep '^!' | awk '{print $2}' | xargs svn delete

4️⃣ 撤销修改

  1. svn revert 文件名 # 撤销单个文件的修改
  2. svn revert -R . # 撤销所有修改(谨慎使用)

5️⃣ 重命名/移动文件

  1. # ❌ 错误方式
  2. mv 旧名 新名 # SVN 不会跟踪重命名
  3. # ✅ 正确方式
  4. svn move 旧名 新名 # 或 svn mv
  5. svn commit -m "重命名文件"

🌿 分支操作

查看当前分支

  1. svn info | grep URL

切换分支

  1. # 切换到主干
  2. svn switch https://172.16.250.75/svn/GemmyCustomerH5Next/trunk
  3. # 切换到某个分支
  4. svn switch https://172.16.250.75/svn/GemmyCustomerH5Next/branches/分支名

创建分支

  1. # 从主干创建分支(在服务器上创建)
  2. svn copy https://172.16.250.75/svn/GemmyCustomerH5Next/trunk \
  3. https://172.16.250.75/svn/GemmyCustomerH5Next/branches/我的分支 \
  4. -m "创建新分支"

📚 其他常用命令

  1. svn log # 查看提交历史
  2. svn log -l 5 # 只看最近 5 条
  3. svn info # 查看仓库信息
  4. svn cleanup # 清理工作区(遇到锁定问题时使用)

🔥 状态符号说明

  1. svn status 的输出:
  2. ? 新文件(未加入版本控制)
  3. A 已添加
  4. M 已修改
  5. D 已删除
  6. ! 文件丢失(用 rm 删除的)← 需要用 svn delete 处理
  7. C 冲突

⚠️ 遇到冲突怎么办

  1. # 1. 更新时如果有冲突
  2. svn update # 提示冲突
  3. # 2. 手动编辑文件,解决冲突标记 <<<<< ===== >>>>>
  4. # 3. 标记已解决
  5. svn resolve --accept working 文件名
  6. # 4. 提交
  7. svn commit -m "解决冲突"

⚡ Git vs SVN 核心差异

操作 Git(两步) SVN(一步)
提交代码 git commitgit push svn commit
更新代码 git pull svn update
删除文件 git rmrm + git add . 必须 svn delete
移动文件 git mvmv + git add . 必须 svn move

关键区别

  • ⚠️ SVN 的 commit 会直接提交到服务器(= Git 的 commit + push)
  • ⚠️ 删除/移动文件必须用 SVN 命令,不能用系统命令
  • ⚠️ 提交前最好先 svn update 更新代码,避免冲突

💡 一分钟速查

  1. # 日常操作
  2. svn update # ⬇️ 拉取
  3. svn status # 📋 状态
  4. svn diff # 🔍 查看改动
  5. svn add 文件 # ➕ 添加
  6. svn commit -m "msg" # ⬆️ 提交
  7. svn revert 文件 # ↩️ 撤销
  8. # 文件操作(必须用 SVN 命令!)
  9. svn delete 文件 # 🗑️ 删除
  10. svn move 旧名 新名 # 📝 重命名
  11. # 其他
  12. svn log -l 10 # 📜 历史
  13. svn cleanup # 🧹 清理

🎓 快速记忆

在 SVN 中,对文件的操作(删除、移动、重命名)都要用 SVN 命令,不要用系统命令!

  1. # ❌ 千万别这样
  2. rm file.txt # 会被 update 恢复
  3. mv old.txt new.txt # SVN 不知道你改名了
  4. # ✅ 要这样
  5. svn delete file.txt # SVN 知道你要删除
  6. svn move old.txt new.txt # SVN 知道你改名了

你的项目配置

  1. 路径: /home/kinbos/Desktop/GemmyCustomerH5Next
  2. 用户: yfk (已保存密码,无需每次输入)

就这么简单!记住核心原则:文件操作用 SVN 命令,Git 的 add . 在 SVN 里不管用!