If you enabled one or more modules, then you will need to run
magento setup:upgrade to update the database schema.
magento setup:upgrade clears compiled code and the cache. Typically, you use
magento setup:upgrade to update components and each component can require different compiled classes.
magento setup:upgrade --keep-generated
--keep-generated option should be used only in limited circumstances by experienced system integrators.
--keep-generated should never be used in a development environment.
Improper use of this optional parameter can cause errors during code execution.
As the topic creator asked me:
But its just so strange for me, because everytime I'm doing some
changes, they won't be visible until after I run the setup:upgrade
command. Even if I delete the var/cache, its still not visible. Do you
know any reason for this?
var/cache in Magento 2 is not enough to makes changes visible like Magento 1. In Magento 2, you will need to clears
var/di if you compiled code) after you made changes inside your code, especially whenever you change something inside the constructor.
You will also need to clear
var/view_preprocessed if you change something inside your template file (.phtml)
The rest will goes to
Hope this helps.