Pushing gets your committed [[Working directory (git)|local work]] onto the shared [[Remote repository (git)|remote repository]] - backed up and visible to collaborators. Until you push, a change lives only on your machine, travelling through git's components in order: ![[Git areas#^flow|Git areas flow]] ## Flow 1. See what changed in [[Working directory (git)|working directory]]: ![[git status#^cmd|status]] 2. Stage the wanted changes to [[Staging Area (git)|staging area]]: ![[git add#^cmd|add]] 3. Commit your changes to [[Local repository (git)|local repository]]: ![[git commit#^cmd|commit]] 4. Push the changes to [[Remote repository (git)|remote repository]]: ![[git push#^cmd|push]] ^flow Remember about: - [[Descriptive commit message]] - [[Atomic Commits#^principle|Atomic commit]]