本篇文章,简单介绍了使用git环境(gitsvn)管理svn仓库代码的方法。
安装svn
- 安装新版本svn
sudo apt-get remove subversion
sudo add-apt-repository ppa:dominik-stadler/subversion-1.9
sudo apt-get update
sudo apt-get install subversion
- 命令行输入git svn,如果报错的话,需要重新安装git-svn
sudo apt-get install --reinstall libsvn-perl
sudo apt-get install --reinstall git-svn
sudo apt-get install --update git-svn
用git下载svn代码
- git svn clone +svn代码路径
git svn clone svn://xxxxxx/svn_project
拉取代码(自动合并)
# 先查看本地文件是否有改动,如果有可以先暂存或备份
git svn status
# 再执行同步
git svn rebase
提交代码
git add files
git commit -m "Add some codes."
git svn dcommit
合并代码,出现冲突后解决办法
- 先同步再提交代码,git svn同步(rebase)时出现need update等字样时,说明本地有改动的文件或未纳入版本的文件。解决办法是执行git stash保存本地修改,随后执行git svn rebase。
- 同步代码后,执行git stash pop,一般的代码都能够自动合并(merge),如果出现冲突,可以git reset对应文件,先备份再修改冲突文件(文件里面搜索upstream和stash),然后git df看修改内容。
- git stash pop出现冲突时,内容已经同步到暂存区了,但改动还在git stash内,确认自己改动已合并后,可以直接git stash drop删除栈内改动(这一步要小心,第一次操作请先备份,再执行git stash list观察清楚后再drop,避免丢失改动)。