Jesse A. Green / notebook

Live demo: the DocCompiler guide library as a static, read-only snapshot (October 2026). No backend, no accounts, nothing to submit.

First Contributions — Content Guide

Generated June 2026 from firstcontributions/first-contributions at e63c867

AI-generated documentation. The library is checked by sampling (three repositories so far); this guide was not individually reviewed. Verify against the project before relying on it.

First Contributions is a hands-on tutorial repository that walks complete beginners through making their very first open source contribution. It isn't software you install or run — it's a guided, low-stakes practice ground. You fork it, add your name to a single file (Contributors.md), and open a pull request, completing the full fork → clone → branch → edit → commit → push → pull request workflow that every open source contributor uses. The collection covers this workflow from the command line, from seven different graphical Git tools, and in more than 60 languages, plus a library of advanced Git how-tos and guidance for non-programmers who want to contribute.

This guide explains what the collection contains, how to navigate it, and which path to take based on the tools you use and the language you read. Everything described here is drawn directly from the repository at commit e63c867.

Note

This is a learning resource, not a code project. There is nothing to build, deploy, or configure. The "deliverable" is you successfully opening your first pull request and getting it merged.


What's in This Collection

The repository is organized around one canonical tutorial (the root README.md) with supporting material branching out from the docs/ directory. The top-level structure maps as follows:

Path What's here
README.md The main tutorial — the command-line fork → clone → branch → edit → commit → push → PR walkthrough. This is the starting point.
Contributors.md The file you actually edit. A long, alphabetically-loose list of every contributor's name (1,456 lines). Adding your name here is the practice task.
docs/translations/ 108 files — the README tutorial translated into 60+ languages (e.g. README.es.md, README.zh-cn.md, README.ar.md).
docs/cli-tool-tutorials/ Command-line tutorials for the GitHub CLI (gh) and plain git CLI, plus their translations (30 files total).
docs/gui-tool-tutorials/ Step-by-step tutorials for seven graphical Git tools, plus translations (58 files total).
docs/additional-material/git_workflow_scenarios/ 24 advanced Git how-to documents (amending, rebasing, squashing, resolving merge conflicts, and more).
docs/additional-material/Things a non Programmer can do.md 23 concrete ways to contribute to open source without writing code.
docs/how-to-contribute-to-open-source-projects.md A long-form beginner essay on why and how to contribute to open source generally.
.github/CONTRIBUTING.md How to contribute to this repository — primarily aimed at people adding or reviewing translations.
.github/SECURITY.md, LICENSE Security-reporting policy and the MIT license.

Tip

If you only read one file, read the root README.md. Every other document in this collection either translates it, re-tells it for a specific tool, or extends it with advanced techniques.


How to Read / Use This

This collection is meant to be done, not just read. The intended path is linear for your first pass, then browse-by-topic afterward.

Prerequisites (the only real ones):

  • A GitHub account (free).
  • Git installed on your machine — the tutorial links to GitHub's setup guide. If you plan to use a graphical tool instead, that tool bundles Git for you.

Important

You do not need to know how to program to complete this tutorial. The practice task is editing a plain text file (Contributors.md) and adding your name to it.

Choose your path based on how you want to work with Git:

Command line

Start with the root README.md. It uses plain git commands. If you prefer GitHub's official gh CLI, use docs/cli-tool-tutorials/github-cli-tutorial.md instead.

Graphical tool

Skip to the Section Walkthroughs below and pick the tutorial that matches your tool — GitHub Desktop, VS Code, GitKraken, Sourcetree, IntelliJ IDEA, Visual Studio 2017, or Sublime Merge.

In your language

Open docs/translations/Translations.md (or the flag grid at the top of README.md) and pick your language. Each translation mirrors the English tutorial.

Suggested entry points by reader type:

You are... Start here
A first-timer comfortable with a terminal Root README.md
A first-timer who prefers buttons over commands A GUI tool tutorial
Not a programmer, but want to help Things a non Programmer can do.md
Already made a PR, want to go deeper on Git git_workflow_scenarios/
Wanting the big-picture "why" first how-to-contribute-to-open-source-projects.md

Note

After your pull request is merged, a maintainer note in the tutorial points you to the project's companion web app, which lists other beginner-friendly projects with easy issues to tackle next.


Section Walkthroughs

1. The Main Tutorial (README.md)

This is the heart of the collection. It walks you through the complete contribution workflow using plain git commands, with screenshots at each step:

  1. Fork the repository (one click on GitHub).
  2. Clone your fork locally: git clone "url you just copied".
  3. Create a branch: git switch -c your-new-branch-name (the tutorial includes a fallback to git checkout -b for older Git versions).
  4. Edit Contributors.md — add your name anywhere in the middle of the file.
  5. Stage and commit: git add Contributors.md then git commit -m "Add your-name to Contributors list".
  6. Push: git push -u origin your-branch-name.
  7. Open a pull request with the Compare & pull request button on GitHub.

The tutorial anticipates the two most common beginner errors and tucks fixes into expandable <details> blocks: the git switch "not a git command" error (older Git) and the post-2021 password-authentication-removed push error (switch the remote to SSH or use a personal access token).

Warning

When adding your name to Contributors.md, put it somewhere in the middle of the file — not at the very beginning or very end. Edits clustered at the file boundaries are far more likely to cause merge conflicts with other newcomers doing the same exercise at the same time.

Tip

The exact branch name doesn't matter, but make it descriptive — the tutorial's own example is git switch -c add-alonzo-church. A name like add-yourname keeps your work easy to identify.

2. CLI Tool Tutorials (docs/cli-tool-tutorials/)

For people who want to stay in the terminal. The primary English document, github-cli-tutorial.md, uses GitHub's official gh CLI, which collapses several manual steps into single commands:

gh auth login                                       # authenticate once
gh repo fork firstcontributions/first-contributions # fork + clone in one step
git switch -c add-john-doe                           # create your branch
git add Contributors.md && git commit -m "Add john-doe to Contributors list"
git push origin -u your-branch-name
gh pr create --repo firstcontributions/first-contributions  # open the PR from the terminal

This folder also contains plain-git CLI variants and translations (Bengali, Kannada, Hindi, Urdu, German, Gujarati, Indonesian, Korean, Malayalam, Portuguese (BR), Sinhala, Tamil, Arabic, French, Polish) — 30 files in total.

Note

The gh repo fork command prompts you to clone the fork at the same time — accept the "yes" option so you end up with a local copy ready to edit.

3. GUI Tool Tutorials (docs/gui-tool-tutorials/)

The same contribution workflow, retold for people who prefer a graphical interface over the command line. Each tutorial is self-contained and screenshot-heavy. Seven tools are covered:

Tool Tutorial file
GitHub Desktop github-desktop-tutorial.md (plus an older-version variant)
Visual Studio Code github-windows-vs-code-tutorial.md
GitKraken gitkraken-tutorial.md
Atlassian Sourcetree (macOS) sourcetree-macos-tutorial.md
IntelliJ IDEA github-windows-intellij-tutorial.md
Visual Studio 2017 github-windows-vs2017-tutorial.md
Sublime Merge sublime-merge-tutorial.md

Including translations, this folder holds 58 files.

Tip

Pick the tool you already have open during your normal work. The point of this exercise is to learn the contribution flow, not to install a new application. If you use VS Code or an IDE daily, use that tutorial.

4. Additional Material — Git Workflow Scenarios (docs/additional-material/git_workflow_scenarios/)

Once you've made your first PR, this is where you go to learn the Git techniques you'll hit in real projects. The folder's index, additional-material.md, assumes you've finished the basic tutorial first. Highlights:

Scenario When you'll need it
Amending a commit Fix a commit message or forgotten change before pushing.
Keeping your fork synced Pull upstream changes into your fork so it doesn't fall behind.
Resolving merge conflicts Two changes touch the same lines — the classic newcomer roadblock.
Squashing commits A reviewer asks you to combine many commits into one.
Reverting a commit Undo a commit you've already pushed.
Undoing a local commit Reset your local repo when you've made a mess.
Stashing a file Set changes aside temporarily without committing.
Rebase vs. merge Understand the two ways to integrate branches.

The folder contains 24 documents in all, also covering configuring Git, creating a .gitignore, storing credentials, deleting branches, moving commits between branches, resetting branches/commits, checking the commit log, installing Git on Arch/Ubuntu, and a curated Useful Links page.

Caution

Several of these scenarios — reverting, resetting, and force-related rebase/squash steps — rewrite history. Read each document fully before running the commands on a branch you care about, and prefer practicing on a throwaway branch first.

5. Things a Non-Programmer Can Do

Things a non Programmer can do.md is a standalone essay listing 23 concrete, non-coding ways to contribute to open source. It's organized by area:

  • Listen & engage — join mailing lists, follow project blogs, hang out in IRC/Discord.
  • Work with tickets — diagnose bugs, triage and close stale issues.
  • Work with code (lightly) — test a beta, write a test, silence a compiler warning, add a clarifying comment.
  • Work with community — answer questions, write blog posts, improve the website.
  • Work with documentation — write or improve docs, create how-to examples.
  • Modern outreach — accessibility audits, organizing events, curating "awesome" lists, social media, localization, UX feedback, grant writing.

Note

This document reinforces a core message of the whole project: code is only one way to contribute. Documentation, triage, translation, and community-building are all genuine, valued contributions.

6. The "How to Contribute" Essay

how-to-contribute-to-open-source-projects.md is a longer-form companion that answers the why and the how at a strategic level: why contributing builds skills, portfolio, and network; how to choose the right project; why to start small (good-first-issue, documentation, tests); and how to handle common challenges like imposter syndrome and large codebases. It points back to the README for the hands-on practice.


Contributing / Extending

The repository's own contribution rules live in .github/CONTRIBUTING.md. Two points stand out:

  • Suggesting workflow or tutorial changes: open an issue first so the change can be discussed collectively before any code is written.
  • Translations: when you change a translation, request a review from the existing reviewer(s) for that language (the file lists named reviewers per language). The stated goal is for every translation to carry the same content as the English README.md, except for the inter-translation language links.

Important

Adding your name to Contributors.md is the practice exercise, not a substantive contribution to the project. It exists so you can rehearse the pull request flow safely. Real contributions are translations, tutorial improvements, and the workflow scenarios.

For security issues, .github/SECURITY.md directs you to GitHub's private "Report a vulnerability" workflow, or email [email removed]. The project is released under the MIT License.


These resources are referenced directly from the repository's tutorials:

Tip

Once your first pull request here is merged, the most valuable next step is to find a real project that interests you. The web app's project list is curated specifically for that hand-off.