Register to get access to 15+ free programming courses with interactive exercises

Open Source projects Git fundamentals

Open Source Software (OSS) is software whose code is open (viewable) and can almost always be influenced.

As programmers, we use open source software every day. This includes both application software, such as VSCode or git, and a huge number of libraries in our code, as well as almost all modern programming languages. Modern projects can be developed at such speed largely thanks to open source programs and libraries.

  • Linux (> 12 million lines of code)
  • Chromium (> 16 000 000)
  • Git
  • jQuery

Where do open source projects come from and why are they so popular? Very often, such code appears as a byproduct of the development of other projects. For example, during the development of Linux, there was a need for a convenient version control program. That's how git came about. But why was it open source? The answer is quite simple. Successful projects attract many developers who help them develop further. They write bug reports, send fixes, and even become full-time developers on that project. And it's all free. Developers can satisfy their egos, get excited about creating something new, and generally save the world (within reason). As a side effect, such developers can find jobs much more easily and, in general, have better coding skills than those who don't work with open source projects.

If you go back in time and look at how many open source projects were created then and how many people were involved, you can see a huge difference compared to the current state of affairs. The difficulty of inclusion in development and accepting changes are just some of the problems that awaited those who wished to become part of this movement. People gave presentations at conferences where they spent an hour (an hour, Carl!!!) describing the rules for accepting people and their code into a project.

It's now a matter of minutes to start making open source projects, and it takes almost no effort to start participating in one. And this has happened thanks to two components: git and GitHub.

One of the most important mechanisms on GitHub is the pull request. It's what makes it easy and effortless to get involved in the development of any project. Suppose while working with a certain library, we noticed a mistake in the code or documentation.

Let's walk through the steps you need to take to fix this mistake. Our ultimate goal is for the library developers to accept our code.


The first step is to create a copy of the repository in your account. This is done with literally one button, "Fork", on the repository page.

Fork Button

After this action, you will have a repository with the same name in your account. GitHub knows this is a copy of the original repository and marks it as such. After that, everything is as normal. We clone the repository to the computer and make the necessary changes. It is considered good practice to make changes in a separate branch (usually created from the main branch).

Request to enable code changes

After the changes are uploaded to GitHub, there'll be changes to its interface. A "pull request" button will appear on the cloned repository page.

Buttom Pull request

If you click it, it will open a page where you can enter the name of the pull request and its description. After you submit a pull request in the original repository, your request will appear on the "Pull Requests" page. Now, all you need to do is wait for the library developers to either accept it, reject it, or ask clarifying questions (then the pull request may need more work).

Editing files directly on GitHub

In simpler situations, when it's enough to correct some text or a typo, GitHub allows you to make a pull request straight from its interface. To do this, just open any project file and click on the edit icon. After you finish editing, GitHub itself will prompt you to create a pull request with this change.

Аватары экспертов Хекслета

Are there any more questions? Ask them in the Discussion section.

The Hexlet support team or other students will answer you.

Sign up

Programming courses for beginners and experienced developers. Start training for free

  • 130 courses, 2000+ hours of theory
  • 1000 practical tasks in a browser
  • 360 000 students
By sending this form, you agree to our Personal Policy and Service Conditions

Our graduates work in companies:

<span class="translation_missing" title="translation missing:">Bookmate</span>
<span class="translation_missing" title="translation missing:">Healthsamurai</span>
<span class="translation_missing" title="translation missing:">Dualboot</span>
<span class="translation_missing" title="translation missing:">Abbyy</span>
Suggested learning programs

From zero to a developer. Refunds in case you won't get a job

Frontend Developer icon
Development of front-end components for web applications
start anytime 10 months

Use Hexlet to the fullest extent!

  • Ask questions about the lesson
  • Test your knowledge in quizzes
  • Practice in your browser
  • Track your progress

Sign up or sign in

By sending this form, you agree to our Personal Policy and Service Conditions

Toto Image

Ask questions if you want to discuss a theory or an exercise. Hexlet Support Team and experienced community members can help find answers and solve a problem.