我正在开始一个新的分布式项目。我应该使用SVN还是Git,为什么?
当前回答
有人指出,在Windows下,SVN似乎是一个不错的选择。
如果您的一些开发人员想要尝试GIT,他们可能总是使用GIT-SVN,其中SVN存储库是在GIT存储库中重新创建的。然后,他应该能够在本地使用GIT,然后使用SVN将其更改发布到主存储库。
其他回答
SVN的2个主要优点很少被提及:
Large file support. In addition to code, I use SVN to manage my home directory. SVN is the only VCS (distributed or not) that doesn't choke on my TrueCrypt files (please correct me if there's another VCS that handles 500MB+ files effectively). This is because diff comparisons are streamed (this is a very essential point). Rsync is unacceptable because it's not 2-way. Partial repository (subdir) checkout/checkin. Mercurial and bzr don't support this, and git's support is limited. This is bad in a team environment, but invaluable if I want to check something out on another computer from my home dir.
只是我的经验。
有趣的是: 我在Subversion Repos中托管项目,但是通过Git Clone命令访问它们。
请阅读在谷歌代码项目中使用Git进行开发
虽然谷歌代码原生说话 Subversion,可以轻松使用Git 在开发过程中。搜索“git” Svn建议这种做法是正确的 广泛传播,我们也鼓励你 用它来做实验。
在Svn存储库上使用Git给我带来了好处:
我可以分配到几个 机器,承诺和从 对他们来说 我有一个中央备份/公共svn存储库供其他人检查 他们可以自由地使用Git
我已经使用SVN很长时间了,但是每当我使用Git时,我都觉得Git非常强大,轻量级,尽管有一点学习曲线,但它比SVN要好。
我所注意到的是,每个SVN项目,随着它的发展,都会变成一个非常大的项目,除非它被导出。其中,GIT项目(以及GIT数据)的大小非常轻。
在SVN中,我与从新手到专家的开发人员都打过交道,如果新手和中级开发人员为了重用一个文件夹而从另一个SVN项目复制文件夹,他们似乎会引入文件冲突。然而,我认为在Git中,你只需要复制文件夹就可以了,因为Git没有在所有子文件夹中引入. Git文件夹(就像SVN那样)。
在很长一段时间内处理了大量的SVN之后,我终于考虑将我和我的开发人员转移到Git,因为它很容易协作和合并工作,还有一个很大的优势是,本地副本的更改可以根据需要提交,然后最终推送到服务器上的分支,而不像SVN(我们必须不时地在服务器上的存储库中提交更改)。
谁能帮我决定我是否真的应该使用Git?
Git在Windows下还不受本地支持。它针对Posix系统进行了优化。然而,运行Cygwin或MinGW可以让你成功运行Git。
现在我更喜欢Git而不是SVN,但是如果你来自CVS, SVN的土地,它需要一段时间才能超过阈值。
我并没有真正回答你的问题,但如果你想要分布式版本控制的好处——听起来是这样的——并且你正在使用Windows,我认为你最好使用Mercurial而不是Git,因为Mercurial对Windows的支持要好得多。Mercurial也有Mac移植版本。
推荐文章
- 当git说它正在“解析delta”时,它实际上在做什么?
- Git命令将一个文件夹移动到另一个文件夹
- 在单个文件中重新启动/撤消冲突解决方案
- Visual Studio代码如何解决合并冲突与git?
- 无法推送到远程分支,无法解析到分支
- Git:如何将数据库重置为特定的提交?
- 如何在合并期间使用Git和命令行保存本地文件或远程文件?
- 能够用一个命令推到所有git遥控器?
- 重新基于Git合并提交
- 忽略已经签入目录的内容?
- 如何完全删除TFS绑定
- 哪些Eclipse文件属于版本控制?
- 如何从windows cmd保存git提交消息?
- (Mac) -bash: __git_ps1:命令未找到
- 如何删除多个已删除的文件在Git仓库