If you enjoy surprises you could skip this but since youre here lets use git status to avoid future screaming. This command is the polite way to ask your repository whats going on before you rewrite the timeline.
Run git status at the project root
Open a terminal in the repository root and run the command. You will see the current branch name any tracked changes and whether your local branch is ahead or behind the remote. This is the safest first move before editing files or force pushing like a monster.
git status
Understand the three output groups
The output groups files into three easy to ignore piles. Learn them and you will stop committing by accident.
- Untracked files are new files that Git has never met. Add them if you want them remembered.
- Modified files are tracked files with changes in your working tree that are not staged yet.
- Changes to be committed are staged files ready to become part of history.
Stage exactly what you want
Staging is choosing which changes deserve to live forever. Use git add to stage one file or many files. If you stage everything by accident you can unstage with git reset HEAD path to fix the drama.
git add path/to/file
git add .
Commit like a considerate human
Once staged run git commit with a short descriptive message. Your future self will buy you coffee if the message is useful. If not expect grudges from descendants reading the log.
git commit -m "Short summary of change"
Verify and sync with remote
Run git status again to confirm the working tree is clean and the staging area is empty. The command will also report if you need to push or pull to sync with the remote. When things look good push to the shared repo and move on with life.
Handy tips
- Use git status -s for a compact summary when many files clutter the output.
- Use git diff to inspect unstaged changes and git diff --staged to see what is about to be committed.
- Write concise clear commit messages so blame and archaeology are less painful.
Thats it. Run git status often and pretend you knew what you were doing the whole time.