ChatGPT解决这个技术问题 Extra ChatGPT

composer discard changes: what do the [y,n,v,d,s,?] do

Simple question that's been bugging me for months.

Occasionally I'll dive into the vendors directory to fix a bug (especially for our internal libs). After migrating and deploying the fix back to the source package, I'll composer update company/package in the main project and am asked:

Discard changes [y,n,v,d,s,?]

I have a decent grasp on y and n but haven't been able to find documentation about what v, d, s, ? do? I always hit y but maybe I'm missing out on something useful.

Edits:

added d option (oct '17)

Have you tried using ?? This will probably bring up a nice help message.
Sure. Things is it takes about two minutes for composer to do the update, recognize the dirty state and when doing actually work muscle memory kicks in I hit y and have no ability to hit ? without waiting another couple of minutes. I figure if I'm scratching my head others are too.

M
Mark Fox

Choosing ? shows you the details:

y - discard changes and apply the update
n - abort the update and let you manually clean things up
v - view modified files
d - view local modifications (diff)
s - stash changes and try to reapply them after the update

You can also check the source code, the relevant part is here.


J
Jon Winstanley

If you run with the --no-interaction, you can set discard-changes: true in composer.json file and you wont get prompted for this option every time.

Or, run:

COMPOSER_DISCARD_CHANGES=true composer install --no-interaction


Is there anyway to make this option kick in without running with --no-interaction
@JakeSylvestre maybe a year late, but this might be useful for others with similar problem: stackoverflow.com/a/18812171/1097372
@lyas Ah, great! Thanks.
There is env var to control discard-changes COMPOSER_DISCARD_CHANGES=true composer install --no-interaction