composer create-project和git clone之间的主要区别是什么?

时间:2013-10-01 10:40:16

标签: git composer-php

我想开发一个基于Laravel框架的Web应用程序,而根本不需要对框架做出贡献。我喜欢在开发自己的Web应用程序时定期从框架获取更新。我也喜欢为自己和我的队友使用版本控制系统。

我不确定在

之间使用哪种策略

使用作曲家

composer create-project laravel/laravel webproject --prefer-dist

并定期使用

与Laravel保持更新
composer update

使用git

git clone https://github.com/laravel/laravel.git webproject

并定期使用

与Laravel保持更新
git pull

它们之间有什么主要区别?我知道的是 composer create-project --perfer-dist 带有清理版本控制,还有什么?

如果我首先使用git clone,使用 composer update 从框架获取更新会造成什么伤害吗?

1 个答案:

答案 0 :(得分:3)

据我所知,它包含在该存储库中,它只是一个空的目录结构,带有一些额外的样板代码,在启动一个新项目时需要相同的代码。所以实际上,在开始一个新项目时不必创建所有这些目录并创建所有这些配置文件是很好的。

但另一方面,如果在启动项目之后更新,那么在任何情况下都不会受益。任何将在其中提交的更改都旨在帮助项目启动,因为框架中的某些内容已更新,因此需要更改空布局。

此外,当你克隆一个回购时,你理论上想要回到它 - 这不是这里的情况,因为你即将开始的项目应该加入到这个空项目。

因此,正确的方法是始终使用composer命令,并且永远不要克隆存储库,除非您想在该确切的存储库中添加一些内容作为对社区的贡献。

另一个评论:调用composer update将获取composer.json中可用和提及的最新版本,您将对其进行扩展。这还包括Laravel框架的最新发行版本,版本“4.0。*”。 git pull只会更新空布局,可能会破坏您已经做出的更改(您必须以某种方式解决冲突),并且您没有获得最新的Laravel框架,因为它未被包含。您还必须致电composer update

总而言之,克隆回购没有任何好处。只需抓取您自己的副本,将其放入您自己项目的存储库中,然后使用Composer更新任何依赖项,包括框架的更新。