使用 --prefer-source 可从源码创建项目并保留 .git 目录,前提是包的 composer.json 中配置了 source 且可访问;执行如 composer create-project laravel/laravel myapp --prefer-source 后需检查 .git 目录是否存在,结合 --keep-vcs 与 -vvv 更佳。

使用 composer create-project --prefer-source 可以从源码创建项目,同时保留版本控制信息(如 .git 目录),前提是包的源地址是通过 Git 等 VCS 托管的,并且 Composer 能正确识别并克隆源。
--prefer-source 告诉 Composer 优先从项目的源代码仓库(如 GitHub、GitLab)克隆项目,而不是下载打包的压缩文件(dist)。这样会包含完整的 .git 目录,便于后续开发和提交。
常见场景:运行以下命令:
composer create-project vendor/package-name project-directory --prefer-source例如,创建 Laravel 项目并保留 .git:
composer create-project laravel/laravel myapp --prefer-source执行后,Composer 会尝试从源(如 GitHub 的 Git 仓库)克隆代码,而非下载 zip 包。
并不是所有情况下都会生成 .git 目录。需满足以下条件:
示例 source 配置:
"source": { "type": "git", "url": "https://github.com/laravel/laravel.git", "reference": "master" }项目创建完成后,进入目录检查:
cd project-directory如果看到 .git/ 目录,说明源码克隆成功。你可以执行 git log、git status 等操作。
若没有 .git 目录,可能是 Composer 回退到了 dist 下载。可通过增加 -vvv 查看详细日志:
composer create-project vendor/package --prefer-source -vvv例如:
composer create-project laravel/laravel myapp dev-master --prefer-source --keep-vcs基本上就这些。只要包支持源码安装,--prefer-source 就能帮你拿到带 .git 的完整项目。不复杂但容易忽略配置细节。
以上就是如何使用 composer create-project --prefer-source 拉取带 .git 目录的项目?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号