Commit
Commit only what you changed in this session. Other sessions may be working in the same repo at the same time; that is expected, and none of their work is yours to commit.
Process
- List your files. From this conversation, write down every file you created, edited, or deleted. If you touched nothing, say so and stop.
- Check the tree. Run
git status --porcelain. Anything not on your list belongs to someone else, ignore it completely. - Drop the overlaps. For each of your files,
git diff -- <path>(git diff --cachedtoo if it is already staged). If it contains changes you did not make, leave that file out, the other session will commit it. Note which files you skipped. - Stage explicitly.
git add -- <path> <path> …with your remaining files, by exact path. Nevergit add -Aorgit add .. Re-rungit status --porcelainand unstage anything foreign. - Commit. Conventional Commits subject:
type(scope): summary: imperative mood, lowercase, no trailing period, under 72 chars. Types:feat,fix,refactor,docs,test,chore,perf,build,ci. Scope optional. Add a short body only when why is not obvious from the diff. No attribution or co-author trailers. - Report. One line: the commit subject, the short SHA, and any files you deliberately left out and why. Do not push unless asked.
Guardrails
- Commit to the current branch, whatever it is. Never switch, create, or suggest a branch,
not even when the current branch is
main/master. Nogit checkout,git switch,git branch. - One session's work, one commit. Do not amend, rebase, or touch existing history.
- If the changes are genuinely two unrelated things, make two commits, still your files only.
- Never
git stash,git checkout --, orgit reset: a parallel session's uncommitted work is unrecoverable if you discard it.