git和svn的混合物
服务器上的项目是使用svn进行管理的。
本来本地的项目也是通过svn进行管理的,但是后来使用svn的分支功能进行项目的测试/新功能等等时,总是会出现各种各样的问题,遂转投git。
因为git的分支机制和svn的分支机制不一样,git的更加灵活,强大和稳定。
首先建立一个本地化的git仓库(可以直接选择项目所在文件夹)
将服务器上的项目checkout到创建的git仓库里面,此时soureTree里该项目的状态就发生了变化
然后会发现有许多与svn相关的东西,需要忽略追踪。(*.svn)
此时需要常规的操作将项目加入到git中(暂存,提交)。
第一次填写提交信息时会提示填写用户名和邮箱(这些是可以随便填写的,因为这些是用来标记git项目的,但是格式需要正确)
提交成功之后可以在提交历史中查看
现在master将作为项目的的主分支而存在,后续项目更新都在分支上进行,用以保证项目的稳定和完整。
基于master建立一个分支
因为选择了”检出新分支“所以当前是的分支是branch.
现在修改branch的内容。然后暂存,提交。
通过查看历史的提交可以看到master分支并没有出现新增的内容。
然后改变当前的分支为master,将branch的内容合并到主分支。
合并成功查看master的相关内容
如果合并出现冲突需要根据情况进行处理,再次提交就可以了。
冲突之后的提示大概是这样的:
现在没有任何问题,就可以按照正常的svn更新流程,将master的新内容提交到远程的服务器了。
如果需要将项目推送到远程的git仓库,需要注意远程git仓库的初始化,不要添加多余的东西,然后用soureTree添加远程git仓库地址。(gitOsChina)
完成之后应该是这个样子的
然后推送即可。
虽然git本身就提供了git svn相关的操作,可是理解起来比较绕,就依据自己对git和svn使用上的理解自行处理了。