Difference between dbt run, dbt full refresh & dbt test

Hello everyone, I have almost zero exposure to dbt. I have gone through the documentation of it but got even confused. Can someone please explain in layman’s terms

  1. what happens when I run “dbt run -m” command.
  2. what happens when I run “dbt run --full-refresh -m” command.
  3. what is the best way to bring the latest data amongst the 2 mentioned above.
  4. why do add “+”. and what is upstream?
  5. why is “-m” used in dbt?
  6. what does “dbt test -m” query do?

I know my questions are very trivial but please let me know why do we use them?

Thank you.

All these question are answered very clearly in the fundamentals course, would be a great place to start.