【发布时间】:2010-09-12 17:05:08
【问题描述】:
我使用“传统”版本控制系统来维护过去项目的源代码存储库。我正在与一个分布式团队开始一个新项目,我可以看到使用分布式系统的优势。鉴于我了解 SourceSafe、CVS 和 Subversion;你对 Git 新手有什么建议?
【问题讨论】:
标签: git version-control
我使用“传统”版本控制系统来维护过去项目的源代码存储库。我正在与一个分布式团队开始一个新项目,我可以看到使用分布式系统的优势。鉴于我了解 SourceSafe、CVS 和 Subversion;你对 Git 新手有什么建议?
【问题讨论】:
标签: git version-control
Git - SVN Crash Course 是一本不错的入门读物。
【讨论】:
根据我自己从 Subversion 迁移到 Git 的经验,最重要的不是你需要学习什么,而是你需要忘却。分布式版本控制非常与集中式版本控制不同。 CVC 是 DVC 的一个子集,所以你可以在 DVC 工具中进行 CVC,但它会比使用 CVC 工具更复杂。
尝试忘记 CVC,并进入 DVC 思维模式。如果您最终只是在 DVC 工具中进行 CVC,那么您只会对所有增加的复杂性感到沮丧,并且您不会意识到增加的复杂性在灵活性方面给您带来了什么。
所有 DVC 工具都非常棒并且非常强大地支持分支和合并。用它。所有的历史都触手可及。用它。 (例如:永远不要注释掉代码,只需将其删除即可。即使在没有互联网连接的飞机上,您也可以随时取回它。)
Git 的一个非常重要的方面:所有其他工具都有或多或少定义的工作流程。吉特没有。 Git 是一个 DVCS 工作流构建工具包。这使得有时很难知道该做什么:您必须设计和实现自己的工作流程(提示:使用大量的 shell 脚本)。我使用 Git 一年多了,我还没有完全弄清楚我的工作流程。
【讨论】:
【讨论】:
在提交文件之前,必须将它们添加到 Git 暂存区域 - 每次。为了让这更容易,有一个-a 选项可以添加所有跟踪的文件,如git commit -a。
另外,当您执行git diff 时,它只会显示您的工作副本与暂存区域中的内容之间的区别。如果您已将更改的文件添加到暂存区域,git diff 可能不会报告任何内容,即使您可能有未提交的更改。请使用git status 确定。
【讨论】:
我在公司尝试过 git。 我们使用 CVS 并希望转向更好的 VC 工具。 我们选择 git 作为文件版本控制的最佳工具(Linus on GIT)。 它的性能是最好的,对于深入了解版本控制的开发人员来说,它是一个非常好的工具,但对于在后台使用版本控制并且不想学习如何使用的普通开发人员来说,这是一场噩梦。几个小时(他们确实需要学习很多东西)
此外,它与现有 IDE 的集成距离完整还很遥远。 对于普通开发人员来说,整体可用性是一个相当大的问题。
在与 4 名开发人员进行试点后,我们改用 Subversion 作为最简单但不是那么优越的工具。
Subversion MultiSite 也有商业解决方案(我们还没有尝试,但很快就会尝试)-WANDisco
【讨论】: