[![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/) [](https://join.slack.com/t/firstcontributors/shared_invite/enQtNjkxNzQwNzA2MTMwLTVhMWJjNjg2ODRlNWZhNjIzYjgwNDIyZWYwZjhjYTQ4OTBjMWM0MmFhZDUxNzBiYzczMGNiYzcxNjkzZDZlMDM) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT) [![Open Source Helpers](https://www.codetriage.com/roshanjossey/first-contributions/badges/users.svg)](https://www.codetriage.com/roshanjossey/first-contributions) # First Contributions It's hard. It's always hard the first time you do something. Especially when you are collaborating, making mistakes isn't a comfortable thing. We wanted to simplify the way new open-source contributors learn & contribute for the first time. Reading articles & watching tutorials can help, but what's better than actually doing the stuff in a practice environment? This project aims at providing guidance & simplifying the way beginners make their first contribution. If you are looking to make your first contribution, follow the steps below. #### *If you're not comfortable with command line, [here are tutorials using GUI tools.]( #tutorials-using-other-tools )* #### *Read this in [other languages](translations/Translations.md).* [:bangladesh:](translations/README.bn.md) [🇧🇬](translations/README.bg.md) [🇧🇷](translations/README.pt_br.md) [](translations/README.ca.md) [🇨🇳](translations/README.chs.md) [🇨🇿](translations/README.cs.md) [🇩🇪](translations/README.de.md) [🇩🇰](translations/README.da.md) [🇪🇬](translations/README.eg.md) [🇪🇸](translations/README.es.md) [🇫🇷](translations/README.fr.md) [🏴](translations/README.gl.md) [🇬🇷](translations/README.gr.md) [🇭🇺](translations/README.hu.md) [🇮🇩](translations/README.id.md) [🇮🇱](translations/README.hb.md) [🇮🇳](translations/Translations.md) [🇮🇷](translations/README.fa.md) [🇮🇷](translations/README.fa.en.md) [🇮🇹](translations/README.it.md) [🇯🇵](translations/README.ja.md) [🇰🇪](translations/README.kws.md) [🇰🇷 🇰🇵](translations/README.ko.md) [🇱🇹](translations/README.lt.md) [🇲🇩 🇷🇴](translations/README.ro.md) [🇲🇲](translations/README.mm_unicode.md) [🇲🇰](translations/README.mk.md) [🇲🇽](translations/README.mx.md) [🇲🇾](translations/README.my.md) [🇳🇱](translations/README.nl.md) [🇳🇬](translations/README.igb.md) [🇳🇴](translations/README.no.md) [🇳🇵](translations/README.np.md) [🇵🇭](translations/README.tl.md) [](translations/README.en-pirate.md) [🇵🇰](translations/README.ur.md) [🇵🇱](translations/README.pl.md) [🇵🇹](translations/README.pt-pt.md) [🇷🇺](translations/README.ru.md) [🇸🇦](translations/README.ar.md) [🇸🇪](translations/README.se.md) [:slovakia:](translations/README.slk.md) [:slovenia:](translations/README.sl.md) [🇹🇭](translations/README.th.md) [🇹🇷](translations/README.tr.md) [🇹🇼](translations/README.cht.md) [🇺🇦](translations/README.ua.md) [🇻🇳](translations/README.vn.md) [🇿🇦](translations/README.zul.md) [🇿🇦](translations/README.afk.md) [🇰🇪](translations/README.kws.md) [🇳🇬](translations/README.igb.md) [🇱🇻](translations/README.lv.md) [GUJ](translations/README.guj.md) fork this repository If you don't have git on your machine, [install it]( https://help.github.com/articles/set-up-git/). ## Fork this repository Fork this repository by clicking on the fork button on the top of this page. This will create a copy of this repository in your account. ## Clone the repository clone this repository Now clone the forked repository to your machine. Go to your GitHub account, open the forked repository, click on the clone button and then click the *copy to clipboard* icon. Open a terminal and run the following git command: ``` git clone "url you just copied" ``` where "url you just copied" (without the quote marks) is the url to this repository (your fork of this project). See the previous steps to obtain the url. copy URL to clipboard For example: ``` git clone https://github.com/this-is-you/first-contributions.git ``` where `this-is-you` is your GitHub username. Here you're copying the contents of the first-contributions repository on GitHub to your computer. ## Create a branch Change to the repository directory on your computer (if you are not already there): ``` cd first-contributions ``` Now create a branch using the `git checkout` command: ``` git checkout -b ``` For example: ``` git checkout -b add-alonzo-church ``` (The name of the branch does not need to have the word *add* in it, but it's a reasonable thing to include because the purpose of this branch is to add your name to a list.) ## Make necessary changes and commit those changes Now open `Contributors.md` file in a text editor, add your name to it. Don't add it at the beginning or end of the file. Put it anywhere in between. Now, save the file. git status If you go to the project directory and execute the command `git status`, you'll see there are changes. Add those changes to the branch you just created using the `git add` command: ``` git add Contributors.md ``` Now commit those changes using the `git commit` command: ``` git commit -m "Add to Contributors list" ``` replacing `` with your name. ## Push changes to GitHub Push your changes using the command `git push`: ``` git push origin ``` replacing `` with the name of the branch you created earlier. ## Submit your changes for review If you go to your repository on GitHub, you'll see a `Compare & pull request` button. Click on that button. create a pull request Now submit the pull request. submit pull request Soon I'll be merging all your changes into the master branch of this project. You will get a notification email once the changes have been merged. ## Where to go from here? Congrats! You just completed the standard _fork -> clone -> edit -> PR_ workflow that you'll encounter often as a contributor! Celebrate your contribution and share it with your friends and followers by going to [web app](https://firstcontributions.github.io/#social-share). You could join our slack team in case you need any help or have any questions. [Join slack team](https://join.slack.com/t/firstcontributors/shared_invite/enQtNjkxNzQwNzA2MTMwLTVhMWJjNjg2ODRlNWZhNjIzYjgwNDIyZWYwZjhjYTQ4OTBjMWM0MmFhZDUxNzBiYzczMGNiYzcxNjkzZDZlMDM). Now let's get you started with contributing to other projects. We've compiled a list of projects with easy issues you can get started on. Check out [the list of projects in the web app](https://firstcontributions.github.io/#project-list). ### [Additional material](additional-material/git_workflow_scenarios/additional-material.md) ## Tutorials Using Other Tools |GitHub Desktop|Visual Studio 2017|GitKraken|VS Code|Sourcetree App|IntelliJ IDEA| |---|---|---|---|---|---| |[GitHub Desktop](github-desktop-tutorial.md)|[Visual Studio 2017](github-windows-vs2017-tutorial.md)|[GitKraken](gitkraken-tutorial.md)|[Visual Studio Code](github-windows-vs-code-tutorial.md)|[Atlassian Sourcetree](sourcetree-macos-tutorial.md)|[IntelliJ IDEA](github-windows-intellij-tutorial.md)|