Git - The Basic Workflow

Git is a version control system (VCS) that allows to keep track of the changes made to a project over time.

Git records the changes you make to a project, stores those changes and then allows you to reference them as needed.

From the following article you will learn what does the basic Git workflow consist of and the simple Git commands for everyday use.

The Basic Git Workflow

The usual Git workflow is the following:

  • After creating a Git Repository, your work is done in the Working Directory
  • Once your work reaches a significant point (for example fixing of some bug or the end of the working day), you add your changes to the Staging Area
  • Once the stagging area contains everything you intend to commit, you save changes to the Git Repository

A Git project can be thought of as having 3 parts:

Part Description
Working Directory Where you do all the work: create, edit, delete and organize files
Staging Area Where you list the changes you made in the working directory
Git Repository Where Git permanently stores those changes as different versions of the project

Create a New Git Repository

Open a directory with an existing project or create a new directory and run the following command inside it to create a new Git repository:

$ git init

This command creates the ".git" sub-folder in the project root, which contains all of the necessary metadata needed by Git.

Check the Status of the Git Repository

Check the current state of the Git repository:

$ git status

This command is the main tool that helps to determine which files are in which state (which are added to the stagging are and which are untracked).

Untracked means that Git sees the file but has not started tracking changes yet. In order for Git to start tracking a file, it has to be added to the staging area.

Track Files in Git

Run the below command to tell Git to start tracking a file (add to the staging area):

$ git add <filename>

To start tracking all files, run:

$ git add .

Show Differences in Git

Since the files are tracked, we can check the differences between the working directory and the staging area with:

$ git diff

To show the changes that were made to a particular file, run:

$ git diff <filename>

Read more: Git - Undo All Uncommitted Changes

Save Changes in Git

A commit is the last step in the Git workflow.

A commit permanently stores changes from the staging area inside the repository.

Commit all changes from the stagging area:

$ git commit -m "Brief description"

Commit a single file only:

$ git commit -m "Brief description" <filename>

Good practice for Git commit messages:

  • Must be in quotation marks
  • Written in the present tense
  • Should be brief (50 characters or less)

View the Commit History

List the commits made in the Git repository:

$ git log

Read more: Git - The Change History of a Specific File

Basic Git Commands

Summarizing all the above, here are the basic Git commands for everyday use:

Command Description
git init Creates a new Git repository
git status Inspects the contents of the working directory and staging area
git add Adds files from the working directory to the staging area
git diff Shows the difference between the working directory and the staging area
git commit Permanently stores file changes from the staging area in the repository
git log Shows a list of all previous commits