Git Common Operation


In this guide, I’m going to show how to create a local repository and use it.”

Initialzing a git repository

Create a work directory. (Optional)

First, create a folder called frontend in /tmp directory and navigate into it.

mkdir frontend
cd frontend
Initializing the repository

Within the frontend directory, run git init to initialize the repository.

git init

The following output confirms successful initialization:

Initialized empty Git repository in /tmp/frontend/.git/

Alternative Method:

You can initialize a repository directly without manually creating the folder by specifying a directory name:

git init html

This command:

  • Creates a ./html directory if it doesn’t exist
  • Initializes the repository within it

Working Directory Operations

A local git repository consists of three primary areas:

  • The working directory or working tree (your current file system location)
  • The staging area or index (where tracked file changes are prepared for commit)
  • The git repository proper (the .git directory storing version history)
Create files in working directory

Create two files named index.html and style.css. These two files are in the working directory.

touch index.html style.css
git status

Run git status, the following output shows two untracked files:

git status
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	index.html
	style.css

nothing added to commit but untracked files present (use "git add" to track)
Stage the files for tracking

Now we use git add command to track files:

git add index.html style.css

We can also use git add . to track all files in current directory.

git add .

Run git status again, the following output shows two tracked files:

On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   index.html
	new file:   style.css

These two files are in the staging area.

Modifying tracked files

Now we add some content to the index.html.

echo<!DOCTYEP html> > index.html

Then run git status:

$ git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   index.html
	new file:   style.css

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   index.html

Output reflects dual status. Run git add command again:

git add index.html

Run git status again:

git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   index.html
	new file:   style.css

Both files remain staged with the latest changes. Here’s a illustrator about the process:

git staging illustrator

Committing changes

Creating the initial commit

Commit staged files to the repository by using git commit -m description info:

git commit -m “First commit”

Successful commit output:

[main (root-commit) a51bee4] First commit
 2 files changed, 1 insertion(+)
 create mode 100644 index.html
 create mode 100644 style.css

This command puts the snapshot in the staging area to local repository.

git committing illustrator

Verifying commit history

Run git log command to verify commit history, we should see the message:

git log
commit a51bee47036d73f491973097696df52af569d60f (HEAD -> main)
Author: Bob <example@iters365.com>
Date:   Tue Jul 15 09:15:30 2025 +0800

    First commit

Finally, we initialize a repository, track files and keep the files in the repository.