Skip to content

Latest commit

 

History

History
95 lines (75 loc) · 6 KB

07-ConnectingLocalToRemote.md

File metadata and controls

95 lines (75 loc) · 6 KB

Collaboration with GitHub (Part 2)

Connecting Local to Remote (Scenario Step 3)

In this step, we will connect your local repository to a remote repository on GitHub and upload your initial project files. This connection is crucial for enabling collaboration and ensuring that your code is backed up and accessible to your team. We will use the git remote and git push commands to accomplish this. Additionally, we will cover authentication methods, including setting up SSH keys for Windows.

Step-by-Step Guide

  1. Create a Remote Repository on GitHub:

    • Go to GitHub and log in to your account.
    • Click the "+" icon in the top-right corner and select "New repository."
    • Name your repository (e.g., etl-pipeline) and add a description if you like.
    • Choose the visibility (public or private) and click "Create repository."
    • GitHub will provide you with a URL for the new repository. Copy this URL; you will need it to link your local repository to this remote repository.
  2. Add the Remote Repository to Your Local Repository:

    • Open your terminal or command prompt.
    • Navigate to your local project directory (if you aren't already there).
    • Use the git remote command to add the remote repository. Replace <repository-URL> with the URL you copied from GitHub.
      git remote add origin <repository-URL>
    • This command sets up a connection between your local repository and the remote repository on GitHub. The name origin is a standard convention for the primary remote repository.
  3. Authentication Methods:

    • HTTPS:
      • When using the repository URL that starts with https://, you will need to authenticate using your GitHub username and password or a personal access token (PAT) when pushing or pulling changes.
      • Personal Access Token (PAT) is recommended over using a password. You can generate a PAT from your GitHub settings under "Developer settings" > "Personal access tokens".
    • SSH:
      • Using SSH keys is a secure and convenient way to authenticate with GitHub. SSH keys allow you to connect to GitHub without entering your username and password every time.
      • To set up SSH keys:

Setting Up SSH Keys on Windows

  1. Generate an SSH Key Pair:

    • Open Git Bash (installed with Git for Windows) and run the following command:
      ssh-keygen -t ed25519 -C "your.email@example.com"
      • If you are using an older system that doesn't support the ed25519 algorithm, use:
        ssh-keygen -t rsa -b 4096 -C "your.email@example.com"
      • Follow the prompts to save the key to the default location (/c/Users/your-username/.ssh/id_ed25519) and enter a passphrase if desired.
  2. Add Your SSH Key to the SSH-Agent:

    • Start the SSH agent in the background:
      Get-Service -Name ssh-agent | Set-Service -StartupType Manual
      Start-Service ssh-agent
    • Add your SSH private key to the SSH agent:
      ssh-add ~/.ssh/id_ed25519
      If you used a different key name or location, adjust the path accordingly.
  3. Add Your SSH Key to GitHub:

    • Copy the contents of your public key to your clipboard:
      clip < ~/.ssh/id_ed25519.pub
      • The clip command copies the content to your clipboard. If this command doesn’t work, you can manually open the file with a text editor and copy the contents.
    • Go to GitHub, navigate to "Settings" > "SSH and GPG keys," and click "New SSH key." Paste your public key and save it.
  4. Update Your Remote URL:

    • Use the SSH URL for your repository, which typically looks like git@github.com:username/repository.git:
      git remote set-url origin git@github.com:username/repository.git
  5. Push Local Commits to the Remote Repository:

    • Use the git push command to upload your local commits to the remote repository. The -u flag sets the default upstream branch, so future git push commands can be simplified.
      git push -u origin master
    • This command uploads the commits from your local repository to the master branch of the remote repository. If you are using a different default branch (like main), replace master with the appropriate branch name.

Explanation of "Pushing"

"Pushing" is the process of uploading your local commits to a remote repository. When you push changes, you are synchronizing your local repository with the remote repository, making your changes available to others.

  • Local Commits: The commits you have made in your local repository are initially only available on your computer. These include all the changes you have tracked, staged, and committed.
  • Remote Repository: The remote repository, such as the one hosted on GitHub, is a shared version of your project that can be accessed by other team members. It serves as a central hub for collaboration.
  • Uploading Changes: When you push changes, you transfer your local commits to the remote repository. This allows others to pull your changes into their local repositories, ensuring everyone has the latest version of the project.

Summary

By connecting your local repository to a remote repository on GitHub, you enable seamless collaboration and ensure your project is accessible to all team members. The git remote add and git push commands are essential for this process:

  • git remote add origin <repository-URL> establishes the link between your local and remote repositories.
  • git push -u origin master uploads your local commits to the remote repository, making your changes available to others.

Understanding these commands and the concept of pushing changes is critical for effective team collaboration and project management in a distributed version control environment like Git. Additionally, setting up secure authentication methods such as SSH keys ensures that your interactions with GitHub are both secure and efficient.