Why and How to contribute to open source???
Tags: git, github, opensource, beginners
Published: 2019-12-03 09:02:35

Hello there, I am Vikas Kumar student of 2nd-year Information technology B.tech from CBP Government Engineering college

I have been asked by so many students that what is open source, how can I contribute to it? Is it helpful if I contribute to open source, and the list goes on relevant to “**Open Source**”.

So what is open source???

{% youtube LidH-VCDFAQ %}

According to opensource.com The term “**open-source**” refers to something people can modify and share because its design is publicly accessible.

The term originated in the context of software development to designate a specific approach to creating computer programs. Today, however, “open source” designates a broader set of values — what we call “the open source way.” Open source projects, products, or initiatives embrace and celebrate principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development. i.e., “**open-source is what is free to access by all. Anyone can change and distribute its own model**”.

There are so many blogs available on the internet to learn about open source, software and their importance. I won’t be discussing its importance in this article here my main concern is “**How to contribute to open-source**?”

The most common and widely used platform to contribute to open source is Git and GitHub.

<img src = "https://miro.medium.com/max/2399/1*Knu2DUeWHlmRzyegWSjjFA.png">

The purpose of **Git** is to manage a project, or a set of files, as they change over time. Git stores this information in a data structure called a repository. A git repository contains, among other things, the following: A set of commit objects.

**GitHub** is a Git repository hosting service, but it adds many of its own features. While Git is a command-line tool, GitHub provides a Web-based graphical interface. It also provides access control and several collaboration features, such as wikis and basic task management tools for every project.

Here I will Teach You some of the command used in git to push, pull, commit and do changes to your GitHub repository.

First, install Git from the official site https://git-scm.com/downloads and install it in your PC then after creating your profile on Github https://github.com, make a repository and clone (copy the link of your repository) your repository with HTTPS.

<img src "https://miro.medium.com/max/2399/1*AfgiTLlkbdIJRdtS134oEQ.png">

Now go to Git Bash software and use this command to clone this repository to your PC.

git clone [your copy link]


<img src = "https://miro.medium.com/max/1473/1*VrTHHi9fqCf8of7Tgquzxw.jpeg">

Git Bash don’t use **ctrl+V** to paste any segment so paste your link by using **shift+Ins** key


Now you have cloned your Github repository to your system now add all you relevant codes in that cloned directory to upload it to your GitHub Profile.

Now when you will type command git status you will see all those files you have added to the directory in red-coloured untracked file segment like this. Here laddu.txt is my unracked file what I have just moved to the directory.

<img src = "https://miro.medium.com/max/2399/1*4zIngxn0y1M5nmTPzAeDWg.png">

Now to add these files into **staging** area (Staging is a step before the commit process in git. That is, a commit in git is performed in two steps: staging and actually commit. As long as a changeset is in the staging area, git allows you to edit it as you like to replace staged files with other versions of staged files, remove changes from staging, etc.) use command git add <**files_Name with their respective extensions**>

<img src = "https://miro.medium.com/max/2399/1*MDzdT8bwMCQQvCyXtISpzA.png">

Here you can see that now your files are successfully added to the staging area. Now you need to commit these files with a description. And to do so use **git commit -m “Your description”**

<img src = "https://miro.medium.com/max/2399/1*iRClGqwzjFVyINM8LeFZBg.png">

Now we have committed these changes in our local system and to upload these changes to our remote profile use **git remote -v**

<img src = "https://miro.medium.com/max/2366/1*zjlD5zF4qUtaq4mdHSTmwQ.png">

Great, Now just one step left this is to push these changes in our Github repository. use **git push origin master** command to upload your files or any changes.

<img src = "https://miro.medium.com/max/2324/1*3-Ac3yByucd99nqZLd1tCw.png">

Great You have successfully uploaded your files to your GitHub repository.

<img src ="https://miro.medium.com/max/2399/1*QKSwNFws02G4DVJTJ544jA.png">

All the files and directories are uploaded to your Github account. Now you can manage, revert, access or do any changes in your repositories like this. If you need any other help DM me I will add or post another article relevant to issues raised by majorities.

### You can also earn some cool swags if you contribute to open source 

 {% twitter 1199660931715715072 %}

You can also follow me to my LinkedIn &Instagram handle through
https://www.linkedin.com/in/VikasPandey121/
https://www.instagram.com/VikasPandey121/