🎯 日常必备命令
svn update # 更新代码(= git pull)svn status # 查看状态(= git status)svn diff # 查看修改(= git diff)svn add 文件名 # 添加新文件(= git add)svn commit -m "说明" # 提交到服务器(= git commit + git push)
📋 完整工作流程
1️⃣ 每天开始工作
cd /home/kinbos/Desktop/GemmyCustomerH5Nextsvn update # 拉取最新代码
2️⃣ 修改代码后提交
# 查看改了什么svn status # 查看文件状态svn diff # 查看具体改动# 如果有新文件svn add 新文件.txt# 提交(直接到服务器,无需 push)svn commit -m "修复了登录bug"# 或只提交指定文件svn commit 文件名.txt -m "只提交这个文件"
3️⃣ 删除文件(重要!)
# ❌ 错误方式(会被 svn update 恢复)rm 文件名# ✅ 正确方式svn delete 文件名svn commit -m "删除某文件"# 或简写svn rm 文件名svn commit -m "删除某文件"
为什么 Git 可以用 rm,SVN 不行?
| 操作 | Git | SVN |
|---|---|---|
rm file 后提交 |
git add . 自动检测删除 ✓ |
svn update 会恢复文件 ✗ |
| 正确删除方式 | git rm 或 rm + git add . |
必须用 svn delete |
如果已经用 rm 删了怎么办?
# 方案1:让 SVN 恢复文件(撤销删除)svn revert 文件名# 方案2:确认删除(告诉 SVN 你是要删除它)svn delete 文件名svn commit -m "删除文件"# 方案3:批量处理已删除的文件svn status | grep '^!' | awk '{print $2}' | xargs svn delete
4️⃣ 撤销修改
svn revert 文件名 # 撤销单个文件的修改svn revert -R . # 撤销所有修改(谨慎使用)
5️⃣ 重命名/移动文件
# ❌ 错误方式mv 旧名 新名 # SVN 不会跟踪重命名# ✅ 正确方式svn move 旧名 新名 # 或 svn mvsvn commit -m "重命名文件"
🌿 分支操作
查看当前分支
svn info | grep URL
切换分支
# 切换到主干svn switch https://172.16.250.75/svn/GemmyCustomerH5Next/trunk# 切换到某个分支svn switch https://172.16.250.75/svn/GemmyCustomerH5Next/branches/分支名
创建分支
# 从主干创建分支(在服务器上创建)svn copy https://172.16.250.75/svn/GemmyCustomerH5Next/trunk \https://172.16.250.75/svn/GemmyCustomerH5Next/branches/我的分支 \-m "创建新分支"
📚 其他常用命令
svn log # 查看提交历史svn log -l 5 # 只看最近 5 条svn info # 查看仓库信息svn cleanup # 清理工作区(遇到锁定问题时使用)
🔥 状态符号说明
svn status 的输出:? 新文件(未加入版本控制)A 已添加M 已修改D 已删除! 文件丢失(用 rm 删除的)← 需要用 svn delete 处理C 冲突
⚠️ 遇到冲突怎么办
# 1. 更新时如果有冲突svn update # 提示冲突# 2. 手动编辑文件,解决冲突标记 <<<<< ===== >>>>># 3. 标记已解决svn resolve --accept working 文件名# 4. 提交svn commit -m "解决冲突"
⚡ Git vs SVN 核心差异
| 操作 | Git(两步) | SVN(一步) |
|---|---|---|
| 提交代码 | git commit → git push |
svn commit ✓ |
| 更新代码 | git pull |
svn update |
| 删除文件 | git rm 或 rm + git add . |
必须 svn delete |
| 移动文件 | git mv 或 mv + git add . |
必须 svn move |
关键区别:
- ⚠️ SVN 的
commit会直接提交到服务器(= Git 的 commit + push) - ⚠️ 删除/移动文件必须用 SVN 命令,不能用系统命令
- ⚠️ 提交前最好先
svn update更新代码,避免冲突
💡 一分钟速查
# 日常操作svn update # ⬇️ 拉取svn status # 📋 状态svn diff # 🔍 查看改动svn add 文件 # ➕ 添加svn commit -m "msg" # ⬆️ 提交svn revert 文件 # ↩️ 撤销# 文件操作(必须用 SVN 命令!)svn delete 文件 # 🗑️ 删除svn move 旧名 新名 # 📝 重命名# 其他svn log -l 10 # 📜 历史svn cleanup # 🧹 清理
🎓 快速记忆
在 SVN 中,对文件的操作(删除、移动、重命名)都要用 SVN 命令,不要用系统命令!
# ❌ 千万别这样rm file.txt # 会被 update 恢复mv old.txt new.txt # SVN 不知道你改名了# ✅ 要这样svn delete file.txt # SVN 知道你要删除svn move old.txt new.txt # SVN 知道你改名了
你的项目配置:
路径: /home/kinbos/Desktop/GemmyCustomerH5Next用户: yfk (已保存密码,无需每次输入)
就这么简单!记住核心原则:文件操作用 SVN 命令,Git 的 add . 在 SVN 里不管用!
