Hi friends 👋,
At the beginning of my open-source journey, I got confused with many terms used around Git and open source.
"It is an OSS project." "In which repo can I see your project on GitHub?" "Have you created an issue and the PR?" "Have you read the README?" "You want to create a branch and not work your changes on the main branch." "LGTM!"
Let alone start contributing; the terms are already intimidating enough for me. Learning from my experience, don't let these terms scare you off if you're new to open source. In this article, I will share some terms in open source and Git — in alphabetical order — that you will often hear when you dip your toes into the open source.
Open Source Glossary
An open-source repository usually will have a file written in Markdown (
CONTRIBUTING.md — some others called this file
CONTRIBUTION.md or anything similar. This file is the contribution guide that contains everything you should know when you want to contribute to a project. You must first read this if you wish to contribute to a project. The contributing guide can be included in the README if you don't find this file.
A contributor is a person who contributes to a repository by giving ideas and suggestions, reporting bugs, making changes to the code base or other resources in an open-source repository, and any other action that helps with the project enhancement and maintenance.
When you hear the word "docs", it refers to documentation. It's a guide that serves as an onboarding medium for new contributors and users in an open-source community. It's the place where you can learn more about how to contribute to the repository and information about how you can get started with their project, such as the installation process, the code syntax and examples, and many more.
Fork is creating a copy of a repository in your GitHub account. This copy is your remote repository.
Issues are a project's development trackkeeper. An issue can contain a bug found, a feature request, a documentation fix suggestion, etc.
Labels are tags that inform the type or status of issues and pull requests — for example,
Maybe you've seen a maintainer mention "LGTM" in a comment of a pull request after a review. Some say it's the abbreviation of "Looks Good To Me", and others say it stands for "Let's Get This Merge". But whenever you see this term, your pull request has passed the maintainers' review and is ready to merge.
A maintainer is a person who maintains an open-source repository. They usually review issues and pull requests, assign contributors to issues, make updates to the project by merging pull requests, etc.
Open Source Software (OSS)
Open Source Software (OSS) is software where the source code is freely available and accessible to the public and distributed under a copyright license. Anyone may reuse, modify, and redistribute the software where the limit depends on the license used for the software. Because of its transparent and open nature, open source encourages open collaboration among contributors.
Pull Request (PR)
A Pull Request, commonly called a PR, is a notification about changes pushed to a branch in a remote repository and ready for the merging process.
A README is the face of the project. It is a Markdown file (
README.md) that contains everything essential about the project. In this file, you will usually find the project description, how to install them, the license, the Code of Conduct, the contribution guide, etc.
A repository — commonly called a repo — is a storage to keep the open source project's code files and resources.
A branch is an isolated environment for contributors to work on changes such as fixing bugs, developing a feature, etc. This branch is usually known as a "working branch" or any other name besides "default branch".
A default branch is the branch that people see when they visit a repository on GitHub. All changes in other branches are merged here. By convention, this branch is called a
Clone is creating a copy of a repository in your local environment.
Whenever we finish with our changes, we must commit them. It means that we must record our changes. That is also why a commit always includes a message as the record. The message makes it easier for us and others to see what changes have been made.
Git is an open-source Distributed Version Control System (DVCS) that tracks all changes we make to a program. We can see the history of the changes through commits and revert them to the previous version if necessary.
Merge is an act to merge changes from a branch into the
When you create or fork a repository and have it as your remote repository on your GitHub account, by convention, it is called the origin repository. It is an alias of your remote repository.
Pull is an act to get new changes from the remote to the local repository.
Push is an act to move changes from the local to the remote repository.
Say you fork a repository. By convention, the original repository you forked is called the upstream repository. Upstream is an alias of the original repository.
I hope this article helps you get less confused when you hear these terms. If you want to share more terms in open source and Git, feel free to drop them in the comment below, and let's learn together 😄!
🖼️ Credit cover image: unDraw