今天总结一下GIT、SVN的使用过程
GIT(TortoiseGit可视化工具)
1.克隆一个远程项目
右键 Git Clone…,输入远程仓库的url,克隆好的远程仓库如图
2.提交代码到本地仓库
修改hello.txt,然后右键—>Git commit --> ‘master’(主分支,也可以是别的分支),这样代码就可以提交到本地仓库
3.提交到远程仓库
右键–>TortoiseGit---->pull…,拉取远程仓库的代码(因为如果合作开发,别人可能也会提交代码)到本地仓库,拉取成功会有success提示
4.代码冲突及解决
github上修改文件
提交到本地代码库(commit)
拉取远程仓库代码(pull),出现冲突
点击close,弹出对话框,选择是
双击冲突的文件,弹出对话框,可以选中使用左边/右边/两边都用,编辑后保存,选择Mark as resolved(标记为已解决)
修改完成后再次提交(commit),会变成如图,选择提交,然后直接push(上传)
查看github上的提交历史,会有解决冲突的记录
5、创建分支
右键–>TortoiseGit --Create Branch–
分支:
- master分支,即主分支。任何项目都必须有个这个分支。对项目进行tag或发布版本等操作,都必须在该分支上进行。
- develop分支,即开发分支,从master分支上检出。团队成员一般不会直接更改该分支,而是分别从该分支检出自己的feature分支,开发完成后将feature分支上的改动merge回develop分支。同时release分支由此分支检出。
- release分支,即发布分支,从develop分支上检出。该分支用作发版前的测试,可进行简单的bug修复。如果bug修复比较复杂,可merge回develop分支后由其他分支进行bug修复。此分支测试完成后,需要同时merge到master和develop分支上。
- feature分支,即功能分支,从develop分支上检出。团队成员中每个人都维护一个自己的feature分支,并进行开发工作,开发完成后将此分支merge回develop分支。此分支一般用来开发新功能或进行项目维护等。
- fix分支,即补丁分支,由develop分支检出,用作bug修复,bug修复完成需merge回develop分支,并将其删除。所以该分支属于临时性分支。
- hotfix分支,即热补丁分支。和fix分支的区别在于,该分支由master分支检出,进行线上版本的bug修复,修复完成后merge回master分支,并merge到develop分支上,merge完成后也可以将其删除,也属于临时性分支。
6、合并
右键–>TortoiseGit --Merge
SVN(TortoiseSVN可视化工具)
1.创建本地仓库/远程仓库
本地:右键—>TortoiseSVN—>create repository here,但一般我们不创建本地仓库,一般都是远程的
远程:github/其他地方
2.拉取远程代码仓库的代码
a.右键点击SVN checkout…,弹出如下窗口
b.复制远程仓库url到红色区域
c.点击弹窗的ok即可拉取,在trunk中可以看到主分支文件
trunk文件夹: 主干,我们一般把项目提交到此文件夹里面,在trunk中开发。
branches文件夹:分支,我们一般把那些需要打分支,但是有可能会修改的项目代码,打分支到此目录。
tags文件夹:分支,我们一般把那些阶段性(如迭代各期)的项目代码,打分支到此目录。
3.提交本地代码到远程服务器
a. 新建一个文件new.txt作为提交对象
b.选中trunk文件夹,单击右键—>SVN commit…(如果是多人开发,需要先SVN update,先更新代码,后提交),输入提交的Message后,选中要提交的文件,点ok可提交成功,可以看到是先add,后发送的内容,可以看到远程仓库github上多了一个文件,就是我们提交上去的
4.创建分支
如图操作,如果成功可以在github上看到新的分支
本地branch文件夹,现在直接进入branch文件下,右键 --> Chenckout下,就可以把xts下的所有文件提取出来了
5.代码冲突的产生及解决
a.将分支xts中的hello.txt中第二行写入:键盘敲烂,提交到远程仓库
b.将主分支(trunk)中的hello.txt中的第二行写入:月薪上万,也提交代码
c.现在合并主分支和xts分支,选中trunk,右键TortoiseSVN–>Merge,弹框选中第一个,点next
d.因为我们两个分支的hello.txt文件中第二行内容不同,所以产生了冲突(conflict),点击Edit conflict,弹出如图窗口,可以选中使用左边/右边/两边都使用,修改后保存,然后选中Resolved(解决冲突),点击ok即可