Experimenting and making mistakes is a great learning experience. Just make sure to check that you're solving the right problem or using the right tools.
Source control is great, but you don’t want it to keep track of everything. Passwords, temporary changes, and desperate debugging edits are best kept out.
--force-with-lease checks that the remote branch is in the state that we expect. If there are upstream changes your local repository doesn't know about, the push will be rejected.