WARNING: It is recommended to avoid using this command.
The command apt-get upgrade is very obedient.
It never tries to remove any packages or tries to install a new package on its own.
The command apt-get dist-upgrade, on the other hand, is proactive.
It looks for dependencies with the newer version of the package being installed and it tries to install new packages or remove existing ones on its own.
It has a “smart” conflict resolution system. It will attempt to upgrade the most important packages, at the expense of the less important ones.
This may lead to the removal of some packages, which you might not want. This is the main reason why dist-upgrade should be avoided on production machines.