在 SVN(Subversion)中,代码冲突通常发生在你本地修改了某个文件,而别人也已经提交了对同一文件(甚至同一行)的修改,你在 update 或 commit 时就会遇到冲突。下面系统地讲一下如何解决 SVN 代码冲突。
常见场景:
a.java 的第 10 行并提交a.java 的第 10 行(未 update)svn update → 冲突执行 svn update 后,你可能会看到:
C a.java
并且目录中会出现多个文件:
a.java:合并后的文件(含冲突标记)a.java.mine:你本地的版本a.java.rOLD:冲突前的版本a.java.rNEW:服务器上的最新版本<<<<<<< .mine
int a = 1;
=======
int a = 2;
>>>>>>> .r123
说明:
<<<<<<< .mine 到 =======:你的修改======= 到 >>>>>>> .r123:别人的修改a.java)<<<<<<< / ======= / >>>>>>> 标记然后执行:
svn resolved a.java
最后再提交:
svn commit -m "解决冲突"
svn resolve a.java --accept=working
常见参数:
working:使用你解决后的文件mine-full:完全使用你的版本theirs-full:完全使用服务器版本如果你确定:
svn resolve a.java --accept=mine-full
svn resolve a.java --accept=theirs-full
⚠️ 会丢失另一方代码,慎用
✅ 先 update,再写代码
✅ 小步提交,不长时间不更新
✅ 避免多人改同一文件同一区域
✅ 模块/职责拆分清晰
✅ 提交前先 svn status 检查
❌ 直接删除冲突文件
❌ 不执行 svn resolved 就 commit
❌ 盲目用 theirs-full 覆盖自己代码
如果你愿意,可以告诉我:
我可以给你更具体的操作步骤。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。