版本控制系统svn和git
版本控制系统
svn使用
svn需要一个服务器,中心化服务器,是并行版本控制,不加锁,但是对同一个文件文件的修改会冲突。
- 1、安装VisualSVN-Server-3.6.4-x64服务器可以在本机,也可以在局域网中的别的服务器机子上,一顿next就可以。
完成后,新建仓库repository,添加文件,新建用户users, - 2、本机安装TortoiseSVN-1.9.7.27907-x64客户端。
安装完成后任意位置右击会出现TortoiseSVN
在桌面或者别的目录下,新建文件夹svndemo,在文件夹中右键checkout,填写仓库的url地址,点击ok输入用户名和密码。点击第一个记住此登陆信息。ok完成。
这样之后,就可以在此文件夹下新建文件,修改编辑,然后空白处右键提交了。
练习
- 实验1:连接svn仓库实验
步骤:
- 新建一个文件夹
- 打开该文件夹
- checkout操作–第一次时从服务器下载代码
- 填写url
-
实验2:从服务器上更新代码
目的:同步其他人的代码
步骤:
在项目文件夹下点右键,选择update即可 -
实验3: 向服务器提交自己创建的文件
目的:把自己的文件同步到服务器
步骤:
在项目目录下创建一个自己的文件(使用自己的名字拼音)
输入一些内容
在项目目录空白处点击右键,选择commit,输入提交信息并且选择要提交的文件
点击ok提交。 -
实验4:向服务器提交一个文件夹
目的:一次提交多个文件
步骤:
在项目目录下创建一个文件夹
在文件夹下添加一个文件并输入一些内容
在项目目录下的空白处点击右键,选择commit,输入提交信息并选择要提交的文件
点击ok提交 -
实验5:修改自己的文件并提交
目的:修改服务器的文件
步骤:
打开自己创建的文件
修改该文件的内容
在空白处点右键,选择commit,输入提交信息并选择要提交的文件。
点击ok提交 -
实验6: 文件冲突实验
目的:明白文件为什么会冲突,了解冲突时如何解决的。
步骤:
两两一组。(A和B)
由A同学创建一个文件(以A同学名字命名+01)
A提交文件到服务器
B同学下载文件并修改第一行
A同学也修改文件第一行。(如果两个修改的不是同一行,也会冲突,但不会多出现3个文件,例如 a.txt,a.mine,a.**忘了)
B同学提交修改的文件。
A同学提交修改的文件(发生冲突生成3个文件)
这是真正的a.txt中发生冲突后的文件内容
冲突解决(对真正的那个文件里面的信息[包含A修改的,包含B修改的],修改为要提交的数据[将里面的小于号,大于号等号竖线都删除,并修改为最后决定要提交的内容后]),设置文件冲突已解决(svn>resolved…)
由A同学提交更新过的文件
由B同学下载最新的文件(update)
交换角色。
-
实验7:查看文件的提交记录
目的:掌握查询文件提交日志的方法
场景:
A在提交文件时发现了冲突,该如何查看与谁冲突。
步骤:
在冲突文件上点右键,选择svn->show log
在弹出对话框中查看最后版本的author即可。 -
实验8:恢复文件的版本
目的:掌握文件回滚的方法
场景:
A在修改一个文件后并提交,B同学发现A提交的文件导致整个工程无法启动。需要回滚到前一个版本。
步骤:
选择要回滚的文件(编辑自己的文件并提交,形成多个版本)。
点击右键svn->show log
在出现的对话框中选择要回滚的版本,点击右键选择revert to this version
点击revert,完成回滚
commit -
实验9:比较文件版本
目的: 掌握比较文件版本的方法
场景:
某日在程序中发现一个隐藏bug,经调试发现是由于某行代码引起的,现在要追查该bug由哪个版本引入的。
步骤:
选择要比较版本的文件。
点击右键svn->show log
选择不同的版本(按下ctrl可多选)
选择compare versions -
实验10:比较文件内容
目的: 比较两个文件之间的差异
步骤:
选择两个文件
在选中的文件上点右键,svn->diff -
实验11:删除文件
目的:掌握svn下文件的删除
步骤:
在本地删除制定的文件(删除各自的文件)
在空白处点击右键,选择commit
其他同学更新后就在本地自动删除了文件。 -
实验12: 恢复误删除的文件
目的:掌握svn下误删除文件的操作
步骤:
在空白处点右键,svn->show log
找到删除文件的日志,
选择回滚 -
实验13:添加忽略文件。
目的:掌握添加忽略文件的方法
场景:
在团队开发时,每个人使用的开发工具不同,同样的开发工具其工作目录不同,因此在版本控制时,工程文件不应提交。
编译文件及临时文件、日志文件不需要进行版本控制。
步骤:
在要忽略文件上面点击右键,选择add to ignore list
选择要忽略的类型
git使用
去中心化,分布式版本控制,每个电脑都是服务器(平级的)
安装Git-2.14.1-64-bit.exe,一顿next
安装完成后,鼠标右键会出现Git bash here 和 Git GUI here。
随便新建一个文件夹,右键git bash,输入git init
用于初始化git
练习
-
这个黑窗口,是linux下的控制台,以下简单的命令,
查看当前的目录pwd
改变当前目录cd
查询当前目下的文件ls
修改文本文件内容vi /vim
复制文件cp <文件1> <文件2>
删除文件rm -rf <文件名>
-
实验1:创建一个仓库
步骤:
- 新建一个文件夹
- 打开该文件夹
- 在该文件夹下启动git bash
git init
-
ls -a
查看所有文件
- 实验2: 向服务器提交自己创建的文件
目的:把自己的文件同步到服务器
步骤:
- 在项目目录下创建一个自己的文件(使用自己的名字拼音)
- 输入一些内容
- 添加文件到仓库
git add <文件名>
- 提交修改。
git commit -m "添加文件",-m后是提交备注信息
- 查看提交是否成功。
git status
- 实验3:向代码仓库提交多个文件
目的:一次提交多个文件
步骤:
- 在项目目录下创建两个文件并输入一些内容
- 方法1:使用git add 多次,添加多个文件
方法2:git add .
将项目下所有的新文件添加到修改 - 提交到仓库。git commit -m “添加多个文件”
- git status
- 实验4:修改自己的文件并提交
目的:修改仓库的文件
步骤:
- 打开自己创建的文件
- 使用git status查看是否有修改
- 使用git add 添加到修改
- 使用git commit 提交
- 实验5:删除文件并提交
目的:删除仓库的文件
步骤:
- 删除掉已经存在的文件
- 使用git status查看是否有删除
- 使用git add 添加到修改
- 使用git commit 提交
- 实验6:添加dev分支
实验目的:添加一个分支
步骤:
- 创建分支 git branch dev
- 查看分支是否成功 git branch
- 实验7:切换分支
实验目的:切换不同的分支
步骤:
- 创建dev分支
- git checkout dev
- 实验8:分支合并实验
目的:掌握分支合并
步骤:
- 在dev分支下创建文件
- 修改已经存在的文件
- 提交修改
- 切换到master分支
- 合并dev分支。
git merge dev
- 实验9:分支删除
目的:掌握分支的删除
步骤:
- 切换到master分支
- 删除分支 git branch -d dev
- 查看分支 git branch
谢谢