DEV Community

David kimethu
David kimethu

Posted on

Understanding Pull and Push Operations on GitHub Using Git Bash

Pulling and Pushing Data from GitHub Using Git Bash

GitHub is widely used in software development to store and manage source code, while Git is the version control system that tracks changes made to that code. Git Bash is a command-line tool that allows users, especially those using Windows, to interact with Git and GitHub using text-based commands.

This article explains how to pull data from GitHub and how to push data to GitHub using Git Bash, using simple language and practical examples to improve understanding.

Understanding Pull and Push in Simple Terms

In Git, a project usually exists in two places:

  • a local repository on a developer’s computer
  • a remote repository on GitHub

To keep these two copies synchronized, Git provides two main operations:

  • Pulling data means downloading updates from GitHub to the local computer.
  • Pushing data means uploading local changes from the computer to GitHub.

For example, if a teammate updates a file on GitHub, you must pull those changes to see them locally. If you update a file on your computer, you must push your changes so others can access them on GitHub.

Accessing a GitHub Repository Using Git Bash

Git Bash is used to run Git commands. After opening Git Bash, the user navigates to a working directory and connects to a GitHub repository.

To download a repository from GitHub, the following command is used:

git clone https://github.com/username/repository-name.git

This command creates a local copy of the project and links it to the GitHub repository. The user then moves into the project folder:

cd repository-name

At this point, the project is ready for pull and push operations.

Pulling Data from GitHub Using Git Bash

Pulling data ensures that the local repository contains the most recent updates from GitHub.

The basic command used to pull data is:

git pull

When this command is executed, Git Bash connects to GitHub, checks for new changes, and downloads them into the local project.

For example, if a new file named README.md was added to the GitHub repository by another developer, running git pull will automatically download that file to the local machine.

If the branch needs to be specified explicitly, the command can be written as:

git pull origin main

Pulling data regularly helps prevent conflicts and keeps the project up to date.

Pushing Data to GitHub Using Git Bash

Pushing data is done after changes have been made locally and saved as a commit.

First, the user checks which files have been modified:

git status

Next, the modified files are staged:

git add .

The changes are then committed:

git commit -m "Update project documentation"

Finally, the committed data is pushed to GitHub:

git push

For example, if a developer edits a file called index.html on their computer, pushing will upload the updated version of that file to the GitHub repository.

If this is the first push, Git Bash may require setting an upstream branch:

git push -u origin main

A Simple Example Workflow

A common and recommended workflow when using Git Bash is:

  1. Pull the latest data from GitHub

git pull

  1. Make changes to files locally.
  2. Commit the changes

git add .
git commit -m "Fix layout issue"

  1. Push the data back to GitHub

git push

This workflow ensures that the local and remote repositories remain synchronized.

Handling Conflicts During Pull and Push

In some cases, Git may report a conflict when pulling or pushing data. This usually occurs when the same file has been edited both locally and on GitHub.

Git will indicate the conflicting sections inside the file. The user must manually choose the correct version, save the file, and then complete the process by running:

git add .
git commit
git push

Resolving conflicts correctly allows the data to be pushed successfully.

Top comments (0)