首页 SVN-版本控制:深入浅出入门SVN使用
文章
取消

SVN-版本控制:深入浅出入门SVN使用

说在前面

首先讨论一下版本控制的重要性:

  1. 每一个小版本只更新了一个或两个功能,那后面如果出错了,排查错误、进行回滚就可以根据message方便的进行;
  2. 团队协作的时候,必然会出现合作、共同使用代码的情况,比如我们两个人一同更新mainwindow这个文件,那就极可能出现冲突,像我们都在第1000行新写了一个函数,那版本就无法识别到底最后选择哪个,而当这些情况积累起来之后要处理就很困难而且容易出错了,甚至导致覆盖了别人的代码,而覆盖的情况下没有以往多个小版本的信息又很难恢复,所以合作的时候一定要多点merge,多写message,也就相当于交流沟通了;
  3. 所以正常的工作流程就应该是,工作前update同步到最新进度,每工作一会把阶段性成果先add、commit到本地保存,工作结束后再把所有本地版本merge到master中,然后就可以今晚吃鸡啦。 当然,如果遇到大规模重构、大范围更新,导致短期你的代码暂时无法运行,可暂时不merge到master,但也要及时保存到本地,以及update同步master。 update、merge的过程其实也是实时地交流、了解团队进度的一个过程、

实战演习

下面就是常规的操作内容:

  1. 我们共享,进行版本控制仅为源代码,请理解这一点。所以编译,调试的部分不要上传到云端,更不要merge到master中。同理,一些不需要的文件,如xxx.user该类文件记录特定用户的属性,不需要进行共享。不需要共享,又出现在仓库目录下的东西添加到ignorelist即可,参考项目说明文档。

    可以看到这里的.user是没有绿色下标的 因为我添加到了ignore list 。 至于添加ignore的方法,鼠标右键要忽略的文件,找到ignore: 在这里插入图片描述

  2. 每个人仓库根目录应该至于有这两个文件夹,其他文件夹可以删除,也可以不管。 在这里插入图片描述 注意,在我们每个人眼里只有两个文件夹,自己的文件夹和master。我们从master同步所有人的更改,再在自己分支上进行修改,最后合并到master上。 至于从master建立自己分支的方法: 在这里插入图片描述
  3. 每天的工作就是一来先到master update 然后推到你自己的分支 然后在你分支干活 一天结束 然后把你的分支的修改merge 进入 master 大概就是这样: 在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述 注意上述仓库路径。
  4. 关于merge,按照上述图示即可,选择all revisions会拉取对方的所有版本,specific range则挑选具体的版本。每次我们把一次更改推送到云端,就会产生一个版本。
  5. 注意:请妥善处理冲突!有冲突时搞清楚原因,与产生冲突文件的更改者协商,谨慎处理,切勿把别人的工作全部删除。当然删除了之后还可以恢复,不用过于担心。
  6. 请每次Merge到master时填写message,以便大家拉取时能够理解。 在这里插入图片描述
  7. 正式开始工作,(我建议用Qt creator进行编码工作而不是VS,只要下载了Qt都会自带Qt creator,使用VS在目录与组织形式会麻烦很多,涉及大量的ignore,更可能遇到一些不可抗逆的bug…) 点击.pro文件,第一次打开要配置kit,直接点确定即可,然后qmake,run即可运行。然后愉快地进行打码即可。运行有错误时,记住clean,qmake,run三连。 完成阶段性工作后即时commit,merge到master。注意,当添加了新文件后,记得先add,再commit(或者在commit时选择All)。

希望大家习惯这种控制方式.

写在后面

有机会的会再写一篇git和svn的区别(当然这种教程要多少有多少啦),把自己的经验教训总结一下。嗯,继续埋坑。

本文由作者按照 CC BY 4.0 进行授权

OSG学习之路

Qt-统一样式爬的坑(参考统一样式的思路)