Git
push和pull其实就是分别将本地分支合并到远程分支和将远程分支拉到本地分支上
merge :就是将两个或者两个以上的合并到一起的操作,主要用于将一个分支合并到另一个分支上的操作
产生冲突的原因:
当a修改了这行代码,我同时也修改了这行代码,当我在提交的时候,这时就会产生冲突,也就是两个分支相同文件相同位置都做了不同的操作
合并分支解决冲突:
选中项目右键点击Git选择里面的Resolve Conflicts,会出现一个弹窗,显示了冲突的文件,选择里面的饿任意的一个文件后点击Merge会出现三个代码框
a.左边的Local Changes代表“当前”分支上的修改
b.右边的Changes from server代表“合并进来”的分支上的修改
c.中间的Result代表的是经过处理后的最终内容
在三个代码框内有四种颜色:
红色:代表当前分支和合并分支都编辑过的内容,属于冲突
蓝色:代表的是单方面编辑过的内容,属于改变
灰色:代表被删除的内容,也属于改变
绿色:代表新增的内容,也属于改变
其实真正需要解决冲突的就是红色的区域,其他区域也就是让再次确认改变的内容,可以不用去修改
在Local Changes左上角有一排按钮:
上下按钮:代表的是跳转到下一个冲突文件
从左到右:第一个是比较左边和中间的内容,第二个是比较中间和右边的内容,第三个是比较左边和右边的内容
从左到右:第一个是接受两边没有冲突的改变,第二个是接受左边没有冲突的改变,第三个是接受右边没有冲突的改变
svn
产生Svn:当a和b都有一个同样的txt文件和同为一个13的版本时,b在版本为13的基础上添加了一句话,这时版本升级为14,然而a并不知道b已经修改版本为14,a在初始的版本里面添加一句话后提交,应为这时的服务器版本是14,而a是在版本为13的时候进行的提交,这时就产生版本冲突
同一个文件,同一行代码,被两个人同时修改
解决svn 冲突:
①:放弃自己的去更新服务器的版本,在更新以后的版本上做修改,然后提交
②:产生冲突后会在本文件夹下生产三个文件不能手动去删除和手动去修改test里面的东西,否则只会导致无法去解决冲突
解决的方法:
右键点击TortoiseSVN菜单里的Edit conflicts这个功能去编辑冲突,点击Edit conflicts会出现一个工具自带的一个编辑窗口,他里面分为三个部分,左边是指的是与它冲突的版本文件里面的内容,右边是指还未提交刚编辑好的,下面显示的是处理冲突后显示的效果。如果是冲突的地方会被报红,系统不知道如何去处理让我们去处理,最后自己来选择,我选择使用的是右边的,右键选择第一个会出现使用此模块,这时下边合并冲突那块会变为绿色,最后点击最上面的Mark as resolved选择完成合并冲突这样冲突就解决了
降低解决冲突的复杂度:
①:文档编辑完后要尽快去提交,频繁的提交会使冲突减低
②在提交时,写上明确的Message信息,使更新的时候方便去查看
③使用svn时就是先提交后更新
创建分支:
Android studio 右下角有一个GitBranch,在点击new Branch在里面输入分支的名字这样分支就创建好了