A tool to help users utilize git based on the current git status.
The tool identifies the following statuses:
-
Uninitialized: The directory has not been initialized with
git init
. -
Initialized: The directory has been initialized with
git init
but does not have any commits yet. -
Clean: There are no uncommitted changes in the working directory or staging area. No changes can be added or committed.
-
Unstaged: Changes are present that can be added to the staging area. Nothing can be committed or pushed.
-
PartiallyStaged: Some changes in the working directory have been staged, while others have not. Some changes have been added with
git add
, but not all, and they are ready to be committed. -
FullyStaged: There are no uncommitted changes in the working directory, but there are changes that have been staged. Changes have been made and staged with
git add
, but have not been committed yet. -
PartiallyCommitted: Some changes have been committed, while no changes remain uncommitted in the staging area. Files can still be added to the stage with
git add
. -
MessPartiallyCommitted: Some changes have been committed, while other changes remain uncommitted in the working directory or staging area. Changes can be committed with
git commit
or pushed withgit push
. -
MessFullyCommitted: All changes from the staging area have been committed, while other changes remain uncommitted in the working directory.
-
FullyCommitted: All changes from the staging area and working directory have been committed.
-
Conflicted: Conflicts have arisen after a
merge
orrebase
.
Flow shows what user should do based on the status.