Book Image

Version Control with Git and GitHub

By : Alex Magana, Joseph Muli
Book Image

Version Control with Git and GitHub

By: Alex Magana, Joseph Muli

Overview of this book

<p>Introduction to Git and GitHub begins with setting up and configuring Git on your computer along with creating a repository and using it for exercises throughout the book. With the help of multiple activities, you’ll learn concepts that show various stages of a file—from when it is untracked to when it is set for tracking under version control. As you make your way through the chapters, you’ll learn to navigate through the history of a repository, fetch and deliver code to GitHub, and undo code changes. </p><p> </p><p>The first half of the book ends with you learning to work with branches, storing and retrieving changes temporarily, and merging the desired changes into a repository. </p><p> </p><p>In the second half, you’ll learn about forking as part of a collaborative workflow. You’ll also address modularity and duplication through submodules, tracing and rectifying faulty changes, and maintaining repositories. </p><p> </p><p>By the end of this book, you will have learned how to effectively deploy applications using GitHub.</p>
Table of Contents (8 chapters)

Introduction to Versioning Commits

We have already discussed version control, and we have established that it aids in tracking changes. In this topic, we will address the following question:

How can we make Git track and monitor the changes in a file?

Our aim is to examine and demonstrate the various stages that a file passes through to become a candidate for a commit.

In Git, files can have the following statuses:

  1. Untracked: This a file that exists in the working tree whose changes are not being monitored by Git and aren't listed in the gitignore file.
  2. Unstaged: This a file whose changes are being tracked by Git; the file has been changed since the last commit and has yet to be moved to the index.
  3. Staged: This is a file whose changes are being tracked by Git; the file has been changed since the last commit and has been moved to the index. This file is a file that is ready for the Git commit. Staged files are the files in the index that are different...