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. But open source is all about collaboration & working together. 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 without messing up anything? This project aims at providing guidance & simplifying the way rookies make their first contribution. Remember: the more relaxed you are, the better you learn. If you are looking to make your first contribution, just follow the simple steps below. We promise you, it will be fun.
If you don't have git on your machine, install it .
Fork this repository
Fork this repo 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
Now clone this repo to your machine. 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. See the previous steps to obtain the url.
git clone https://github.com/this-is-you/first-contributions.git
this-is-you is your GitHub username. Here you're copying the contents of the first-contributions repository in GitHub to your computer.
Create a branch
Change to the repository directory on your computer (if you are not already there):
Now create a branch using the
git checkout command:
git checkout -b <add-your-name>
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
Contributors.md file in a text editor, add your name to it, and then save the file. 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 <your-name> to Contributors list"
<your-name> with your name.
Push changes to GitHub
Push your changes using the command
git push origin <add-your-name>
<add-your-name> 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.
Now submit the 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.
The master branch of your fork won't have the changes. In order to keep your fork synchronized with mine, follow the steps below.
Keeping your fork synced with this repository
First, switch to the master branch.
git checkout master
Then add my repo's url as
upstream remote url:
git remote add upstream https://github.com/Roshanjossey/first-contributions
This is a way of telling git that another version of this project exists in the specified url and we're calling it
upstream. Once the changes are merged, fetch the new version of my repository:
git fetch upstream
Here we're fetching all the changes in my fork (upstream remote). Now, you need to merge the new revision of my repository into your master branch.
git rebase upstream/master
Here you're applying all the changes you fetched to master branch. If you push the master branch now, your fork will also have the changes:
git push origin master
Notice here you're pushing to the remote named origin.
At this point I have merged your branch
<add-your-name> into my master branch, and you have merged my master branch into your own master branch. Your branch is now no longer needed, so you may delete it:
git branch -d <add-your-name>
and you can delete the version of it in the remote repository, too:
git push origin --delete <add-your-name>
This isn't necessary, but the name of this branch shows its rather special purpose. Its life can be made correspondingly short.
Tutorials Using Other Tools
|GitHub Desktop||Visual Studio 2017||GitKraken|
Where to go from here?
You could also join our slack team in case you need any help or have any questions. Join slack team
Here's some beginner level issues in popular repos that you can solve. Go ahead and go to those repos to learn more