Git lesson 2: add and commit a file to a repo

In the previous lesson, you created a new folder called project_repo
that contained a file called doc1.txt
. You then initialized the folder as a repository by running the command git init
in that folder. Subsequently, Git started to monitor everything in your repository: new files, deleted files and changed files. You also learned how to check the current state of your repository using the git status
command, as well as the git st
alias you previously created.
In this lesson you will learn how to add a file so that Git knows to keep track of it. You will then save (i.e., commit) this change to your repository.
Add file to repository
You will now make Git track doc.txt
using git add <filename>
:
# Add file to repo
git add doc1.txt
# Check status of repo
git status
Running git status
will return:
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: doc1.txt
This message tells you there are changes in your repository that can now be committed. Specifically, the message says there is a new file in the repository. If you made a mistake and did not intend to add doc1.txt
to your repository, Git tells you to run git rm --cached doc1.txt
to undo your previous action.
Staging. When you add a new or changed file in Git, it is often referred to as staging a file. You can stage many new or changed files simultaneously. You can even use
git add *
to add all changes.Think of staging as a way of telling Git what new or changed files you want to include the next time you save the state of your repository. Rather than keeping a record for each added or modified file, you can add a selection of new and modified files, then save these changes as a single save or commit action. This flexibility allows you to group related changes together into one save action.
As you will see in future lessons, you can often skip the staging phase and directly save all changes made to your repository.
Now that you have told Git to start tracking doc1.txt
, have a look at the status of your repository with your st
alias:
git st
Running this command should return A doc.txt
, which informs you that you have a staged (or added) file in your repository.
Commit changes
You are now ready to save a snapshot of your repository using git commit
. Think of this snapshot as a save point in a video game or a backup tool; in Git this snapshot is call a commit.
If you run git commit
on its own, Git will open your default text editor and you will be instructed to type a commit message. This message should be a brief summary of the changes included in the current commit. You have to provide a commit message; Git won’t let you make the commit if you don’t provide one.
If your commit includes substantial or complex changes that are not easily summarized in a short sentence, add a blank line after your short sentence and describe the changes in the commit in more detail. However, don’t simply list the various changes that will be committed, as this information can easily be retrieved. You want to provide the reader of the commit message (usually your future self) with an explanation of why these changes were needed. While the rationale for a change is usually clear when you make it, things are often fuzzier a few months or years later. So do yourself a favour and write informative commit messages.
Because your current commit is simple (i.e., add doc.txt
), you only need to provide a short sentence as your commit message. In such instances, the commit message can be inputed via the command line using the -m
flag when you run the git commit
command.
# Make initial commit to repo
git commit -m 'Add doc1.txt to repo on branch master'
# Check status after commit.
git status
You have successfully made your first commit! There should now be nothing outstanding in your repository. To convince yourself of this, run the git status
command.
Summary
In this lesson you told Git to start tracking changes to a file in your repository using the git add
command. You then saved a snapshot of your repository using the git commit
command. In the next lesson you will learn how to view your repository’s log, as well as discover how to use the in-built Git help.