Coder Social home page Coder Social logo

richardplacide / first-contributions Goto Github PK

View Code? Open in Web Editor NEW

This project forked from firstcontributions/first-contributions

0.0 1.0 0.0 8.68 MB

๐Ÿš€ Yet another project to get beginners contributing to open source ๐Ÿ”ฐ

Home Page: https://roshanjossey.github.io/first-contributions/

License: MIT License

HTML 29.81% CSS 28.38% JavaScript 41.81%

first-contributions's Introduction

Open Source Love

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. 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.

fork this repository

Read this in other languages: Indonesian, French, Spanish, Dutch, Hindi, Russian, Japanese, Vietnamese, Polish, Korean, German, Simplified Chinese, Traditional Chinese, Greek, ุงู„ุนุฑุจูŠุฉ, Ukrainian and Portuguรชs/Brasil.

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

clone this 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.

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 in 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 <add-your-name>

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, 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"

replacing <your-name> with your name.

Push changes to GitHub

Push your changes using the command git push:

git push origin <add-your-name>

replacing <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.

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.

Now, your <add-your-name> branch has finished it's purpose, so let's see how to remove this branch.

Remove a branch from your repository

If you have followed the tutorial up-to-now, our <add-your-name> branch has finished it's purpose, it is time to delete it from your local machine's repo. This isn't necessary, but the name of this branch shows its rather special purpose. Its life can be made correspondingly short.

First, let's merge your <add-your-name> to your master, so to go your master branch:

git checkout master

Merge <add-your-name> to master:

git merge <add-your-name> master

Remove <add-your-name> on your local machine's repo:

git branch -d <add-your-name>

You have now deleted your local machine's <add-your-name> branch and everything looks neat and tidy. Though, at this point, you should still have the <add-your-name> branch in your GitHub fork. However, before you delete this, remember that you have sent a "Pull request" to my repo from this remote branch. So unless I've already merged it, don't delete this branch.

However, if I have merged your branch and you want to delete the remote branch, use:

git push origin --delete <add-your-name>

Now, you know how to tidy your branches. With time, many commits will be added to my public repo. And the master branches of your local machine and of your GitHub fork won't be up-to-date. So in order to keep your repositories synchronized with mine, follow the steps below.

Keeping your fork synced with this repository

First, the flow for a full sync should be understood. In this schema, there are 3 different repos: my public repo on Github github.com/Roshanjossey/first-contributions/, your fork of the repo on GitHub github.com/Your-Name/first-contributions/ and your local machine's repo from which you are suppose to work.

To keep your two repos up-to-date with my public repo, our first move is to fetch and merge the public repo with your local machine's repo. Our second move will be to push your local repo to your GitHub fork. As you've seen earlier, it's only from your fork that you can ask for a "pull request". So your GitHub for is the last repo to be updated. (A drawing should be inserted here for clarity)

Now, let's see how to do it:

First, you must be on your master branch to know which branch you are on check the first line of:

git status

if you are not already on master:

git checkout master

Then you should add my public repo to your git with add 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 your git has a name let's fetch the latest version of the public repository:

git fetch upstream

You've just fetched the latest version of my fork (upstream remote). Now, you need to merge the public repository into your master branch.

git rebase upstream/master

Here you're merging the public repository with your master branch. Your local machine's master branch is now up-to-date. Lastly, if you push your master branch to your fork, your GitHub fork will also have the changes:

git push origin master

Notice here you're pushing to the remote named origin.

At this point, all your repositories are up-to-date. Well done! You should do this, everytime you're GitHub repo tells you that you are a few commits behind.

Tutorials Using Other Tools

GitHub Desktop Visual Studio 2017 GitKraken
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

exercism fun-retro habitat scikit-learn elasticsearch
exercism Fun Retros react habitat scikit-learn Leiningen numpy elasticsearch
homebrew rust vuejs Suave OpenRA PowerShell coala moment
homebrew Rust vuejs Suave OpenRA PowerShell coala moment
ava freeCodeCamp webpack hoodie pouchdb neovim babel
ava freeCodeCamp webpack hoodie pouchdb neovim babel brackets
Node.js
Node.js Semantic-UI-React

first-contributions's People

Contributors

adityabhushan avatar ajborka avatar bala1718 avatar cameroncb1 avatar eliardocosta avatar fakiolinho avatar gardensnake avatar genkio avatar gmuraleekrishna avatar imouath avatar jiimms avatar kalilferreirasilva avatar kanav-7 avatar lepetitrenard avatar luarca84 avatar nickoppitz avatar plmkn avatar podkovyrin-sergey avatar pratansyah avatar raigon44 avatar rajabishek avatar roshanjossey avatar sotayamashita avatar suttonwilliamd avatar tapanprakasht avatar thibmaek avatar tranlv avatar vamuigua avatar vijayvj7 avatar vladbogdan10 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.