Master: git add
In this video, we'll learn some of the additional options for
We covered how to add individual files and multiple files in the init video.
Now, let's master some of the nuances of
git add as well as its additional options.
git add . has two nuances.
First, it only adds files under the current directory. So, if you run
git add . within a sub directory, it won't add changes to files outside that sub directory.
git add . adds both tracked and untracked files.
Let's demonstrate this, by creating a file in the current directory as well as a file in a sub-directory.
Now let's change into the sub-directory and run
git add .
If we run
git status, we'll notice only the file in the sub-directory was added.
You can avoid by using
git add -A. This will add all changes to all files within the Git repository, regardless of our current directory.
Let's create another file in the sub-directory to demonstrate this.
git add -A.
git status shows us all files were added.
git add -A adds all the things, it a rather heavy-handed command.
For example, you might not want to add untracked files.
In which case, you can use
git add -u to skip untracked files and only add tracked files.
While each of these options has their use, the option I use the most is
git add -p.
-p stands for patch.
git add -p will gather all changes in tracked files and allow you to review them interactively.
Let's demonstrate by making some changes to a couple of the files.
Let's just add a few lines to File 1 and a line above and below the content in File 2.
git add -p will open a command prompt where we can tell Git what to do with each change.
There are several options, we can type
y to add the change and continue to the next change.
We can type
s to split the current change into smaller changes.
We can type
n to not add the change.
And at anytime we can type
q to quit.
git add -p not only because it gives me full control of what changes are added, but also because it provides a chance to review my changes.
More often than not, I'll find I left a debugging statement or some other change I don't want to add.
Regardless of which option you prefer,
git add will be one of the Git commands you use most.
So take the time to master each of them and run
git help add for more details.