This guide is written for people who may be brand new to GitHub. It will show you, step by step, how to use this repository as both:
- A website to communicate your science to others.
- A hub for sharing code within your group.
Template users: If you are using this repository as a template, start with TEMPLATE_GUIDE.md for the required name and link updates.
Think of this repository like a shared online folder. Inside it, there are a few important parts:
- README.md — This file (what you are reading now). It explains how things work.
- data/ — Optional. Small datasets can go here.
- outputs/ — Optional. Figures, results, and reports can go here.
- Code (
code/) — Share scripts, notebooks, and analysis utilities. Keep filenames clear and include short comments at the top so teammates understand the purpose quickly. - Documentation (
docs/anddocumentation/) — Everything insidedocs/powers the public website, whiledocumentation/can host internal notes or extended write-ups. Update these areas regularly so the story on the site and your working docs stay in sync.
The website is built from the docs/ folder. Every time you change a file there, the website updates automatically.
- In the repository, click the docs/ folder.
- Click on
index.md. This is the home page of your website. - In the top right, click the pencil icon (✏️) to edit.
- Change the text to describe your project (for example, add your team’s name and a short description of what you’re studying).
- Scroll down. In the Commit changes box, write a short message like
updated homepage with project info. - Click Commit changes.
That’s it! In about a minute, refresh your website link and you’ll see your changes.
Note: If your website is not set up yet, go to Settings → Pages → Build and deployment. Set the Source to Deploy from a branch, then choose main and /docs. GitHub will give you a link to your site.
Code lives in the src/ folder. You can put scripts, Jupyter notebooks, or R files here.
- In the repository, click the src/ folder.
- Click Add file → Upload files (to add something from your computer), or Create new file.
- Name your file something clear, like
data_cleaning.pyorfire_analysis.R. - At the top of the file, write a short comment about what the code does.
- Scroll down, write a commit message like
added first data cleaning script, and click Commit changes.
Now your teammates can see and use your code.
- Add a new webpage: Create a new
.mdfile insidedocs/(likemethods.md). It will become a new page on your site. - Add a picture: Put the file in
docs/assets/and add it to a page with. - Add team members: Edit
docs/team.mdto add names and roles.
- Don’t worry about breaking things — everything can be fixed, and old versions are saved.
- Small updates are valuable. Even a one-line change is a real contribution.
- Write commit messages as if explaining to your future self.
- Large data files (over ~50 MB) should not go in GitHub. Instead, link to them from the
data/page.
- Edit the
docs/index.mdfile and add your project description. - Add yourself to the
docs/team.mdpage. - Upload your first code file to the
src/folder. - Refresh your website link and see your changes live.
Congratulations — you’re now using GitHub to communicate your science and share code!
This section is written for someone who has never used GitHub. Follow it in order. You can do all of this in your web browser.
- A GitHub account (free). If you don’t have one: https://github.com → Sign up.
- A link to your group’s repository (ask your instructor/lead if you don’t have it).
- Open the invitation link you received by email or in GitHub notifications.
- Click Accept invitation. You now have permission to edit.
Why this matters: GitHub only lets approved people change files. Accepting the invite gives you access.
- Visit your repository link (it looks like
https://github.com/ORG/Project_group_OASIS). - You’ll see folders like
docs/,src/, and files likeREADME.md.
Why this matters: This is the “front door” to your project’s files.
- Click Settings (top menu of the repo).
- In the left sidebar, click Pages.
- Under Build and deployment → Source, choose Deploy from a branch.
- Under Branch, choose main and /docs folder.
- Click Save. A green box will show the site link after it builds (usually 1–2 minutes).
Why this matters: This tells GitHub to publish everything inside docs/ as a website.
- Click the Code tab to return to the file view.
- Open the
docs/folder → clickindex.md. - Click the pencil icon to edit.
- Change the title and first paragraph so they describe your project.
- Scroll to the bottom, write a short Commit message (for example:
update homepage). - Click Commit changes.
Why this matters: Saving (committing) creates a new version of your page and triggers the website to rebuild.
- Go back to Settings → Pages (or use the link shown there).
- Open your site in a new tab.
- Refresh after a minute if you don’t see changes yet.
Why this matters: Now you can share a public link to your project.
- In the
docs/folder, click Add file → Create new file. - Name it something like
methods.md. - Paste a small outline (what, why, how) and click Commit changes.
- To add it to the top navigation, open
docs/_config.yml, findheader_pages:, and add- methods.mdon its own line. Commit.
Why this matters: You can grow your site one page at a time.
- Open
docs/assets/→ Add file → Upload files → pick your image. - In a page (e.g.,
index.md), insert:and commit.
Why this matters: Images help explain your science.
- Open the
src/folder → Add file → upload a script or create a new file. - At the top of the file, write 2–3 lines that explain what it does, inputs, and outputs.
- Commit changes.
- In
docs/code.md, add a short bullet linking to your file, e.g.- src/pipeline.py — end-to-end pipelineand commit.
Why this matters: The website becomes a clear map that points to your working code.
- Open
docs/updates.md→ pencil icon. - Add a new dated section (copy the example) with 1–3 bullets of what changed.
- Commit.
Why this matters: Small updates build a readable project history.
- Copy the Pages URL from Settings → Pages and send it to your group or stakeholders.
You’re done. You’ve published a site and shared code without using the command line.
- I can open the repo and see
docs/,src/, andREADME.md. - Pages is enabled: main + /docs.
- I edited
docs/index.mdand committed changes. - I can open the public site link and see my edits.
- I added or uploaded one script to
src/. - I linked that script from
docs/code.md. - I posted one dated entry in
docs/updates.md.
- Repository (repo): Your project’s online folder.
- Commit: A saved change with a short note. Think “Save with a message.”
- Branch: A workspace for changes. Beginners can stay on main.
- Pull request (PR): A proposal to merge changes. Useful later; optional for now.
- GitHub Pages: A way to turn files in
docs/into a website. - Markdown (
.md): A simple text format for writing pages with headings, links, and images.
I don’t see the Pages option. You might not have permission. Ask your lead to enable it, or ensure you’re in the repository’s Settings (not your user settings).
My site URL shows 404.
Wait 1–2 minutes after enabling Pages or after a commit. Refresh. Confirm Source is set to Deploy from a branch and Branch = main and Folder = /docs.
My changes didn’t appear.
Refresh the site. Confirm you edited a file inside docs/. Check commit history on the repo’s home page to see if your change saved.
Images don’t load.
Make sure the image is inside docs/assets/ and the link is  (no leading slash).
I uploaded a big file and got an error. GitHub limits file size. Keep data small in the repo. Link to external storage for big datasets.
I’m afraid of breaking things. Every change is tracked. You can always edit again or revert. Small, frequent commits are safest.
- Immediate reward: Editing
index.mdshows a visible website change fast. - One mental model: “Files in
docs/become web pages.” - Low friction: No installs or command line required.
- Narrated steps: Each action explains why it matters to build understanding.
- Use branches + pull requests for review before merging to
main. - Add a
requirements.txtorenvironment.ymlto document software packages. - Create a
CONTRIBUTING.mdwith team norms (naming, reviews, issue labels). - Add automatic checks (CI) to run tests when code changes.