这篇文章给大家聊聊关于git svn 使用git提交到远程svn仓库,包括你只对某个分支有权限的情况。,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
依赖工具:
git svn,安装git时基本就包含了git svn工具。您可以使用以下命令。如果没有,请自行安装。
git svn –v# 如果显示git svn版本号,则说明已经安装了git-svn版本2.17.1(svn 1.9.4)。适用场景:
如果想用svn管理远程端,用git管理本地,需要通过git提交到远程svn仓库,并有svn仓库权限,或者只有svn某个分支的读写权限。使用git svn的大致流程:
将远程项目拉取到本地git svn clone 配置远程提交分支与本地分支的映射关系git config 将指定分支拉取到本地指定分支git svn fetch 本地修改提交操作相当于git、git add 、git commit定期拉取远程项目更新到本地git svn rebase。如果存在冲突,冲突解决操作相当于git解决冲突。将本地提交的分支推送到远程对应分支git svn dcommit。具体操作如下:
name代表要替换的内容,[param]代表默认配置1、拉取远程项目到本地# 如果有svn仓库权限,可以直接拉取svn仓库。如果你只有某个分支的权限,是无法拉取的。仓库只能拉取指定分支,即授权分支git svn clone [-r 开始版本号: 结束版本号] svn 地址/svn 分支地址[本地文件夹名称] [-s] [–prefix=svn /] ## 参数说明:-r表示从指定版本开始拉取代码。本地文件夹的名称默认为svn分支的名称。 -s表示远程svn遵循标准svn分支规范,有主干、分支和其他分支。其实就是-T trunk -b Branches -t Tags 的缩写。通过这些参数,告诉git这些文件夹与git分支、标签、master的对应关系。 –prefix=svn/为svn 的所有远程名称添加前缀svn。推荐。这样,统一、清晰、易于管理。一些示例场景如下: git svn clone svn_url demo # 默认情况下,所有版本都会拉到本地demo 文件夹。如果远程仓库版本较多,速度比较慢,可以选择只拉取指定的版本。版本号,比如远程版本号是100,只需要拉取90之后的版本即可,其中head代表最新版本# 示例: git svn clone -r90:100 svn_url demogit svn clone -r90:head svn_url demo 2.本地代码已存在存在,开始配置本地对应的分支信息。如果你有仓库权限,直接拉取仓库,可以跳过这一步,也可以手动拉取指定的svn分支代码。步骤如下: git config –add svn-remote.remote 分支名.url svn 地址,包含具体分支路径git config –add svn-remote.远程分支名.fetch :refs/remotes/远程分支名#示例: git config –add svn-remote.svn/svn_branch_name.url svn_url_branchgit config –add svn-remote.svn/svn_branch_name.fetch :refs/remotes/svn/svn_branch_name# 这里的“远程分支名称”可以填写在只要这三者一致就可以。建议为其添加svn/前缀,以方便管理,类似于上面克隆时的–prefix=svn/。 3、新建本地分支,对应svn。 git svn fetch 远程分支名称获取svn仓库中分支的代码# 示例: git svn fetch svn/svn_branch_name # 这一步完成后,可以看到本地分支信息,执行gitbranch -a ,可以看到: * master svn_branch_name 远程/git-svn 远程/svn/svn_branch_name4。检出并切换分支到指定分支git checkout -b 本地分支名远程分支名# 示例:git checkout -b svn_branch_name svn/svn_branch_name5. local 修改并提交代码,操作与git操作相同,与git add完全相同。 git commit -m ‘message’ 6. 将远程更新拉取到本地,这里通过rebase 拉取git svn rebase 7. 如果出现冲突,解决方法与git 相同,先解决冲突,然后执行以下命令命令git add 。 git rebase –continue 8.冲突解决后,提交到远程svn仓库git svn dcommit#附上从远程端拉取项目或者拉取新分支项目的步骤:##首先拉取项目:git svn clone svn分支地址[本地文件夹名称]##在已有的git-svn项目上创建新分支,例如拉取项目演示代码的demo_V1.0.0分支: git config — ADD SVN-Remote.svn/Demo_V1 .0.0.URL https://SVN_URL/Branches/Demo_V1.0.0.0git 配置添加SVN-Remo_V1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 .0.0.0.0.0.0.0.0。 0.0。 /svn/demo_v1.0.0git SVN FETCH SVN/DEMO_V1 .0.0git checkout -b demo_V1.0.0 svn/demo_V1.0.0Git-Svn 摘要
当您当前必须使用Svn 服务器或您的开发环境需要使用Svn 服务器时,git svn 工具特别有用。只需将其视为Git 的简化版本即可。但是,您在使用过程中仍然可能会遇到一些麻烦。为了避免麻烦,请尝试遵循以下规则:
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/128893.html
用户评论
凉笙墨染
太厉害了!我之前一直在想怎么把 Git 仓库中的代码 push 到 SVN 中去,特别是当我的工作分支权限有限的时候,这个方法简直是福音啊!
有14位网友表示赞同!
微信名字
这篇文章讲得太棒了,解释很清晰,一步步的操作也很详细。感谢分享!我终于可以不用手动同步代码了,太省时省力了。
有16位网友表示赞同!
漫长の人生
说起来我也是个新手,最近需要用到 Git 来管理项目,但是公司用的还是 SVN 仓库。看到你这个方法,感觉像打开了新世界的大门!
有10位网友表示赞同!
窒息
我只想说一句话:我终于不用再纠结如何提交到远端的 SVN 仓库了,太完美了!
有6位网友表示赞同!
余笙南吟
虽然这篇博客写得不错,但我还是有一些问题没有理解透彻,比如如果我想把分支中的所有提交都推送到远端某个特定的标签,该怎么做呢?希望能有更详细的说明。
有18位网友表示赞同!
杰克
这个方法听起来确实很方便,但会不会影响到 SVN 仓库的数据完整性呢?有没有什么需要注意的地方?
有6位网友表示赞同!
致命伤
我对 Git svn 的使用还不太 familiar,这篇博文让我对它有了初步的了解。以后再学习的时候可以参考一下。
有10位网友表示赞同!
鹿叹
我个人更倾向于只使用 Git 管理代码库,因为它的操作更加灵活。不过这种方法确实在特殊情况下很实用,感谢分享!
有12位网友表示赞同!
素婉纤尘
这篇文章对于初学者来说可能有点难度高,尤其是对 SVN 和 Git 都有所了解的人来说更能理解其中的细节和技巧。建议可以加入一些通俗易懂的解释。
有8位网友表示赞同!
几妆痕
看到这篇博客,我突然发现自己有很多年没用过 Git svn 了!应该找时间回顾一下它的使用教程!<br>
有6位网友表示赞同!
初阳
对于那些只拥有某些分支权限的用户来说,这篇文章提供的解决方案确实非常实用。可以避免手动复制粘贴代码带来的麻烦和风险。
有14位网友表示赞同!
◆乱世梦红颜
我觉得这种方法有个小小的缺点,那就是每次提交都需要先去 Git 仓库中 fetch 代码,然后才能 push 到 SVN 仓库。操作步骤稍微有点多…
有10位网友表示赞同!
花海
这篇文章内容很棒,非常实用!我已经开始尝试在项目中使用 Git svn 了,期待能够提高开发效率!
有16位网友表示赞同!
如梦初醒
如果我只需要提交一个部分代码到 SVN 仓库中,该怎么做呢?
有7位网友表示赞同!
命运不堪浮华
感谢作者分享这个有用信息!我会认真学习并应用到我的工作中。
有19位网友表示赞同!
念旧情i
对于不熟悉 Git 的开发者来说,理解这篇博客的说明可能比较困难。建议可以加入一些视频教程或更加直观的例子进行说明。
有5位网友表示赞同!
水波映月
这个方法是不是适合所有类型的项目?对于大型复杂项目,这种方式是否会带来性能问题?
有17位网友表示赞同!