svn基础知识⼊门总结(代码)
⽂章⽬录
svn⽣命周期
1. 创建版本库:create
操作创建⼀个新的版本库,版本库⽤于存放⽂件,包括了每次修改的历史。
2. 检出:checkout
操作从版本库创建⼀个⼯作副本,作为开发者私⼈的⼯作空间,可以进⾏内容的修改,然后提交到版本库中。
3. 更新:update
操作更新版本库,将⼯作副本与版本库进⾏同步。因为版本库是整个团队共⽤的,当其他⼈提交了改动,你的⼯作副本就会过期。
4. 执⾏变更:commit
怎么做甜品
检出之后,可以进⾏添加、编辑、删除、重命名、移动⽂件/⽬录等变更操作。当最终执⾏了 commit 操作后,就对版本库进⾏了相应变更。文明养犬倡议书
什么是公倍数
5. 复查变化:status/diff
当你对⼯作副本进⾏了⼀些修改后,你的⼯作副本就会⽐版本库新,在 commit 操作之前使⽤ status/diff 操作复查下你的修改是⼀个好的习惯。
6. 修复错误:revert
如果你对⼯作副本做了许多修改,当时不想要这些修改了,revert 操作可以重置⼯作副本的修改,恢复到原始状态。
坏的反义词7. 解决冲突:merge
合并的时候可能发⽣冲突,使⽤ merge 操作进⾏合并。因为 SVN 合并是以⾏为单位的,只要不是修改的同⼀⾏,SVN 都会⾃动合并,如果是同⼀⾏,SVN 会提⽰冲突,需要⼿动进⾏确认修改,合并代码。其中 resolve 操作可以帮助找出冲突。
8. 提交更改:commit(添加注释)
将⽂件/⽬录添加到待变更列表,使⽤ commit 操作将更改从⼯作副本更新到版本库,提交是添加注释说明,是个好的习惯。
具体
微信密码修改
svn 创建
$ svnadmin
svn 检出操作
$ svn checkout svn://192.168.10.10/zinaer --urname zinaer --password 123456
SVN 解决冲突
1. 使⽤命令查看更改
$ svn diff
Index:
=================================================================== --- (revision 3)
+++ (working copy)
@@ -1 +1 @@
-hello world
+hello world 123
2. 尝试直接提交
$ svn commit -m 'change first'
Sending
Transmitting file data .done
svn: E160028: Commit failed (details follow):
svn: E160028: File '/' iAs out of date
可以看到提交失败
3. 尝试Update再提交
$ svn update
Updating '.':
C
哈士奇幼犬
Updated to revision 4.
Summary of conflicts:
Text conflicts: 1
svn提交
1. 在版本库中添加⼀个⽂件
$ cat README.md
# 简明 SVN 教程
2. 查看状态
$ svn status
README.md
代表 README.md 还没有加⼊版本控制中。
3. add
$ svn add README.md
A README.md
4. commit
$ svn commit -m 'add README.md'
Adding README.md
Transmitting file data .done
Committed revision 6.
提交成功…(感觉很像git)
svn版本回退
1. 随便修改⼀个⽂件
$ svn status
M README.md
2. revert (恢复单个⽂件)
$ svn revert README.md
Reverted 'README.md'
3. revert -R (恢复整个⽬录)
$ svn revert -R zinaer
4. revert -r (恢复⼀个已经提交的版本)
$ svn merge -r 8:7 README.md
svn分⽀
svn分⽀本质上是主⼲的copy,不过分⽀具有版本控制功能,并且和主⼲相对独⽴,最后可以将分⽀合并到主⼲,称为⼀个项⽬。
1. 在本地创建⼀个分⽀
$ ls
branches/ tags/ trunk/
$ svn copy trunk/ branches/zhanbai
A branches\zhanbai
2. 查看状态
$ svn status
A + branches\zhanbai
3. 提交新的分⽀到版本库
svn commit -m 'add zhanbai'
Adding branches\zhanbai
Committed revision 9.
4. 现在我们开始在 zhanbai 分⽀进⾏开发,创建 index.html ⽂件
$ cd branches/zhanbai/
$ ls
< index.html README.md
5. 将 index.html 加⼊版本控制,并提交到版本库中
$ svn status
index.html
$ svn add index.html
A index.html
$ svn commit -m 'add index.html'
Adding index.html
Transmitting file data .done
Committed revision 10.
6. 切换到 trunk 分⽀,并更新,然后将 zhanbai 分⽀合并到 trunk 中
关于荷花的诗词$ svn merge ../branches/zhanbai/
--- Merging r10 into '.':
A index.html
--- Recording mergeinfo for merge of r10 into '.':
G .
7. 此时,trunk 中就多了 index.html ⽂件。然后,将合并号的 trunk 提交到版本库中
$ svn commit -m 'add index.html'
Adding index.html
Committed revision 12.
svn标签
$ svn copy trunk/ tags/v1.0
A tags\v1.0
将在 tags ⽬录下创建 v1.0 ⽬录。
然后查看状态,提交 tag 到版本库中。
$ svn status
A + tags\v1.0
$ svn commit -m 'add v1.0'
Adding tags\v1.0
在线故事
Committed revision 13.
常⽤
1. svn log : ⽤来展⽰svn版本、⽇期、路径
2. svn diff : ⽤来显⽰特定修改的⾏级详细信息
3. svn cat : 取得特定版本的某⽂件展⽰在屏幕上
4. svn list : 显⽰⼀个⽬录或者版本存在的⽂件