# Document Title
- user must initialize a directory with version control
- user must add a file to stage
- user must add all files in a project to stage
- user must add a directory to stage
- user must add all files in a directory to stage
- user must record staged changes
- user must record staged changes with a custom message
- user must create identity
- user must update identity name
- user must update identity email
- user must // something about ssh key
// not clear what private key i use by default
// what are the dangers of identities? what happens if I lose key? what happens if I compromise the key? what happens if I update a new key?
- user must clone repository over ssh
- user must pull repository over ssh
// do we have bare repos? why do we not have bare repos?
- user must push repository over ssh
- user must clone over http
// can we push over http?
- user must ignore a file from tracking
- user must merge two versions of repository
- user must see log of changes
- user must rewrite history of changes
- user should remove file from history of changes `a.k.a git filter-repo --path log --invert-paths`