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
git add <filename>:
# Add file to repo git add doc1.txt # Check status of repo git status
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
Running this command should return
A doc.txt, which informs you that you have a staged (or added) file in your repository.
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.
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.