Patricia Sauer - Authentic Programming

Git 101: The Add Command

An abacus

By using the Git add command, you are adding file contents to the index. Files in the index can be part of a commit. You can specify this when doing the actual commit.

It is important to know that "The index holds a snapshot of the content of the woking tree". Pay attention to the word "snapshot". It means that the index holds the content of the file(s) at the time they have been added to it.

As a result, when you added a file by using the add command, changed it afterwards and want to perform a commit, the file will be committed with its contents when added, not the current contents. This leads to the conclusion that,

  1. "after making any changes to the working tree, and before running the commit command, you must use the add command to add any new or modified files to the index"
  2. the add command can be performed multiple times before doing a commit

How to use the add command

You can specify what to add in several ways. Firstly, you can specify a single file:

git add file1.txt

It is also possible to specify multiple files at once:

git add file1.txt file2.txt

When specifying a folder to add, you will add all files and subfolders with their files:

git add folderName

The add command makes it also possible to add all files and folders contained in your current working directory:

git add .

You can use the Git status command to "obtain a summary of which files have changes that are staged for the next commit".

Because files are added with their contents when the add command was performed, you can get an output like the following when using the Git status command:

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    new file:   file1.txt

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:   file1.txt

This output indicates that file1.txt was added at some point. Which is why it is listed below “changes to be committed”. Later on, changes have been applied to file1.txt which have not been added yet. Therefore, it is listed below “Changes not staged for commit”, too.

Reference

For full reference see Git add documentation.


© 2018 - 2022 Patricia Sauer