因此,我从事了该公司使用SVN的工作(但将来会转移到Git)。问题是我不了解SVN。我已经尝试过许多Google查询,而我所能找到的都是SVN-> Git教程,“为什么Git比SVN更好”博客以及一个特定的“备忘单”,它给出了(一些)可比的命令。
缺少阅读O'Reilly关于SVN的书,对于Git用户,向SVN的简要说明(但不是太简短)是什么?
因此,我从事了该公司使用SVN的工作(但将来会转移到Git)。问题是我不了解SVN。我已经尝试过许多Google查询,而我所能找到的都是SVN-> Git教程,“为什么Git比SVN更好”博客以及一个特定的“备忘单”,它给出了(一些)可比的命令。
缺少阅读O'Reilly关于SVN的书,对于Git用户,向SVN的简要说明(但不是太简短)是什么?
Answers:
规范参考是Subversion RedBook。无论您过去有什么技能,都请重新阅读此书,您将获得所需的所有使用信息。它并不困难,也不是完全陌生,大多数人说SVN比git更容易理解,因此您只需阅读一些主要命令就可以了。的基本用法章应该让你和没有问题运行。
有两个主要区别:
分支是微不足道的,合并远没有DVCS辩护者想要的那么糟糕,尤其是如果您坚持使用顶级文件夹的“标准”三重奏(称为主干,分支和标签)。
SVN击败了git,稀疏目录浮现在脑海-在这里您仅签出仓库的一部分。当您需要更多零件时,只需更新所需的内容。如果您有大量的仓库(例如核心产品和大量的插件),那就太好了。
有几点不如git好,令人想到的是可怕的树冲突-您在目录级别有冲突(即有人删除了您编辑的文件)
如果您使用的是Windows,请使用TortoiseSVN。它主要摇摆。
git mv
。SVN有svn move
,但由于在SVN中进行分支和合并有点麻烦,所以我不认为它可以像git一样自动解决树冲突...
git mv
被实现为add + remove。git使用试探法来确定在提交期间是否进行了移动或复制(我认为默认值为“文件的80%+是否相同?”)
尽可能使用git svn。我一直在你的情况,经过半年的挫败后,我切换到git svn,从那时起一直很高兴。
Git svn允许您在本地使用存储库,然后通过来处理提交到SVN服务器的操作git svn rebase
,该操作会将您的本地更改重新git svn dcommit
部署到Subversion干线上,然后提交经过重新提交的提交。
对于高级Subversion的使用来说,这可能不是最佳选择,但是由于您在本地使用git,所以一切都很好。
使用git clone时,您不应该克隆Subversion根文件夹,而应直接克隆目标目录(clone trunk
)。这将使git运行快得多,否则您的工作副本可能会变得很大。
免责声明:当您要创建Subversion分支等时,我不知道情况如何。与我合作的团队没有使用分支(只是我的本地git分支)。