composer下载的内容是否需要提交到git
想问一下各位使用Composer的同学,通过Composer下载后的文件你们会把内容提交到Git上吗?
在官方的Faq上看到Should I Commit the dependencies in my vendor directory这篇文章,有建议是不提交到Git,那么应该如何处理切换分支就要重新composer install
这个问题呢?如果将vendor提交到版本库,那又应该如何处理包里面带有的.git文件夹呢?
*修正 composer update
应该为 composer install
回复内容:
想问一下各位使用Composer的同学,通过Composer下载后的文件你们会把内容提交到Git上吗?
在官方的Faq上看到Should I Commit the dependencies in my vendor directory这篇文章,有建议是不提交到Git,那么应该如何处理切换分支就要重新composer install
这个问题呢?如果将vendor提交到版本库,那又应该如何处理包里面带有的.git文件夹呢?
*修正 composer update
应该为 composer install
事实上无论是分支开发,还是部署到生产环境,无论composer.json
中版本号的通配符规则你怎么写,我们最关心的永远是一个最根本内容:开发当时,我们用的所有依赖库,具体的版本号是哪一个?
而这个内容是composer.lock
文件支持的。composer 本身通过维护 lock 文件,记录了依赖库产生任何改动之后,项目中所有依赖库的具体版本。请阅读关于此文件的文档。
你应当永远把composer.lock
文件提交到版本库,并在切换分支或部署之后,使用composer install
安装 lock 文件中指定的具体依赖版本。
从这个意义上讲,你是否将vendor
目录提交到主版本库都是对的。提交与否这是一个互有取舍的选择:
如果提交:
优势:“拉取即用”的便利。
劣势:信息重复。因为你开发当时的具体版本,lock 文件已经记录。也就是说
vendor
文件夹表述了同一件事情。劣势:引入不一致性的风险。因为虽然 Composer 保证 lock 文件和
vendor
目录一致,但提交到 git 版本库毕竟是一个人工行为。你难以保证哪一次不会落下二者之一。
如果不提交,优劣势反过来。不再重复。
我的想法是:我建议你坚持“正确性优于易用性”的思想。我的建议是不提交vendor
,仅仅使用 lock 文件维持开发当时的依赖库版本。
如果提交的话,请务必遵循以下两个准则:
(1)务必保证vendor
和composer.lock
这两个文件的提交是同步的。提了一个,必须提另一个。
任何开发,如果任何一次 commit 只交了其中一个,必须追责。
这个的理由是:虽然我们提交vendor
保证拉取下来立刻可用,但是 git 是有部分检出(checkout)功能的 —— 对于一个 Composer 项目,我有权遵照 Composer 项目的惯例,不检出vendor
目录,而是拉取下来实务代码之后随手一个composer install
,你不能说我错。
(如果谁说这个是错的,我支持你分分钟上sf和知乎曝光你的无良公司和技术主管)
(2)务必按照Composer对于提交vendor
文件夹的建议,忽略掉子库的所有.git
目录,只提交vendor
中的实务代码。
相信我,vendor
中的实质代码,和vendor/**/.git
下git库本身的管理用文件,绝对是冰山的水上部分和水下部分的关系。不忽略,会死人的,不夸张。
另外必须指出的是:分支开发时,就算不通过版本库同步vendor
,而只同步composer.lock
,也不会造成时间的浪费。
两个分支切换时,无非是两套具体版本换来换去。而 Composer 本身对所有下载的库都是缓存的。每次拉分支之后的composer install
必然命中全部的缓存,而不需要重复消耗下载的时间。
这个可以参考GitHub上的Laravel项目,https://github.com/laravel/laravel。
.gitignore文件:https://github.com/laravel/laravel/blob/master/.gitignore
也是很明显的不提交vendor文件夹。
首先如果你重来没有提交过 vendor 目录,切换分支也不需要 update,
其次正常情况下 vendor 下面的包是不带 .git 文件夹的。
至于需不需要提交 vendor 到git,这得看情况。
如果你是发布一个公开项目到 github,显然不需要提交,写好 composer.json 就可以了。
如果是私有项目,这看你是如何发布的。如果是打包,然后解压到服务器,可能需要提交,如果有更自动化的流程,比如自动更新,自动update,那你也可以不提交。
看你希望怎么管理项目,这方面没有定论,不过一个建议是应该把第三方库的版本依赖写确切,不要写通配,正常情况下也不要用composer update,第三方库又没问题为什么要update?除非你确实遇到第三方库当前版本有bug需要升级,或者你的新功能要依赖第三方库新版本的特性,不然你莫名其妙update干嘛?
一个准则,在开发任何新特性之前,第三方库的版本依赖就应该是确定的,这方面不能有含糊的地方,不然你这项目管理就是有问题了。
既然第三方库的版本确定,那么推不推vendor就是另外的问题了,如果你懒得部署时再install,那么大可以直接就推去远程把第三方库当成项目的一部分,这也是比较推荐的做法,因为打包捆绑的好处就是分发方便,这方面我是支持不忽略vendor的,当然更大的原因是天朝的网络……实在没法每次都重复等,妈蛋等啊等再好的撸码好心情也要等坏啊……

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Il existe de nombreuses façons d'installer Deepseek, notamment: Compiler à partir de Source (pour les développeurs expérimentés) en utilisant des packages précompilés (pour les utilisateurs de Windows) à l'aide de conteneurs Docker (pour le plus pratique, pas besoin de s'inquiéter de la compatibilité), quelle que soit la méthode que vous choisissez, veuillez lire Les documents officiels documentent soigneusement et les préparent pleinement à éviter des problèmes inutiles.

Deepseekai Tool User Guide et FAQ Deepseek est un puissant outil intelligent AI. FAQ: La différence entre les différentes méthodes d'accès: il n'y a pas de différence de fonction entre la version Web, la version de l'application et les appels API, et l'application n'est qu'un wrapper pour la version Web. Le déploiement local utilise un modèle de distillation, qui est légèrement inférieur à la version complète de Deepseek-R1, mais le modèle 32 bits a théoriquement une capacité de version complète de 90%. Qu'est-ce qu'une taverne? SillyTavern est une interface frontale qui nécessite d'appeler le modèle AI via l'API ou le olllama. Qu'est-ce que la limite de rupture

ElizaOSV2: L'autonomisation de l'IA et de la direction de la nouvelle économie de WEB3. Cet article plongera dans les principales innovations d'ElizaOSV2 et comment elle façonne une économie future axée sur l'IA. Automatisation de l'IA: Aller exploiter indépendamment Elizaos était à l'origine un cadre d'IA axé sur l'automatisation Web3. La version V1 permet à l'IA d'interagir avec les contrats intelligents et les données de la blockchain, tandis que la version V2 atteint des améliorations de performances significatives. Au lieu d'exécuter simplement des instructions simples, l'IA peut gérer indépendamment les workflows, exploiter des affaires et développer des stratégies financières. Mise à niveau de l'architecture: amélioré un

L'entrée des principaux acteurs du marché Castle Securities dans Bitcoin Market Maker est un symbole de la maturité du marché Bitcoin et une étape clé pour les forces financières traditionnelles pour concurrencer le pouvoir de tarification des actifs. Le 25 février, selon Bloomberg, Citadel Securities cherche à devenir un fournisseur de liquidité pour les crypto-monnaies. La société vise à rejoindre la liste des fabricants de marché sur divers échanges, y compris les échanges exploités par CoinbaseGlobal, Binanceholdings et Crypto.com, ont déclaré des personnes familières avec l'affaire. Une fois approuvé par l'échange, la société prévoyait initialement de créer une équipe de fabricants de marchés en dehors des États-Unis. Ce mouvement n'est pas seulement un signe

Investissement en niveaux de gris: le canal des investisseurs institutionnels pour entrer sur le marché des crypto-monnaies. La société a lancé plusieurs fiducies cryptographiques, ce qui a attiré une attention généralisée, mais l'impact de ces fonds sur les prix des jetons varie considérablement. Cet article présentera en détail certains des principaux fonds de fiducie de crypto de Graycale. Grayscale Major Crypto Trust Funds disponibles dans un investissement GrayScale GRAYS (fondée par DigitalCurrencyGroup en 2013) gère une variété de fonds fiduciaires d'actifs cryptographiques, fournissant des investisseurs institutionnels et des particuliers élevés avec des canaux d'investissement conformes. Ses principaux fonds comprennent: ZCash (Zec), Sol,

Des chercheurs de l'Université de Shanghai Jiaotong, de Shanghai Ailab et de l'Université chinoise de Hong Kong ont lancé le projet open source Visual-RFT (visual d'amélioration), qui ne nécessite qu'une petite quantité de données pour améliorer considérablement les performances du gros modèle de langage visuel (LVLM). Visual-RFT combine intelligemment l'approche d'apprentissage en renforcement basée sur les règles de Deepseek-R1 avec le paradigme de relâchement de renforcement d'OpenAI (RFT), prolongeant avec succès cette approche du champ de texte au champ visuel. En concevant les récompenses de règles correspondantes pour des tâches telles que la sous-catégorisation visuelle et la détection d'objets, Visual-RFT surmonte les limites de la méthode Deepseek-R1 limitée au texte, au raisonnement mathématique et à d'autres domaines, fournissant une nouvelle façon de formation LVLM. Vis

Observation hebdomadaire: les entreprises thésaurisation du Bitcoin - un changement de brassage que je souligne souvent certaines tendances du marché négligées dans des mémos hebdomadaires. Le mouvement de Microstrategy est un exemple brutal. Beaucoup de gens peuvent dire: "Microstrategy et Michaelsaylor sont déjà bien connus, à quoi allez-vous faire attention?" Cette vue est unilatérale. Des recherches approfondies sur l'adoption du bitcoin en tant qu'actif de réserve au cours des derniers mois montrent qu'il ne s'agit pas d'un cas isolé, mais d'une tendance majeure qui émerge. Je prédis qu'au cours des 12 à 18 prochains mois, des centaines d'entreprises suivront le pas et achèteront de grandes quantités de Bitcoin

Ce guide fournira un aperçu complet de la façon d'installer les derniers packages d'installation de EV Exchange sur les appareils iOS. OUYI Exchange est une plate-forme de trading de crypto-monnaie de premier plan qui fournit un large éventail de services de négociation de crypto-monnaie, de gestion des actifs et d'investissement. En suivant les instructions étape par étape fournies dans ce guide, les utilisateurs peuvent facilement et facilement installer l'application EUYI Exchange sur leur iPhone ou iPad. Ce guide convient à tous les appareils iOS, des modèles plus anciens à la dernière génération, et comprend des captures d'écran claires et des instructions détaillées pour assurer un processus d'installation transparent.
