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
    A document format conversion service based on Pandoc.

    reformed Document format conversion service based on Pandoc. Usage The API specification for the Reformed server is as follows: GET /api/v1/formats: L

    David Lougheed 3 Jul 18, 2022
    An MkDocs plugin that simplifies configuring page titles and their order

    MkDocs Awesome Pages Plugin An MkDocs plugin that simplifies configuring page titles and their order The awesome-pages plugin allows you to customize

    Lukas Geiter 282 Dec 28, 2022
    The mitosheet package, trymito.io, and other public Mito code.

    Mito Monorepo Mito is a spreadsheet that lives inside your JupyterLab notebooks. It allows you to edit Pandas dataframes like an Excel file, and gener

    Mito 1.4k Dec 31, 2022
    A hack to run custom shell commands when building documentation on Read the Docs.

    readthedocs-custom-steps A hack to run custom steps when building documentation on Read the Docs. Important: This module should not be installed outsi

    Niklas Rosenstein 5 Feb 22, 2022
    Assignments from Launch X's python introduction course

    Launch X - On Boarding Assignments from Launch X's Python Introduction Course Explore the docs » Report Bug · Request Feature Table of Contents About

    Javier Méndez 0 Mar 15, 2022
    An introduction course for Python provided by VetsInTech

    Introduction to Python This is an introduction course for Python provided by VetsInTech. For every "boot camp", there usually is a pre-req, but becaus

    Vets In Tech 2 Dec 02, 2021
    Python For Finance Cookbook - Code Repository

    Python For Finance Cookbook - Code Repository

    Packt 544 Dec 25, 2022
    ACPOA plugin creation helper

    ACPOA Plugin What is ACPOA ACPOA is the acronym for "Application Core for Plugin Oriented Applications". It's a tool to create flexible and extendable

    Leikt Sol'Reihin 1 Oct 20, 2021
    Tips for Writing a Research Paper using LaTeX

    Tips for Writing a Research Paper using LaTeX

    Guanying Chen 727 Dec 26, 2022
    Fast, efficient Blowfish cipher implementation in pure Python (3.4+).

    blowfish This module implements the Blowfish cipher using only Python (3.4+). Blowfish is a block cipher that can be used for symmetric-key encryption

    Jashandeep Sohi 41 Dec 31, 2022
    A repository of links with advice related to grad school applications, research, phd etc

    A repository of links with advice related to grad school applications, research, phd etc

    Shaily Bhatt 946 Dec 30, 2022
    Second version of SQL-PYTHON-Practicas

    SQLite-Python Acerca de | Autor Sobre el repositorio Segunda version de SQL-PYTHON-Practicas 💻 Tecnologias Visual Studio Code Python SQLite3 📖 Requi

    1 Jan 06, 2022
    EasyMultiClipboard - Python script written to handle more than 1 string in clipboard

    EasyMultiClipboard - Python script written to handle more than 1 string in clipboard

    WVlab 1 Jun 18, 2022
    Sphinx theme for readthedocs.org

    Read the Docs Sphinx Theme This Sphinx theme was designed to provide a great reader experience for documentation users on both desktop and mobile devi

    Read the Docs 4.3k Dec 31, 2022
    Sphinx Bootstrap Theme

    Sphinx Bootstrap Theme This Sphinx theme integrates the Bootstrap CSS / JavaScript framework with various layout options, hierarchical menu navigation

    Ryan Roemer 584 Nov 16, 2022
    Pystm32ai - A Python wrapper for the stm32ai command-line tool

    PySTM32.AI A python wrapper for the stm32ai command-line tool to analyse deep le

    Thibaut Vercueil 5 Jul 28, 2022
    Paper and Code for "Curriculum Learning by Optimizing Learning Dynamics" (AISTATS 2021)

    Curriculum Learning by Optimizing Learning Dynamics (DoCL) AISTATS 2021 paper: Title: Curriculum Learning by Optimizing Learning Dynamics [pdf] [appen

    Tianyi Zhou 15 Dec 06, 2022
    Template repo to quickly make a tested and documented GitHub action in Python with Poetry

    Python + Poetry GitHub Action Template Getting started from the template Rename the src/action_python_poetry package. Globally replace instances of ac

    Kevin Duff 89 Dec 25, 2022
    An interview engine for businesses, interview those who are actually qualified and are worth your time!

    easyInterview V0.8B An interview engine for businesses, interview those who are actually qualified and are worth your time! Quick Overview You/the com

    Vatsal Shukla 1 Nov 19, 2021
    Dynamic Resume Generator

    Dynamic Resume Generator

    Quinten Lisowe 15 May 19, 2022