SVN是否具有与git的提交相同的功能(没有推送)?

Igo*_*gor 27 svn git git-commit

基本上我想在没有推动它们而不切换分支的情况下进行我的更改.这允许我做一些工作,commit当我处于一个良好的停止点,然后继续在同一分支工作.如果我陷入困境,我可以revert,如果我添加新的更改,我可以commit再次.

我意识到我可以在SVN中创建一个功能分支来跟踪这些变化,但同样,我希望在保持同一分支/主干的同时这样做.即使相当于git stash已经足够了,虽然看起来SVN没有那个功能.

thi*_*ton 36

分布式版本控制的重点是本地提交的这一特性,以后可以与上游存储库合并.SVN不是分发的,不能这样做.中心障碍是SVN的线性修订编号,这意味着每个客户都必须为每个变更集获得一个新的识别修订号.由于"分配"修订号并在以后使用它会导致各种竞争条件,因此"提交"和"推送"动作在SVN和每个非分布式版本控制系统中都是原子的.

话虽如此,git的SVN前端是一个不错的选择,就像乔建议的那样.它确保SVN永远不会看到您的本地,个人提交,并且"推送"被转换为单个大型SVN提交.

  • 如果您指的是git-svn,那么push会将每个git提交转换为svn提交.但是,可以在推送之前手动压缩提交. (2认同)

Joe*_*Joe 30

按照设计SVN不会,但是你可以使用git的git svn命令作为SVN的前端.它允许您从SVN远程执行推/拉工作,但仍然在本地使用git,从而在不推送到SVN存储库的情况下进行本地提交.

这样的事情可能有所帮助:http://www.viget.com/extend/effectively-using-git-with-subversion/

  • 从我对SVN的理解来看,它非常集中.意思是如果你做任何事情它会转到中央仓库.其他IDE可能会在您进行更改时执行本地"快照",并保存它. (2认同)