服务器上的项目是使用svn进行管理的。

本来本地的项目也是通过svn进行管理的,但是后来使用svn的分支功能进行项目的测试/新功能等等时,总是会出现各种各样的问题,遂转投git。

因为git的分支机制和svn的分支机制不一样,git的更加灵活,强大和稳定。

首先建立一个本地化的git仓库(可以直接选择项目所在文件夹)

svn git面试题java svn git混用_git

将服务器上的项目checkout到创建的git仓库里面,此时soureTree里该项目的状态就发生了变化

svn git面试题java svn git混用_git仓库_02

svn git面试题java svn git混用_git_03

然后会发现有许多与svn相关的东西,需要忽略追踪。(*.svn)

svn git面试题java svn git混用_git仓库_04

此时需要常规的操作将项目加入到git中(暂存,提交)。

第一次填写提交信息时会提示填写用户名和邮箱(这些是可以随便填写的,因为这些是用来标记git项目的,但是格式需要正确)

svn git面试题java svn git混用_svn git面试题java_05

提交成功之后可以在提交历史中查看

svn git面试题java svn git混用_svn_06

现在master将作为项目的的主分支而存在,后续项目更新都在分支上进行,用以保证项目的稳定和完整。

基于master建立一个分支

svn git面试题java svn git混用_git仓库_07

svn git面试题java svn git混用_git_08

因为选择了”检出新分支“所以当前是的分支是branch.

现在修改branch的内容。然后暂存,提交。

通过查看历史的提交可以看到master分支并没有出现新增的内容。

svn git面试题java svn git混用_git_09

svn git面试题java svn git混用_git仓库_10

然后改变当前的分支为master,将branch的内容合并到主分支。

svn git面试题java svn git混用_git仓库_11

合并成功查看master的相关内容

svn git面试题java svn git混用_svn_12

如果合并出现冲突需要根据情况进行处理,再次提交就可以了。

冲突之后的提示大概是这样的:

svn git面试题java svn git混用_svn git面试题java_13

现在没有任何问题,就可以按照正常的svn更新流程,将master的新内容提交到远程的服务器了。

如果需要将项目推送到远程的git仓库,需要注意远程git仓库的初始化,不要添加多余的东西,然后用soureTree添加远程git仓库地址。(gitOsChina)

svn git面试题java svn git混用_git仓库_14

完成之后应该是这个样子的

svn git面试题java svn git混用_git_15

svn git面试题java svn git混用_git仓库_16

然后推送即可。

虽然git本身就提供了git svn相关的操作,可是理解起来比较绕,就依据自己对git和svn使用上的理解自行处理了。