最近学习了 Git 的基本概念。我们确实使用了一些 git-svn 来熟悉使用它。我想和我的朋友一起在 git 上开始我的第一个“真正的”项目。
因此,我想问一下,一般来说使用 Git 的最佳实践是什么,以及我熟悉的 SVN 开发人员是否会遇到任何陷阱?
多个开发人员之间的协作可能最好使用中央“裸”存储库来完成,这大致类似于 Subversion 中的存储库。在两个或更多人之间仅使用自己的存储库共享更改是困难的并且容易出错。此外,来自 Subversion 背景的使用中央存储库会感觉更舒服。
Git 的一大优点是您可以轻松拥有多个“通用”存储库。我有我的开发设置,所以我在一个我通常与之交互的服务器上保留了一组裸存储库(我的大多数项目的“起源”),但对于某些项目,我也将整个东西推送到 GitHub。我不必选择哪个是单一中央存储库,我可以从 GitHub 存储库中提取和工作,然后再推送到我自己的副本。
认为 Git 是带有坏口音的 SVN 是有缺陷的。这个最近的问题展示了 Git 中的两个在 SVN 中可能有意义的陷阱:
rebase
在 Git 中应该替换为merge
. 与其他人的更改合并有时会导致许多不必要的合并冲突,从而rebase
避免。另一个主要缺陷在Git FAQs的“Unexpected Beharviour”下得到了很好的表达:
A quick rule of thumb is to *never* push into a repository
that has a work tree attached to it, until you know what you are doing.
在手册页的某处,它温和地解释说这可能“导致意想不到的结果”。就像失去了别人的所有工作。
这个Git SVN 速成课程将在您仍然在 SVN 中思考的同时轻松过渡到 Git。
在GitHub 上获得一个帐户并使用它来维护一些工作的、非必要的代码是找到自己的最佳方法的好方法。我发现Network Visualizer对于“查看”正在发生的事情非常有帮助,因为我尝试使用 git 进行各种操作。