Estou usando o aplicativo de esqueleto ZF2 e ele tem um .gitignore que impede que bibliotecas externas sejam enviadas para o git. Durante a depuração, gosto de mudar algumas coisas aqui e ali no código-fonte das bibliotecas para aprender como as coisas funcionam. Se estes fossem controlados por versão, seria muito fácil revertê-los de volta ao seu estado original.
Como posso forçar o Composer a reinstalar uma estrutura específica para que eu possa obter uma cópia -não modificada- novamente?
PS: Não sugira remover o arquivo .gitignore, pois ele está lá por um motivo; ele impede que minhas bibliotecas de terceiros entrem no repositório do meu aplicativo. Sempre posso instalá-los durante uma implantação automatizada.
php
zend-framework2
composer-php
Julian
fonte
fonte
Respostas:
Você pode usar o
--prefer-source
sinalizador do composer para fazer check-out de pacotes externos com as informações VCS (se houver alguma disponível). Você pode simplesmente voltar ao estado original. Além disso, se você emitir ocomposer update
comando composer irá detectar todas as mudanças feitas localmente e perguntar se você deseja descartá-las.Seu arquivo .gitignore está relacionado ao seu projeto raiz (esqueleto ZF2) e evita que o diretório do fornecedor (onde estão as bibliotecas de terceiros) se comprometa com seu próprio VCS. O arquivo ignore não está relacionado ao repositório git de seus fornecedores.
fonte
composer status -v
me deu as informações com as alterações.Basta limpar a pasta de fornecedores
fonte
composer clearcache
é um bom complemento em tais casos.composer require vendor/package
fará o que o OP deseja e em menos tempo também. Estou um pouco surpreso que tantos tenham votado a favor desta resposta.Eu não queria excluir todos os pacotes do
vendor/
diretório, então aqui está como fiz:rm -rf vendor/package-i-messed-up
composer install
novamentefonte
composer clearcache
primeiro, caso o cache tenha sido corrompido por algum motivo.O que eu fiz:
composer update --prefer-source vendor/library-name
Ele busca a biblioteca novamente junto com seu git repo
fonte
composer clearcache
primeiro, caso o cache tenha sido corrompido por algum motivo.Reinstale as dependências. Remova a pasta vendor (manualmente) ou via comando rm (se você estiver na pasta do projeto, claro) no Linux antes de:
https://www.dev-metal.com/composer-problems-try-full-reset/
fonte
Como o usuário @aaracrr apontou em um comentário sobre outra resposta, provavelmente a melhor resposta é exigir novamente o pacote com a mesma restrição de versão.
ie.
ou especificando uma restrição de versão
fonte
Por alguma razão, ninguém sugeriu a maneira óbvia e mais direta de forçar a reinstalação:
fonte