一 . SVN
VisualSVN Server 服务器
TortoiseSvn 小乌龟---客户端
.svn 这个隐藏目录记录着两项关键的信息: 工作文件的基准版本和一个本地副本最后更新的时间戳。
如果把这个文件删除,那这个目录就和服务器没有关系了,就是一个普通文件夹。
第1课 建立仓库,创建人员
1. usr1 怎么往服务器添加一个文件?
① 在该目录下(有.svn的目录) 创建一个文件,它会有一个问题,说明是未知文件。
② 点击文件右击,TortoiseSVN-->add 把这个文件添加到版本控制中,标签变成了“+”
③ 再右击 --> commit, 写一个Log ,登录授权后,文件标签变成了"勾"
2. use2 那怎么把数据从服务器取出来呢?
① 在一个空目录下右击 ---> SVN checkout ----> 填写 URL ,用usr2授权 就取出来了
第2课
1. 怎么设置人员的读、写权限?
在要设置的仓库上右击---> Properties ---> Security 设置下面的Permissions 设成只读
现在这个用户只能取数据,一旦要commit 就会出现403错误。
2. 怎么从服务器取出更新的数据?
目录右键--> SVN update 就可以了。
3. Groups 组
可以快速分配权限,给组分配权限,组下的人都有权限了。
4.多人同时修改时冲突问题。
文件在修改时,别人已经修改完提交了,你的文件已经和服务端的不一样了。
合并 Merger
版本每提交一次就增加1.
如果和多个版本有冲突,提交是会出错的。
TortoiseSVN-->Edit conflicts. 查看冲突。 黄色的可以忽略。
修改好之后,黄色叹号还是没有消息,右键 TortoiseSVN--->Resolved ,O了解决了,再SVN Commit提交。
5. 恢复以前的版本
① 先查看以前修改的版本: TortoiseSVN -->Show log
② 进入Log后,再查看和前一个版本的修改之处:选中某个版本记录,右键--> Compare with Previous revison
③ 恢复到某个版本,选中要恢复到的版本记录 右键---> Revert to this revision.
既可看某一个文件的版本记录。也可看整个工程的记录。
第3课
1. SVN 与 Eclipse 整合
eclipse_svn_site 插件。
问1:怎么确定插件是否装成功了?
答:启动Eclipse, preferences-->Team --> 如果看到有SVN 就成功了。
问2:怎么在Eclipse 中使用 SVN呢?
答:①打开 Open perspective,选中 SVN资源库。然后在打开的界面中,添加SVN资源库,把仓库地址写入。
② 在仓库文件上右键 -->检出为 .... -->填写相应信息---->做为工作空间中的项目检出。最后在Eclipse 项目中就可以看到这个项目了。
问3:在Eclipse 中怎么提交?
答:修改了之后,文件前会出现一个标签,选中要提交的文件,右键--->Team会出现很多菜单。
问4:在Eclipse 中怎么解决冲突?
答:①提交不成功时,有冲突,先update 一下,就会合并。
② 同行冲突:
选通过 “编辑冲突” 查看冲突的地方,编辑好文件; 再 用“标记为解决” 消除冲突。
问5:Eclipse怎么删除文件?
答:直接在工程中把文件删除了,再提交更新。注意不要把.proxxx配置文件给删除了。
第四课 实例演示
Subversion目录规范
创建三个顶级目录
/trunk 存放开发的“主线”
/branches 存放支线副本
/tags 存放标签副本
1、 新建一个仓库,在仓库下新建上面3个目录
2. 在Eclipse 中导入svn项目,并检出为工程
在Eclipse 的工程中开发 1.0。
3. 发布版本1.0
工程,右键---> Team --> 分支/标记 --> 填入URL,授权 --> 发布到 tags/v1.0
在SVN的工程仓库的 tags目录下就有了v1.0目录,里面就有了代码。
4. 修改代码,发布版本2.0
① 在Eclipse 的工程中开发2.0,并提交 [在/trunk目录下]
② 修改版本1.0中的Bug
1)选择工程 ,右键---> 切换---> 选择 tags/v1.0的URL ,就切换到了 [tags/v1.0]
但是/tags 下是发布版本的目录,不应该在这修改
2) 再右键工程 --> 分支与标记 ---> 在URL时选择 /branches,并在后面建一个文件夹,例如[/branches/v1.0_fixup]
3) 工程中 右键-->切换 --->选中[/branches/v1.0_fixup],里面的就是v1.0版本了,就可以在这里修改了。
4) v1.0修改好了,就提交到分支的 v1.0版本中。
5) 把修改好的 发布到 [/tags/v1.1] 版本中
工程 右键---> 分支/标记 --> 选择路径 [/tags/v1.1] ,就发布成功了
6) 回到主线 [trunk] --- 用切换
把修改的代码合并进来: 工程右键 --> 合并 --> 选择合并的来源 ([/branches/v1.0_fixup中的哪个文件) ,其它默认 ----- 合并完后,提交
第五课 用SVN 管理Android项目
1. 在SVN_server 中新建一个Repository ---命名Demo
选择 Single-project repository.
2. 把Android 工程上传到上面新建的Demo仓库中。
在Eclipse 的SVN资源库 中加入仓库,把URL加入进去。
3. 把工程提交到 [/trunk] 目录
Demo工程 右键----> Team ---> share project --> 先把SVN ---> 选择要把 项目共享到SVN的位置 -->然后选择 /trunk 目录 --->确定之后 会弹出一个同步视图---> 需要把资源都提交一下,选择工程右键,提交--->把不需要提交的去掉.
文件前有个红色地'f', 就是已经提交了。
4. 怎么把这个提交了的Android工程,在本地拿到呢?
在本地新建一个文件夹 ,右键---> svn checkout... ---> 填入 URL 地址--->确定 就可以拿下来了。
SVN 可以把URL 拷到浏览器,文件都可以在浏览器中看到。
第二篇 Git
第6课
问1. 什么是分布式?
答:在SVN的基础上增加一个功能,服务器有一个仓库,本地开发者也有一个仓库,可以在本地操作,只要不push推送上去就不会影响服务器的数据。
SVN 必须与服务器连接,要不断推送。
问2: Clone 和 PULL 都可以从服务器取数据,它们之间有什么区别?
答:Clone 就想当于SVN中的checkout ----- 和服务器先建立连接,然后从服务器把数据都取下来。
只有Clone 之后才能 PULL,PULL 就是本地数据和服务器数据同步更新一下。
问3:怎么把本地修改的数据 推到服务器?
答:① 先 Commit 一下,把修改的数据提交到本地仓库
② 再Push 一下,推送到服务器
Git 常用命令:
1. 创建git资源库
git clone <仓库目录> /g/software/repository/git/itheima <用户目录> .
注意:clone时候用户目录必须为空
3. 创建一个文件,纳入到版本控制中。
git add <文件名>
第一次执行会出警告:warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory.
警告处理:需要配置用户信息
git config user.name = "zhangsan"
git config user.email = "itheima@gmail.com"
4. 提交到本地版本库里。
git commit <文件名>
5. 推送到远程共享版本库中
git push origin master
6. 切换用户,拉取最新的文件
git pull
第8课 使用小乌龟 操作Git
1. 创建一个本地仓库
新建一个目录myGit,右键---> Git create respority here --->弹出一个框,点确定。
就在本地创建了一个仓库。
2. 把这个仓库中的内容 取出来
在其它地方再建一个文件夹 user1,右键-->Git clone..---> 选择仓库路径和目标路径--->成功之后,user1路径下就多了一个 .git 目录。
3. 在 user1 下新建一个文件 read.txt, 选中右键 ---> TortoiseGit -->Add 就添加进去了--->再右键---> Git commit --> 成功之后,图标就变了,就提交到本地了 --->再右键 ,Git push,就推送到服务器了。 本地是master,服务器是 origin
冲突问题:出错 exit code 1
刷新一下,Git pull. 成了小三角形黄色!号----->选中文件 右键---> tortoiseGit Edit conflicts
把红色的都改掉,保存一下就可以了。 ----> 多了几个文件,分别是冲突的文件 ,还是点击那个文件,右键 ---->TortoiseGit --->Resolve... 标记为解决 ----> 再Commit 就成功了,再push 。
补丁: 没网的时候 不通过服务器 让两个人的数据同步
在user1中 TortoiseGit --->Create Patch serial... 生成补丁
在user2中 TortoiseGit --->Apply Patch serial... --->Add 选中补丁 就同步了。
第9课 Git 和 Eclipse 整合
1. 建立环境
在Open Perspective 中 打开 Git Repository Exploring. 并建立本地仓库。
2. 导入Android工程 ,import projects
3. 创建文件,add --> commit --> remote --push.
遇到的问题:
① 当 hard revert 后,修改 再提交,(+1 -1),再提交 就失败了--- rejected no-fast-forward?
解决:这是因为本地的代码和 服务器的上不一样了,可以用 强制覆盖 就可以了 --- push 时勾选:Force overwrite of baranch on remote if it exists and has diverged.
VisualSVN Server 服务器
TortoiseSvn 小乌龟---客户端
.svn 这个隐藏目录记录着两项关键的信息: 工作文件的基准版本和一个本地副本最后更新的时间戳。
如果把这个文件删除,那这个目录就和服务器没有关系了,就是一个普通文件夹。
第1课 建立仓库,创建人员
1. usr1 怎么往服务器添加一个文件?
① 在该目录下(有.svn的目录) 创建一个文件,它会有一个问题,说明是未知文件。
② 点击文件右击,TortoiseSVN-->add 把这个文件添加到版本控制中,标签变成了“+”
③ 再右击 --> commit, 写一个Log ,登录授权后,文件标签变成了"勾"
2. use2 那怎么把数据从服务器取出来呢?
① 在一个空目录下右击 ---> SVN checkout ----> 填写 URL ,用usr2授权 就取出来了
第2课
1. 怎么设置人员的读、写权限?
在要设置的仓库上右击---> Properties ---> Security 设置下面的Permissions 设成只读
现在这个用户只能取数据,一旦要commit 就会出现403错误。
2. 怎么从服务器取出更新的数据?
目录右键--> SVN update 就可以了。
3. Groups 组
可以快速分配权限,给组分配权限,组下的人都有权限了。
4.多人同时修改时冲突问题。
文件在修改时,别人已经修改完提交了,你的文件已经和服务端的不一样了。
合并 Merger
版本每提交一次就增加1.
如果和多个版本有冲突,提交是会出错的。
TortoiseSVN-->Edit conflicts. 查看冲突。 黄色的可以忽略。
修改好之后,黄色叹号还是没有消息,右键 TortoiseSVN--->Resolved ,O了解决了,再SVN Commit提交。
5. 恢复以前的版本
① 先查看以前修改的版本: TortoiseSVN -->Show log
② 进入Log后,再查看和前一个版本的修改之处:选中某个版本记录,右键--> Compare with Previous revison
③ 恢复到某个版本,选中要恢复到的版本记录 右键---> Revert to this revision.
既可看某一个文件的版本记录。也可看整个工程的记录。
第3课
1. SVN 与 Eclipse 整合
eclipse_svn_site 插件。
问1:怎么确定插件是否装成功了?
答:启动Eclipse, preferences-->Team --> 如果看到有SVN 就成功了。
问2:怎么在Eclipse 中使用 SVN呢?
答:①打开 Open perspective,选中 SVN资源库。然后在打开的界面中,添加SVN资源库,把仓库地址写入。
② 在仓库文件上右键 -->检出为 .... -->填写相应信息---->做为工作空间中的项目检出。最后在Eclipse 项目中就可以看到这个项目了。
问3:在Eclipse 中怎么提交?
答:修改了之后,文件前会出现一个标签,选中要提交的文件,右键--->Team会出现很多菜单。
问4:在Eclipse 中怎么解决冲突?
答:①提交不成功时,有冲突,先update 一下,就会合并。
② 同行冲突:
选通过 “编辑冲突” 查看冲突的地方,编辑好文件; 再 用“标记为解决” 消除冲突。
问5:Eclipse怎么删除文件?
答:直接在工程中把文件删除了,再提交更新。注意不要把.proxxx配置文件给删除了。
第四课 实例演示
Subversion目录规范
创建三个顶级目录
/trunk 存放开发的“主线”
/branches 存放支线副本
/tags 存放标签副本
1、 新建一个仓库,在仓库下新建上面3个目录
2. 在Eclipse 中导入svn项目,并检出为工程
在Eclipse 的工程中开发 1.0。
3. 发布版本1.0
工程,右键---> Team --> 分支/标记 --> 填入URL,授权 --> 发布到 tags/v1.0
在SVN的工程仓库的 tags目录下就有了v1.0目录,里面就有了代码。
4. 修改代码,发布版本2.0
① 在Eclipse 的工程中开发2.0,并提交 [在/trunk目录下]
② 修改版本1.0中的Bug
1)选择工程 ,右键---> 切换---> 选择 tags/v1.0的URL ,就切换到了 [tags/v1.0]
但是/tags 下是发布版本的目录,不应该在这修改
2) 再右键工程 --> 分支与标记 ---> 在URL时选择 /branches,并在后面建一个文件夹,例如[/branches/v1.0_fixup]
3) 工程中 右键-->切换 --->选中[/branches/v1.0_fixup],里面的就是v1.0版本了,就可以在这里修改了。
4) v1.0修改好了,就提交到分支的 v1.0版本中。
5) 把修改好的 发布到 [/tags/v1.1] 版本中
工程 右键---> 分支/标记 --> 选择路径 [/tags/v1.1] ,就发布成功了
6) 回到主线 [trunk] --- 用切换
把修改的代码合并进来: 工程右键 --> 合并 --> 选择合并的来源 ([/branches/v1.0_fixup中的哪个文件) ,其它默认 ----- 合并完后,提交
第五课 用SVN 管理Android项目
1. 在SVN_server 中新建一个Repository ---命名Demo
选择 Single-project repository.
2. 把Android 工程上传到上面新建的Demo仓库中。
在Eclipse 的SVN资源库 中加入仓库,把URL加入进去。
3. 把工程提交到 [/trunk] 目录
Demo工程 右键----> Team ---> share project --> 先把SVN ---> 选择要把 项目共享到SVN的位置 -->然后选择 /trunk 目录 --->确定之后 会弹出一个同步视图---> 需要把资源都提交一下,选择工程右键,提交--->把不需要提交的去掉.
文件前有个红色地'f', 就是已经提交了。
4. 怎么把这个提交了的Android工程,在本地拿到呢?
在本地新建一个文件夹 ,右键---> svn checkout... ---> 填入 URL 地址--->确定 就可以拿下来了。
SVN 可以把URL 拷到浏览器,文件都可以在浏览器中看到。
第二篇 Git
第6课
问1. 什么是分布式?
答:在SVN的基础上增加一个功能,服务器有一个仓库,本地开发者也有一个仓库,可以在本地操作,只要不push推送上去就不会影响服务器的数据。
SVN 必须与服务器连接,要不断推送。
问2: Clone 和 PULL 都可以从服务器取数据,它们之间有什么区别?
答:Clone 就想当于SVN中的checkout ----- 和服务器先建立连接,然后从服务器把数据都取下来。
只有Clone 之后才能 PULL,PULL 就是本地数据和服务器数据同步更新一下。
问3:怎么把本地修改的数据 推到服务器?
答:① 先 Commit 一下,把修改的数据提交到本地仓库
② 再Push 一下,推送到服务器
Git 常用命令:
1. 创建git资源库
git init --bare 库名称
2. 在用户文件夹下把资源clone下来git clone <仓库目录> /g/software/repository/git/itheima <用户目录> .
注意:clone时候用户目录必须为空
3. 创建一个文件,纳入到版本控制中。
git add <文件名>
第一次执行会出警告:warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory.
警告处理:需要配置用户信息
git config user.name = "zhangsan"
git config user.email = "itheima@gmail.com"
4. 提交到本地版本库里。
git commit <文件名>
5. 推送到远程共享版本库中
git push origin master
6. 切换用户,拉取最新的文件
git pull
第8课 使用小乌龟 操作Git
1. 创建一个本地仓库
新建一个目录myGit,右键---> Git create respority here --->弹出一个框,点确定。
就在本地创建了一个仓库。
2. 把这个仓库中的内容 取出来
在其它地方再建一个文件夹 user1,右键-->Git clone..---> 选择仓库路径和目标路径--->成功之后,user1路径下就多了一个 .git 目录。
3. 在 user1 下新建一个文件 read.txt, 选中右键 ---> TortoiseGit -->Add 就添加进去了--->再右键---> Git commit --> 成功之后,图标就变了,就提交到本地了 --->再右键 ,Git push,就推送到服务器了。 本地是master,服务器是 origin
冲突问题:出错 exit code 1
刷新一下,Git pull. 成了小三角形黄色!号----->选中文件 右键---> tortoiseGit Edit conflicts
把红色的都改掉,保存一下就可以了。 ----> 多了几个文件,分别是冲突的文件 ,还是点击那个文件,右键 ---->TortoiseGit --->Resolve... 标记为解决 ----> 再Commit 就成功了,再push 。
补丁: 没网的时候 不通过服务器 让两个人的数据同步
在user1中 TortoiseGit --->Create Patch serial... 生成补丁
在user2中 TortoiseGit --->Apply Patch serial... --->Add 选中补丁 就同步了。
第9课 Git 和 Eclipse 整合
1. 建立环境
在Open Perspective 中 打开 Git Repository Exploring. 并建立本地仓库。
2. 导入Android工程 ,import projects
3. 创建文件,add --> commit --> remote --push.
遇到的问题:
① 当 hard revert 后,修改 再提交,(+1 -1),再提交 就失败了--- rejected no-fast-forward?
解决:这是因为本地的代码和 服务器的上不一样了,可以用 强制覆盖 就可以了 --- push 时勾选:Force overwrite of baranch on remote if it exists and has diverged.