大家好,欢迎来到IT知识分享网。
(确实不想用svn,奈何一些项目,唉…)
一、取出代码:
svn checkout https://****/branches/svn_test_r201
二、创建分支:
例如:从 branches/svn_test_r201 创建新分支 svn_test_r202 (svn_test_r202,这个目录不要提前创建)
svn copy https://****/branches/svn_test_r201 https://****/branches/svn_test_r202
三、svn add
把readme文件纳入到版本控制中 svn add readme 如果add文件夹,则默认把该文件夹下未纳入版本控制的文件一并纳入控制 svn add doc 如果只想把目录纳入控制,而不想把所有该目录下的文件纳入控制,可以增加non-recursive svn add doc --non-recursive 一次性增加所有(这种情况下会排除non-recursive的doc目录下的文件) svn add * 把doc下的文件也一并纳入控制,增加force参数 svn add * --force 遍历当前目录下的所有未添加的文件,添加到版本控制中 svn add . --no-ignore --force
四、svn commit
添加文件 svn commit -m "add file readme" or svn ci -m "add file readme"
五、log 操作
查看最新的10 个提交版本
看最新的10行 svn log -l 10 看最新的4行,详细 svn log -v --limit 4 滑动看日志 svn log | less 查看版本之间的日志 svn log -r 274090:274093 svn log -r 274093:274090
六、diff 操作
(版本号之前的 “r”,带不带都行)
274903 版本 和上一个版本的差异
cd svn_test_r201 svn diff -c 274903
274901 版本 和274903版本的差异
cd svn_test_r201 svn diff -r 274901:274903
274901 版本 和274903版本的文件差异(后面加文件名)
cd svn_test_r201 svn diff -r 274901:27490 diff.txt
文件的差异
svn diff -r 版本号 文件名 svn diff -r HEAD 文件名 #本地与最新版本的区别
七、merge操作:
假设:有两个分支
分支1:https://****/branches/svn_test_r201
分支2:https://****/branches/svn_test_r202
(如果svn_test_r202有修改,大概率有冲突)
merge 分支2 的代码到 分支1(反之,换个目录,同样操作)
第一种:svn merge from to
例如:合并 svn_test_r202 的所有改变 到 svn_test_r201
cd svn_test_r201 svn merge https://****/branches/svn_test_r202
第二种:svn merge -c 版本号 from to
例如:合并 版本号为 274894 的 svn_test_r202 的改变 到 svn_test_r201
cd svn_test_r201 svn merge -c 274894 https://****/branches/svn_test_r202
第三种:svn merge -r 版本号:版本号 from to
例如:合并 版本号 274891到274893 的 svn_test_r202 的更改 到 svn_test_r201
cd svn_test_r201 svn merge -r 274891:274893 https://****/branches/svn_test_r202
八、代码回滚
回滚到制定的版本上:
svn log 找到最新的版本号,274906
比如:274906 要回滚到 274902
cd svn_test_r201
svn merge -r 274906:274902 https://****/branches/svn_test_r202
九、解决冲突
举例:svn up(出现冲突)
[*****]$ svn up 在 “readme” 中发现冲突。 选择: (p) 推迟,(df) 显示全部差异,(e) 编辑, (mc) 我的版本, (tc) 他人的版本, (s) 显示全部选项:
1、根据选项:e现在编辑 or mc接受我的版本 or tc接受他人的版本;(等于是直接手动解决)
2、或者选择:p 推迟 (以下都是推迟后,纯手动解决)
2.1 推迟后手动修改冲突,并提交(等同于 选项 e)
2.1.1、推迟后打开冲突文件 readme
$ cat sandwich.txt Top piece of bread Mayonnaise Lettuce Tomato Provolone <<<<<<< .mine(下面是本地的修改,<<< 和 === 之间) Salami Mortadella Prosciutto ======= (下面是远程服务器,别人提交的修改,==== 和 >>>> 之间) Sauerkraut Grilled Chicken >>>>>>> .r2 Creole Mustard Bottom piece of bread
2.1.2 、去掉别人的修改,或者保留删除,自己手动合并代码:
Top piece of bread
Mayonnaise
Lettuce
Tomato
Provolone
Salami
Mortadella
Prosciutto
Creole Mustard
Bottom piece of bread
2.1.3、使用命令 svn resolve 移除文件的冲突状态后; 接下来就可以提交修改了
$ svn resolve --accept working readme Resolved conflicted state of 'readme' $ svn commit -m "modify working"
–accept=working :告诉 Subversion 把文件的当前内容作为冲突解决后的状态;
svn resolve 会删除目录下的三个临时文件, 将用户指定的 文件版本作为冲突解决后的最终版。
2.2 全丢弃自己的修改(接受别人的修改,等同于选项 tc)
svn resolve --accept theirs-full readme
2.3 丢弃当前的所有修改 (等效于 2.2的操作,等同于选项 tc)
svn revert readme
2.3 接受本地mine 的更改(等同于 选项 mc )
svn resolve –accept mine-full readme
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30479.html