基本上我想在没有推动它们而不切换分支的情况下进行我的更改。这允许我做一些工作,commit
当我处于一个良好的停止点时,然后继续在同一个分支中工作。如果我陷入困境,我可以revert
,如果我添加新的更改,我可以再次commit
。
我意识到我可以在SVN中创建一个功能分支来跟踪这些变化,但同样,我希望在停留在同一个分支/主干中时这样做。即使相当于git stash
也足够了,尽管看起来SVN没有这个功能。
答案 0 :(得分:36)
分布式版本控制的重点是本地提交的这一特性,以后可以与上游存储库合并。 SVN不是分发的,不能这样做。中心障碍是SVN的线性修订编号,这意味着每个客户都必须为每个变更集获得一个新的识别修订号。由于“分配”修订号并在以后使用它会导致各种竞争条件,因此“提交”和“推送”操作在SVN和每个非分布式版本控制系统中都是原子的。
话虽这么说,git的SVN前端是一个不错的选择,就像乔建议的那样。它确保SVN永远不会看到您的本地,个人提交,并且“推送”被转换为单个大型SVN提交。
答案 1 :(得分:29)
按设计SVN不会,但是你可以使用git的git svn
命令作为SVN的前端。它允许你从SVN远程执行推/拉工作,但仍在本地使用git,从而在不推送到SVN存储库的情况下进行本地提交。
这样的事情可能有所帮助:http://www.viget.com/extend/effectively-using-git-with-subversion/
答案 2 :(得分:2)
您可以使用quilt来执行此操作,但如果您只想将部分quilt队列提交给svn,它就会变得棘手。