Connect with us

Git

How to Push Code to GitHub from the Terminal?

Spread the love

Pushing code to GitHub is a fundamental skill for developers collaborating on projects or simply storing their work on the platform. By using the terminal, you can directly interact with Git and GitHub to track, commit, and push your changes efficiently.

This blog will walk you through the steps to push your code to a GitHub repository from the terminal.

Prerequisites

Before you can push code to GitHub, ensure you have the following:

  1. Git Installed: Verify that Git is installed on your system. You can check by running:
   git --version

If Git is not installed, download and install it from git-scm.com.

  1. GitHub Account: Create a GitHub account if you don’t already have one.
  2. SSH Key or Authentication Token: Set up SSH or use a Personal Access Token for secure authentication. Follow GitHub’s authentication guide if needed.

Step-by-Step Guide to Push Code to GitHub

1. Initialize a Git Repository

If your project folder is not yet a Git repository, navigate to the project folder in your terminal and initialize Git:

git init

This command creates a .git folder to track changes in your project.


2. Check the Repository Status

Run the following command to see which files are being tracked by Git and their current status:

git status

This command displays untracked files, modified files, and files staged for commit.


3. Add Files to the Staging Area

Add files to the staging area so they can be included in your next commit. Use the git add command:

  • To add all files:
  git add .
  • To add specific files:
  git add filename

4. Commit Your Changes

Create a commit with a descriptive message summarizing the changes you made. For example:

git commit -m "Initial commit"

The -m flag specifies the commit message inline.


5. Link Your Local Repository to a GitHub Repository

If you don’t already have a GitHub repository:

  1. Go to your GitHub account.
  2. Create a new repository by clicking the New button.
  3. Copy the repository URL (either HTTPS or SSH).

Back in your terminal, link your local repository to the GitHub repository:

git remote add origin <repository-URL>

Replace <repository-URL> with the copied URL. For example:

git remote add origin https://github.com/username/repository-name.git

You can verify the remote link by running:

git remote -v

6. Push Your Code to GitHub

Push the code to the GitHub repository using the git push command:

  • For the first push, specify the branch name (e.g., main):
  git push -u origin main

The -u flag sets origin main as the default upstream branch.

  • For subsequent pushes:
  git push

7. Verify Your Push

After the push is complete, go to your GitHub repository in the browser and refresh the page. You should see your files and commits.


Example Workflow

Here’s an example of pushing code to GitHub step by step:

  1. Navigate to Your Project Directory:
   cd /path/to/your/project
  1. Initialize Git:
   git init
  1. Stage Files:
   git add .
  1. Commit Changes:
   git commit -m "Initial commit"
  1. Link Remote Repository:
   git remote add origin https://github.com/username/my-project.git
  1. Push to GitHub:
   git push -u origin main

Troubleshooting Common Issues

1. Authentication Errors

  • Error: fatal: Authentication failed
  • Solution: Use an SSH key or a Personal Access Token instead of your password. Configure SSH using:
    bash ssh-keygen -t rsa -b 4096 -C "[email protected]"
    Add the key to GitHub under Settings > SSH and GPG Keys.

2. Remote Repository Already Exists

  • Error: fatal: remote origin already exists
  • Solution: Remove and re-add the remote repository:
    bash git remote remove origin git remote add origin <repository-URL>

3. Branch Not Found

  • Error: error: src refspec main does not match any
  • Solution: If your default branch is master, push using:
    bash git push -u origin master

Best Practices for Pushing Code

  1. Commit Frequently: Break your work into smaller commits with descriptive messages.
  2. Use Branches: Work on separate branches for new features or fixes before merging them into the main branch.
  3. Pull Before Pushing: Always pull the latest changes from the remote repository to avoid conflicts:
   git pull origin main

Conclusion

Pushing code to GitHub from the terminal is a crucial skill for any developer. By mastering the steps outlined above, you can efficiently manage your code, collaborate with others, and contribute to projects. With practice, this workflow will become second nature, allowing you to focus on what matters most: building great software.


Spread the love
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *