Open Source and Git Glossary
Tags: opensource, codenewbie, beginners, webdev
Published: 2023-08-30 19:39:24

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*!"

![confused GIF](https://media.giphy.com/media/Wop4mGwKVGbq01jfKF/giphy.gif)

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

### `CONTRIBUTING.md`

An open-source repository usually will have a file written in [Markdown](https://www.markdownguide.org/) (`.md`) called `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.

### Contributor

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.

### Documentation (Docs)

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

Fork is creating a copy of a repository in your GitHub account. This copy is your remote repository.

### GitHub

[GitHub](https://github.com/) is a cloud-based service and platform for hosting, sharing, and collaborating on Git repositories. Other similar well-known platforms are [GitLab](https://about.gitlab.com/) and [Bitbucket](https://bitbucket.org/).

### Issues

Issues are a project's development trackkeeper. An issue can contain a bug found, a feature request, a documentation fix suggestion, etc.

### Labels

Labels are tags that inform the type or status of issues and pull requests — for example, `bug`, `feature`, `documentation`, `triage`, `help-wanted`, `good-first-issue`, etc.

### LGTM

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.

![git merge GIF](https://media.giphy.com/media/cFkiFMDg3iFoI/giphy.gif)

### Maintainer

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.

### README

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 software description, how to install them, the license, the Code of Conduct, the contribution guide, etc.

### Repository (repo)

A repository — commonly called a repo — is a storage to keep the open source project's code files and resources.

## Git Glossary

### Branch

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 `main` (previously `master`) branch.

### Clone

Clone is creating a copy of a repository in your local environment.

### Commit

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

Git is an open-source [Distributed Version Control System (DVCS)](https://en.wikipedia.org/wiki/Distributed_version_control) 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

Merge is an act to merge changes from a branch into the `main` branch.

### Origin

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

Pull is an act to get new changes from the remote to the local repository.

### Push

Push is an act to move changes from the local to the remote repository.

### Upstream

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.

## Final Words

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**](http://undraw.co/)

Thank you for reading! Last, you can find me on [**Twitter**](https://twitter.com/@AdiatiAyu), [**Mastodon**](https://hachyderm.io/@AdiatiAyu)**,** and [**BlueSky**](https://bsky.app/profile/adiati.ayu.bsky.social). Let's connect! 😊