如何设置Git

时间:2017-05-19 11:55:43

标签: git svn

我被任命为我的经理建立GIT资料库的任务。 不幸的是,我没有GIT的经验。

很多教程都使用GitHub,这不是我想要或不符合我的需要。

情景:

- 团队中的开发人员将拥有自己的本地存储库。

- 将在另一台Windows机器上的远程存储库(通过远程登录)。如果无法做到这一点,那么远程存储库可以位于共享驱动器上。

- 所有开发人员都应该能够推/拉

- 理想情况下,远程存储库将是所有项目(如SVN)的一个存储库,而不是每个项目的单个存储库

- 加入团队的新开发人员应该能够从远程存储库中获取并能够下载所有团队项目。 (如在SVN中)

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

当有人一直说“它需要像SVN一样工作”时(他们曾经说过“它需要像CVS一样工作”),他们会让自己多年失望。事实是,git不是SVN。

git中的repo应代表一个项目。如果你真的必须拥有一个可以提取所有东西的超级仓库,我会查看子模块或子树,这样每个项目仍然可以拥有自己的存储库。我甚至都不推荐。

如何设置远程仓库有很多选项。您可以将它们放在Windows服务器上,通常在HTTP服务器后面。您可以使用任意数量的服务器端产品来更智能地托管repo。如果你的组织有一个现代版本的TFS,它可以很好地服务git repos。共享驱动器当然也可以工作,但可能效率低下。

当你说开发者将“拥有一个回购”时 - 嗯,是的,这对git来说非常强制。但更重要的是,开发人员无法随意创建他们想要的任何仓库的其他实例(克隆)。再次,这就是git的本质。

如果你学会用git来处理git,而不是试图让它“感觉像”SVN,你可能会有一个非常愉快的体验,并发现它比SVN更适合你。如果你试图像SVN一样对待它,你将成为那些总是声称git以某种方式丢失数据的人之一。

答案 1 :(得分:-1)

让我们一点一点地回答你的问题:

  

我被任命为我的经理建立GIT资料库的任务。不幸的是,我没有GIT的经验。

周围有没有人?让他们这样做会非常棒,或者至少让他们引导你完成它。在团队开始使用git时设置存储库可以使一切变得轻而易举,或者导致将来无休止的痛苦。让git运行起来很容易,但决定存储库策略不是那么多。

  

团队中的开发人员将拥有自己的本地存储库。

是的,这就是分布式VCS的方式。

  

将在另一台Windows计算机上的远程存储库(通过远程登录)。如果无法做到这一点,那么远程存储库可以位于共享驱动器上。

你不希望遥控器在共享驱动器上,不。这会让你遇到各种各样的麻烦;众所周知,共享驱动器的文件锁定,并发访问以及所有这些都是错误的。远程登录是可行的方法。

快速google的“git服务器窗口”证明你可以在Windows上使用git over ssh变体(这是Unix服务器上通常的简单解决方案)。困难的部分似乎是设置ssh服务器,之后,git应该是轻而易举的。由于这只与这个问题相关,我会请你自己谷歌,前几次点击都很好。

你有一些Unix服务器吗?那么使用那个是最简单的。

  

所有开发人员都应该能够推/拉

当然,这就是DVCS的工作方式。

  

理想情况下,远程存储库将是所有项目(如SVN)的一个存储库,而不是每个项目的单个存储库

不。你绝对不希望如此。这没有任何意义,除非在非常具体的情况下,如果你真的很清楚你在做什么。 git就是没有像那样被使用。

  

加入团队的新开发人员应该能够从远程存储库中获取并能够下载所有团队项目。 (如在SVN中)

你的意思是什么?如果这对您来说非常重要,那么您可以在创建单个存储库之后创建一个“主存储库”,其中包含其他每个存储库的子模块。然后他们实际上可以像SVN一样工作,虽然我真的,真的建议不要这样做,因为这可能是一个非常高级的主题。虽然表面看起来很简单,但存在很多陷阱。

我在各行之间读到,对你队伍中从svngit的转换有一些阻力,或者你假设“像在svn中那样做”会以某种方式让它变得更容易。事实并非如此。 gitsvn根本不同。你(作为一个团队)会像git一样使用svn给自己带来巨大的伤害,并且不会以这种方式获得任何好处(或者实际上根本不可能做到简单的分支/合并方案)。

此外,我确实建议您先让自己成为git专家(通过大量阅读,在游戏环境中试用和错误),或者找到{ {1}}贵公司的专家在继续之前。