step by step guide for beginners for getting started with open source

Overview

Step-by-Step Guide for beginners for getting started with Open-Source

Here The Contribution Begins 💻

If you are a beginner then this repository is for you. By this tutorial you are going to learn how to make your First Pull Request for sure.

👋 Join our discord community CodeSmashers

STAR THIS REPOSITORY THIS WILL PAY OFF MY WORK


1. The first thing you need is Git installed on your system, if it is not installed then download it as per your OS and install it.

Git Setup :-

  • Download Git as per your OS.
  • Git installation Video as per your OS.
  • Install Git
  • Open the Git Bash ( Right Click )
  • Run the Commands
  • $ git config --global user.name "Your Name"

    $ git config --global user.email [email protected]

    $ git config --list

  • You should be able to see your entered name and email under user.name & user.email


2. You should have an account on GitHub if you you dont't have an account then simply make it.

3. You will need a text editor accoring to your comfort , I prefer Vs code

4. Now you just have to setup the project from GitHub to your local system.

Setting Project on your Local System :-


  • Fork this Repository or Project
  • This will create a copy of this repository in your account.


  • Copy the link of the Repository



  • Open Git bash where you want to clone the project and clone it
  • Clone it
  • Run Command and Hit Enter
    git clone 
         
    
         



    In this case it is
    git clone https://github.com/arpit456jain/Getting-Started-with-open-source.git

  • After you hit enter you will notice that some downloading will start. It's actually cloning of repo form your GitHub repository to your local system.

  • After this you will notice a folder is created with the name of repository



  • Then just close the Git bash and open this folder and open VS code here



5. Now Make necessary changes and commit them , lets say you have to add your name in readme , you already set up the project in local system . Now before starting your work always rembember to pull latest change from the main Repo.

  • Fetch And Merge


  • Pull these changes in your local system
  • git pull origin master
    



  • make a new branch and then make the changes , then commit them. make sure to commit to the new branch
    Never commit in master branch
  • git checkout -b new_branch_name
    git add -A
    git commit -a -m "message"
    
  • After commiting your changes on your local host you have to push that changes to GitHub , make sure you push the new branch
  • git push origin new_branch_name
    

6. Make the Pull Request

  • when you push the changes you will notice a new branch will be created on GitHub and there will be a green button for creating pull request. Click on it.



  • After this a new page will be open like this


  • Now add a title and description of your PR and click on create pull request.

  • Congrats 🎉 your Pull Request is created




Some Common Error And Their Solutions

1. Updates were rejected or failed to push some refs.


This is most common error you will find and its pretty easy to solve .


Solution: You just have to pull latest changes to your local system first and then you can push them

git pull origin master

Note : if your repo is a forked one and its some commit behind then first fetch n merge then pull changes


Common Git Commands you should know!!!

1. Git checkout

  • You can use the checkout command to switch the branch that you are currently working on.
  • git checkout 
       
    
       

    2. Git init

  • This is the command you need to use if you want to start a new empty repository or to reinitialize an existing one in the project root. It will create a .git directory with its subdirectories.
  • git init 
       
    
       

    3. Git diff

  • You can use this command to see the unstaged changes on the current branch.
  • git diff
    
  • If you want to see the staged changes.
  • git diff --staged
    
  • Or you can compare two branches:
  • gif diff 
        
        
    
        
       

    4. Git add

  • This is the command you need to use to stage changed files. You can stage individual files.
  • git add 
       
    
       
  • You can also stage all files.
  • git add .
    

    5. Git branch

  • Using git branch will list all the branches of the repository.
  • git branch
    
  • Or you can use it to create a new branch, without checking it out.
  • git branch 
       
    
       
  • To delete a branch.
  • git branch -d 
       
    
       

    6. Git log

  • If you want to see what you have committed till now.
  • git log
    
  • If you want to see last 5 commits among 100000 commits.
  • git log -p -1
    

    7. Git clear

  • To clean git bash.
  • git clear
    

    What if I have Merge Conflicts?

    A GitHub conflict is when people make changes to the same area or line in a file. This must be fixed before it is merged in order to prevent collision in the main branch.


    Now just make a Pull Request and add your name in Read me file.

    CodeSmashers Community


    Arpit Jain


    Ankita Puri

    Contributors

    Thanks go to these Wonderful People 👨🏻‍💻: 🚀


    Contributions of any kind are welcome!

    Open Source Programs click here

    show some ❤️   by giving the star to this repo

    Owner
    Arpit Jain
    Full Stack Web Developer with Python Flask and Django. 3 star Competitive Programmer on Codechef.
    Arpit Jain
    Repository for learning Python (Python Tutorial)

    Repository for learning Python (Python Tutorial) Languages and Tools 🧰 Overview 📑 Repository for learning Python (Python Tutorial) Languages and Too

    Swiftman 2 Aug 22, 2022
    Pydantic model generator for easy conversion of JSON, OpenAPI, JSON Schema, and YAML data sources.

    datamodel-code-generator This code generator creates pydantic model from an openapi file and others. Help See documentation for more details. Supporte

    Koudai Aono 1.3k Dec 29, 2022
    The source code that powers readthedocs.org

    Welcome to Read the Docs Purpose Read the Docs hosts documentation for the open source community. It supports Sphinx docs written with reStructuredTex

    Read the Docs 7.4k Dec 25, 2022
    Seamlessly integrate pydantic models in your Sphinx documentation.

    Seamlessly integrate pydantic models in your Sphinx documentation.

    Franz Wöllert 71 Dec 26, 2022
    Workbench to integrate pyoptools with freecad, that means basically optics ray tracing capabilities for FreeCAD.

    freecad-pyoptools Workbench to integrate pyoptools with freecad, that means basically optics ray tracing capabilities for FreeCAD. Requirements It req

    Combustión Ingenieros SAS 12 Nov 16, 2022
    Jupyter Notebooks as Markdown Documents, Julia, Python or R scripts

    Have you always wished Jupyter notebooks were plain text documents? Wished you could edit them in your favorite IDE? And get clear and meaningful diff

    Marc Wouts 5.7k Jan 04, 2023
    30 Days of google cloud leaderboard website

    30 Days of Cloud Leaderboard This is a leaderboard for the students of Thapar, Patiala who are participating in the 2021 30 days of Google Cloud Platf

    Developer Student Clubs TIET 13 Aug 25, 2022
    Zero configuration Airflow plugin that let you manage your DAG files.

    simple-dag-editor SimpleDagEditor is a zero configuration plugin for Apache Airflow. It provides a file managing interface that points to your dag_fol

    30 Jul 20, 2022
    This is the repository that includes the code material for the ESweek 2021 for the Education Class Lecture A3 "Learn to Drive (and Race!) Autonomous Vehicles"

    ESweek2021_educationclassA3 This is the repository that includes the code material for the ESweek 2021 for the Education Class Lecture A3 "Learn to Dr

    F1TENTH Autonomous Racing Community 29 Dec 06, 2022
    NetBox plugin for BGP related objects documentation

    Netbox BGP Plugin Netbox plugin for BGP related objects documentation. Compatibility This plugin in compatible with NetBox 2.10 and later. Installatio

    Nikolay Yuzefovich 133 Dec 27, 2022
    Python Eacc is a minimalist but flexible Lexer/Parser tool in Python.

    Python Eacc is a parsing tool it implements a flexible lexer and a straightforward approach to analyze documents.

    Iury de oliveira gomes figueiredo 60 Nov 16, 2022
    Minimal reproducible example for `mkdocstrings` Python handler issue

    Minimal reproducible example for `mkdocstrings` Python handler issue

    Hayden Richards 0 Feb 17, 2022
    Parser manager for parsing DOC, DOCX, PDF or HTML files

    Parser manager Description Parser gets PDF, DOC, DOCX or HTML file via API and saves parsed data to the database. Implemented in Ruby 3.0.1 using Acti

    Эдем 4 Dec 04, 2021
    More detailed upload statistics for Nicotine+

    More Upload Statistics A small plugin for Nicotine+ 3.1+ to create more detailed upload statistics. ⚠ No data previous to enabling this plugin will be

    Nick 1 Dec 17, 2021
    Use Brainf*ck with python!

    Brainfudge Run Brainf*ck code with python! Classes Interpreter(array_len): encapsulate all functions into class __init__(self, array_len: int=30000) -

    1 Dec 14, 2021
    Deduplicating archiver with compression and authenticated encryption.

    More screencasts: installation, advanced usage What is BorgBackup? BorgBackup (short: Borg) is a deduplicating backup program. Optionally, it supports

    BorgBackup 9k Jan 09, 2023
    Some of the best ways and practices of doing code in Python!

    Pythonicness ❤ This repository contains some of the best ways and practices of doing code in Python! Features Properly formatted codes (PEP 8) for bet

    Samyak Jain 2 Jan 15, 2022
    Fully typesafe, Rust-like Result and Option types for Python

    safetywrap Fully typesafe, Rust-inspired wrapper types for Python values Summary This library provides two main wrappers: Result and Option. These typ

    Matthew Planchard 32 Dec 25, 2022
    A simple flask application to collect annotations for the Turing Change Point Dataset, a benchmark dataset for change point detection algorithms

    AnnotateChange Welcome to the repository of the "AnnotateChange" application. This application was created to collect annotations of time series data

    The Alan Turing Institute 16 Jul 21, 2022
    This is a small project written to help build documentation for projects in less time.

    Documentation-Builder This is a small project written to help build documentation for projects in less time. About This project builds documentation f

    Tom Jebbo 2 Jan 17, 2022