After staging, you can now proceed to save the snapshot, aka creating a commit.
Saving a snapshot of a repository is called committing, and the saved snapshot itself is called a commit.
Git constructs a commit based on the staging area. When you examine the staging area using a CLI command or a Git GUI, you are typically shown only a list of staged changes. This presentation can give the misleading impression that the staging area is merely a record of changes you have selected to include in the commit. In reality, the staging area which Git internally calls the index, is a complete record of the exact version of every tracked file that would be written into the next commit, not just a record of staged changes. This behaviour aligns more closely with the name "index" than the name "staging area".
A Git commit is therefore a full snapshot of all tracked files. More precisely, a record of the exact state of all files in the staging area at that moment -- even the files that have not changed since the previous commit. This contrasts with to the intuitive expectation that only the is stored in a commit. Consequently, a Git commit has all the information it needs to recreate the snapshot of the tracked files in working directory at that point in time. In addition to the file contents, a commit also stores metadata such as the author, date, and an optional commit message describing the change.
C1 ← a commit
e.g., author, date, commit message
staging area
[if this is right after the commit was created, no changes will appear here, i.e., the staging area matches the snapshot in the commit]
├─ fruits.txt (tracked)
└─ colours.txt (tracked)
Following from this, the state of the staging area is not "empty" right after a commit. Rather, it is empty of changes. It still contains a record of all tracked files, reflecting exactly the versions that were written into the previous commit.
A Git commit is a snapshot of all tracked files, not simply a delta of what changed since the last commit.
Target To create a commit based on staged changes.
Preparation
Option 2: Continue with the sandbox from the previous hands-on practical
1 First, let us do a sanity check using the git status command, to confirm there are staged files.
git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: fruits.txt
2 Now, create a commit using the commit command. The -m switch is used to specify the commit message.
git commit -m "Add fruits.txt"
[main (root-commit) d5f91de] Add fruits.txt
1 file changed, 4 insertions(+)
create mode 100644 fruits.txt
3 Verify the staging area is empty using the git status command again.
git status
On branch main
nothing to commit, working tree clean
Note how the output says nothing to commit which means the staging area is now empty.
1 Ensure the new file fruits.txt has been staged.

2 Click the Commit button at the top of the window.

3 Enter a commit message (e.g. add fruits.txt) into the text box.

4 Click Commit.

done!