Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7
Info

If you are to be working on the Data & Controls team, please use this Google Form to request GitHub Access: https://forms.gle/J718HJVWyPdvwXKL8GitHub Basics

Setting Up Git

  1. Create a GitHub account

  2. Install Git

    1. Note Git is already installed on macOS

    2. Download for Windows

      1. (non-WSL) Make sure you install Git Bash along with your installation, and leave everything else default

      2. (WSL) from WSL: sudo apt install git

    3. If you’re already using Linux I bet you know what Git is

      1. For Ubuntu, run apt-get install git

      2. For Arch Linux, run pacman -S git

  3. Set up SSH tokens (This presentation might help guidedo this from WSL if using WSL)

    1. First, run ssh-keygen in the CLI a terminal anywhere, and just leave everything default by pressing enter

    2. Navigate to ~/.ssh/ and open id_ed25519.pub or id_rsa.pub in a text editor

      1. This is a hidden directory, so on Windows you might need to enable hidden folders if in GUI. Note on WSL this is File Explorer → Linux → Ubuntu → home → your name → .ssh → id_rsa.pub

      2. To open from terminal if you have VSCode installed, run code ~/.ssh/id_ed25519.pub

    3. Copy the ssh key listed in this file into your GitHub’s SSH keys here

    4. If you have multiple machines, you’ll need to do this for each machine (i.e. dual booting or using a VM)

  4. Run these two commands to save your GitHub credentials, but put in your own credentials (from WSL if using WSL)

    1. Code Block
      $ git config --global user.name "John Doe"
      $ git config --global user.email johndoe@example.com
  5. View the Git 101 Presentation below if you’re not familiar with Git

...

Upon loading the page, you’ll be presented with a bunch of repos that NER uses. Here are some of the big ones for engineering:

  • Cerberus

  • Embedded_Code

    • Contains all the embedded code we use on the car for controls and telemetry

  • NERduino

    • Contains a base library for controlling the NERduino board

    • Is a dependency for a few repos

  • Schematics22A

    • Contains all the KiCAD schematics for 22A

  • Telemetry-Hub

    • Contains the codebase for the Telemetry Hub Python GUI application

  • shepherd_bms

    • Contains the code for shepherd_bms controls and testing

  • shepherd_bms and ShepherdBMS-2

  • Ner_Processing

  • Odyssey

  • Finishline

  • LVEmbedded22

  • Schematics22A

Now let’s say you actually want to contribute, so you’ll want to clone whatever repository you're going to be working in. I want to clone the Embedded_Code Cerberus repo, I'd go into that repo, click on the green "Code" button above the file structure in the repository and copy the link, so it would be

git clone git@github.com:Northeastern-Electric-Racing/Embedded_CodeCerberus.git

Info

Remember:

  • To update the submodules within the repo on initial clone(For TCU, MPU, and Shepherd BMS), run: git submodule update --init --recursive

  • To pull the latest changes from the dependencies, run git submodule update --remote

...