Checking for non-preferred file/folder path names (may take a long time depending on the number of files/folders) ...
This resource contains some files/folders that have non-preferred characters in their name. Show non-conforming files/folders.
This resource contains content types with files that need to be updated to match with metadata changes. Show content type files that need updating.
| Authors: |
|
|
|---|---|---|
| Owners: |
|
This resource does not have an owner who is an active HydroShare user. Contact CUAHSI (help@cuahsi.org) for information on this resource. |
| Type: | Resource | |
| Storage: | The size of this resource is 1.8Â MB | |
| Created: | Jun 10, 2026 at 12:04 a.m. (UTC) | |
| Last updated: | Jun 11, 2026 at 7:44 p.m. (UTC) | |
| Citation: | See how to cite this resource |
| Sharing Status: | Public |
|---|---|
| Views: | 104 |
| Downloads: | 0 |
| +1 Votes: | Be the first one to this. |
| Comments: | No comments (yet) |
Abstract
Description:
This is a resource that is a reference for a training repository for introducing basic git collaboration workflows for the 2026 Summer Institute Bootcamp.
https://github.com/NWC-CUAHSI-Summer-Institute/SI_fellows_2026_introductions
Welcome to the National Water Center Innovators Program Summer Institute GitHub training repository! 🙌
This repository is designed to help participants of the Summer Institute get comfortable with using GitHub, a tool for collaborative software development and data science.
Training Objective:
The goal of this training is to familiarize you with the basics of GitHub. You will learn how to clone a repository, make edits, and commit changes. This exercise is intended to prepare you for contributing to collaborative projects during the Summer Institute, ensuring that all code and findings are public and reproducible.
Subject Keywords
Content
README.md
Summer Institute 2026 - GitHub Training
Description
This is a training repository for introducing basic git collaboration workflows.
Welcome to the National Water Center Innovators Program Summer Institute GitHub training repository! 🙌
This repository is designed to help participants of the Summer Institute get comfortable with using GitHub, a tool for collaborative software development and data science.
Training Objective
The goal of this training is to familiarize you with the basics of GitHub. You will learn how to clone a repository, make edits, and commit changes. This exercise is intended to prepare you for contributing to collaborative projects during the Summer Institute, ensuring that all code and findings are public and reproducible.
GitHub Training Workflow
0. Prerequisites
-
You probably already have a GitHub account, but in case you don’t, you can sign up here.
-
We will be using the CIROH 2i2c cloud compute platform during the Summer Institute bootcamp. You can access that platform here: https://ciroh.awi.2i2c.cloud/. Log in using your GitHub username.
đź’ˇ If you do not have a 2i2c account:
- Visit the CIROH Hub Infrastructure Access website.
- Click on "Cloud Infrastructure Request Form” under “CIROH-2i2c JupyterHub”.
1. Log into CIROH AWI 2i2c JupyterHub
For the Summer Institute bootcamp, we’ll use the 2i2c AWI JupyterHub cloud computing platform hosted by The Alabama Water Institute. The administrators have already set this up for you, so should already have access to this platform.
1a. Go to https://ciroh.awi.2i2c.cloud/hub/login and log in with your GitHub username.
1b. Choose Server Option – Medium machine with image: Devcon26-CUAHSI Hydroinformatics and click the Start button at the bottom of the page. It might take a minute or two to start up. When it starts, it will open up a bash terminal on the right, and a file explorer on the left.
đź’ˇ Quick Trick in JupyterLab
Click on "View" and toggle on "Show hidden files".
We will edit the.gitconfigand.sshfile programmatically later on and you can view those changes manually if you like.
2. Generating an SSH Key for Interacting with GitHub
The first thing we need to do is to set up our SSH Key to make changes to our remote GitHub Repo.
2a. Open a Terminal Window:
Once you launch the 2i2c JupyterHub, if a terminal windown isn't already open, open the Launcher by clicking the blue rectangle with a "+" sign. There you can select Terminal. The following commands should be entered into this terminal.
2b. Configure Git:
First, tell Git who you are. Replace the examples below with your own information.
âť— The email used should be the one associated with GitHub
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
Verify your settings:
git config --global --list
You should see something similar to:
user.name=Your Name
user.email=your_email@example.com
2c. Create an SSH Key
SSH keys allow GitHub to recognize your JupyterHub environment securely. To generate a new SSH key, run the following in the Terminal:
ssh-keygen -t ed25519 -C "your_email@example.com"
When prompted to "Enter file in which to save the key", press Enter to accept the default location, which in the JupyterHub is /home/jovyan/.ssh/id_ed25519
When prompted to "Enter passphrase (empty for no passphrase)":
- Press Enter to leave it blank (this is fine for this workshop), OR
- Create a passphrase for additional security
You should see output similar to:
``` Your identification has been saved in /home/jovyan/.ssh/id_ed25519
Your public key has been saved in /home/jovyan/.ssh/id_ed25519.pub ```
3. Create a new SSH Authentication Key on Github
3a. Copy your SSH key from 2i2c JupyterHub:
Before heading over to https://www.github.com, you'll need to copy your SSH key. Print your public key by running:
cat /home/jovyan/.ssh/id_ed25519.pub
The output will look something like:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your_email@example.com
Copy the entire line to your clipboard, making sure to copy everything beginning with ssh-ed25519 and ending with your email address.
3b. Add the SSH Key to Github:
Open GitHub on your web browser and do the following:
- sign in to GitHub
- click your profile picture (upper right)
- select Settings
- in the left sidebar, select SSH and GPG keys (left side menu)
- click New SSH key button
This will take you to the Add new SSH Key form:

In the SSH Key form, edit the:
- Title - fill in a descriptive title (e.g., "CIROH JupyterHub")
- Key Type - leave the key type as "Authentication Key"
- Key - Paste your SSH key you copied from the 2i2c terminal.
Click the Add SSH Key button and you're set! GitHub may ask you to confirm your password or complete two-factor authentication.
4. Clone the Repository
4a. Copy the SSH Repo Link
Go to the GitHub site for our repository: NWC-CUAHSI-Summer-Institute/SI_fellows_2026_introductions, and click on the green button and copy the SSH address.
âť— Because you set up an SSH key on 2i2c, you must use the repository's SSH URL instead of the HTTPS URL to successfully clone!

4b. In Jupyter environment, type:
git clone git@github.com:NWC-CUAHSI-Summer-Institute/SI_fellows_2026_introductions.git
Change directories into the SI_fellows_2026_introductions directory:
cd SI_fellows_2026_introductions
5. Make a New Branch For Your Repository Contributions
đź’ˇ FYI - Understand the difference between forks and branches: Fork vs Branch.
Create a new branch:
git branch [your_branch_name]
Checkout your branch (move from the main branch to your_branch_name branch)
git checkout [your_branch_name]
List all of the branches, for fun (and to see that your new branch is not a remote branch):
git branch -a
Set the upstream and push your local branch to remote (you only need to do this one time):
git push --set-upstream origin [your_branch_name]
đź’ˇ Note: As of now, your branch only exists locally (on your computer or in your personal 2i2c JupyterHub workspace).
--set-upstreamflag links a local branch to a remote branch so you can rungit pushandgit pullwithout specifying the remote name or branch tracking targets every time.originis just the default name Git gives to the URL of the remote repository you cloned.The Arctic Data Center provides a great resource on collaborating with Git and information about remote repositories.
6. Make a New Text File and Add Your Information to it
Copy the introductions.txt file in Jupyter Lab:
``` cd SI_fellow_profiles
cp introductions.txt
Open the new file, add a few notes about yourself, and save the file.
7. Commit Your Changes
Before we make a commit, let's check out what the status of our repository is:
git status
đź’ˇ Note: You'll likely see that the file you just created is red! This means the file is untracked (or unstaged), which means you have created the file in your working directory, but Git is not actively monitoring its changes.
Stage and commit your changes:
```
git add
git status #your file should show up as green now!
git commit -m "Added my profile file" ```
8. Push Your Changes
Push your branch to the remote repository:
git push
đź’ˇ Note: because we already linked your local repository to the remote repository (
--set-upstream), you can just rungit pushand it will push to the remote.
9. Create a Pull Request
A Pull Request (a.k.a "a PR") is a propsal to merge your code changes into an existing project and is a foundational GitHub collaboration feature. Here, we will create a pull request to merge your code from your branch into the main branch.
Go to the GitHub repository website.
Click the “Compare & pull request” button.

Fill in the pull request title and description with specific details and submit.

By following these steps, you’ll contribute your changes to the repository and learn the basics of GitHub workflows.
Related Resources
| The content of this resource references | https://github.com/NWC-CUAHSI-Summer-Institute/SI_fellows_2026_introductions |
| Title | Owners | Sharing Status | My Permission |
|---|---|---|---|
| Collection of Materials for the CUAHSI's Workshops at the National Water Center Bootcamp 2026 | Irene Garousi-Nejad · Anthony Castronova · Abner Bogan · Danielle Tijerina-Kreuzer | Public & Shareable | Open Access |
How to Cite
This resource is shared under the Creative Commons Attribution CC BY.
http://creativecommons.org/licenses/by/4.0/


Comments
There are currently no comments
New Comment