Using git add
The command git add stages a file. In terms of Gitâs file classifications, if a file is untracked, git add converts that fileâs status to tracked. When git add is used on a directory name, all of the files and subdirectories beneath it are staged recursively.
Letâs continue the example from the previous section:
$git status
# On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # .gitignore # data # Track both new files. $git add data .gitignore
$git status
# On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: .gitignore # new file: data #
The first git status shows you that two files are untracked and reminds you that to make a file tracked, you simply need to use git add. After git add, both data and .gitignore are staged and tracked, ready to be added to the repository on the next commit.
In terms of Gitâs object model, the entirety of each file, at the moment you issued git add, was copied into the object store and indexed by its resulting SHA1 name. Staging a file is also called âcaching a fileâ[10] or âputting a file in the index.â
You can use git ls-files to peer under the object model hood and find the SHA1 values for those staged files:
$ git ls-files --stage
100644 0487f44090ad950f61955271cf0a2d6c6a83ad9a 0 .gitignore
100644 534469f67ae5ce72a7a274faf30dee3c2ea1746d 0 data
Most of the day-to-day changes ...
Get Version Control with Git now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.