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

Art*_*san 5 git composer-php

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

我不确定两者之间使用哪种策略

使用作曲家

composer create-project laravel/laravel webproject --prefer-dist
Run Code Online (Sandbox Code Playgroud)

并定期使用Laravel进行更新

composer update
Run Code Online (Sandbox Code Playgroud)

用git

git clone https://github.com/laravel/laravel.git webproject
Run Code Online (Sandbox Code Playgroud)

并定期使用Laravel进行更新

git pull
Run Code Online (Sandbox Code Playgroud)

它们之间的主要区别是什么?我知道的是,作曲家创建项目--perfer-dist带有清理版本控制,还有什么?

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

Sve*_*ven 4

据我了解,该存储库中包含的内容只是一个空目录结构,其中包含一些额外的样板代码,在启动新项目时同样需要这些样板代码。因此,事实上,在启动新项目时不必创建所有这些目录并创建所有这些配置文件是很好的。

但另一方面,如果在您启动项目后更新该存储库,您在任何情况下都不会受益。在那里提交的任何更改都是为了在项目启动时提供帮助,因为框架中的某些内容已更新,因此需要对空布局进行更改。

此外,当您克隆一个存储库时,理论上您会想要推回它 - 此处的情况并非如此,因为您即将启动的项目不应添加到这个空项目中。

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

另一条评论:调用composer update将获取可用的最新版本并在 中提到composer.json,您将对其进行扩展。这还包括 Laravel 框架的最新发布版本,版本“4.0.*”。git pull相反,只会更新空布局,可能会破坏您已经所做的更改(您必须以某种方式解决冲突),并且您不会获得最新的 Laravel 框架,因为它不包含在内。你还得打电话composer update

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