My First PR in GIT-HUB
Published: 2021-05-25 03:52:20

As a beginner every coder wonders " How should I start with Open Source? " and not a while ago I started learning about Open Source Fundamentals, guess what in these last few weeks I have more than 10 PRs merged in a JavaScript Project. I know it's not much right now but in my opinion Learning and Exploring are two things that are never going to be enough for a Passionate Coders. Wait till the end and find out how a noob coder made it to the world of contributions

Reading this title you must be wondering what is this post about? So let me tell you I am going to talk about how to use GitHub effectively.

Wait, what is GitHub? Aren't we suppose to cover that part first. So let me break it to you as simple as possible GitHub is like a place where you can help the coding community by contributing your valuable knowledge about specific skills. Technically speaking GitHub is a code hosting platform for version control and you can also collaborate on other projects by making valuable points about your changes, it lets you and others work together on projects from anywhere. 

If you are still looking for a simpler explanation check out my other post on [Explaining git to a 10 years old](https://dev.to/anushree71199/explaining-git-to-a-10-years-old-5839). 

###If you don't have a GitHub account make one ASAP.

As I said earlier GitHub is a code hosting platform so it needs some line of commands for you to learn and you should know how to use terminal(for linux), git-bash(for windows) to host your code on GitHub. If you need a post on that I can make you guys a cheat sheet for all the git commands that are used way too much along-with some solved errors.

While using GitHub on your level and making it as effective as possible, I honestly came through many hurdles. But I tackled them by figuring them out on my own. Let's talk about when you open any other person's repository(just like there are files and folders in windows, repositories are files and folders for GitHub) what are your thoughts about that repository? If you think that you can make that repository look more better and it will help someone learn something new then you are at the right path. 

Firstly you should open up an Issue and tell the maintainer of that repository about the changes you are about to make so that if he finds it good enough you'll become an assignee, once you get that assignee label you can simply follow these steps and make your first PR:

1. Fork that repository make it your own git-hub's profile repository then save it on your local host using: 
`git clone your_own_link_of_the_repository`
2. Work on that first locally i.e on your local system by creating your own branch for that repository using:
`git checkout -b branch_name`
3. Make your changes then add them locally using:
`git add .`
4. Commit to all the changes by using:
`git commit -m "relevant message"
Here relevant message means:
- feat- added a new feature 
- fix- fixed a bug 
- test- everything related to testing 
- refactor- change of code not any bug fixes or adding a new feat
- docs- updation in docs
- style- related to styling, designing 
- chore- updating in build tasks, package manager, configurations related.
5. After doing all these steps push your specific branch remotely i.e push it on your GitHub repository of the project using: 
`git push origin branch_name`

After pushing the branch make your first PR by clicking on the button "compare and create pull request". Well this is a tough part but I got you, here is a template you can use to describe the things
<pre><code>
### Related Issue
  - Name of the issue for which you created this project

Closes: #[Issue Number]

### Describe the changes you've made
A brief description of all the changes that you made keep it short and brief but interesting.

### Describe if there is any unusual behaviour of your code(Write `NA` if there isn't)
If your projects has some sort of malfunctioning then mention them here. For example if your project as a web page is not responsive then describe that here.

### Checklist:

Example how to mark a checkbox:-
[x] My code follows the code style of this project.

- [ ] My code follows the style guidelines of this project.
- [ ] I have performed a self-review of my own code.
- [ ] I have commented my code, particularly in hard-to-understand areas.
- [ ] I have made corresponding changes to the documentation.
- [ ] New and existing unit tests pass locally with my changes.

### Screenshots
Put any screenshot(s) of the project here.

Showing your project's snap will make it more obvious that you performed all this on your own and its your idea to improvise that specific repository
</code>
</pre>

Now the last tip from my side is when it's your first time here you are not recognised basically cause you don't have a network yet and no-one is willing to even see your projects, that's heart breaking but don't worry I'll tell you what participate in competitions like Hacktober fest, GirlScript Summer of Code, Cross Winter of Code. I've done all my contributions because of the help these platforms provided to noob coders like us. I've participated in these competitions and hopefully I did well. 

So let's not loose hope and try doing contributions as long as you can then someday you'll fall in love with Open Source Contributions. I would love to read your story someday :)

Keep coding and Stay safe :purple_heart: