<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Vishwas Tyagi</title>
    <description>The latest articles on Forem by Vishwas Tyagi (@vishwastyagi).</description>
    <link>https://forem.com/vishwastyagi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637873%2F0d48b8da-c74e-4774-8e5a-916f9f23fe49.png</url>
      <title>Forem: Vishwas Tyagi</title>
      <link>https://forem.com/vishwastyagi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vishwastyagi"/>
    <language>en</language>
    <item>
      <title>Need help with Resume</title>
      <dc:creator>Vishwas Tyagi</dc:creator>
      <pubDate>Sat, 01 Oct 2022 18:00:52 +0000</pubDate>
      <link>https://forem.com/vishwastyagi/i-need-help-with-my-resume-54j6</link>
      <guid>https://forem.com/vishwastyagi/i-need-help-with-my-resume-54j6</guid>
      <description>&lt;p&gt;I finished my resume today. I'm not sure how to write a good resume. I need someone to go over it and make valuable suggestions on how I can improve it.&lt;/p&gt;

&lt;p&gt;Resume link: &lt;a href="https://drive.google.com/file/d/1AExrQvdYU7mGEFb4DVKTBLViAQQlKdHC/view?usp=sharing"&gt;https://drive.google.com/file/d/1AExrQvdYU7mGEFb4DVKTBLViAQQlKdHC/view?usp=sharing&lt;/a&gt;&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
      &lt;div class="c-embed__cover"&gt;
        &lt;a href="https://drive.google.com/file/d/1AExrQvdYU7mGEFb4DVKTBLViAQQlKdHC/view?usp=sharing" class="c-link s:max-w-50 align-middle" rel="noopener noreferrer"&gt;
          &lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sc9Ey9QY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/Qm6b0Pu48YigUcKWZLetNADWnm56h5WIzt7Lba1Cq1CmuED0ZhoVuCpzLfhxBm_msrM%3Dw1200-h630-p" height="462" class="m-0" width="880"&gt;
        &lt;/a&gt;
      &lt;/div&gt;
    &lt;div class="c-embed__body"&gt;
      &lt;h2 class="fs-xl lh-tight"&gt;
        &lt;a href="https://drive.google.com/file/d/1AExrQvdYU7mGEFb4DVKTBLViAQQlKdHC/view?usp=sharing" rel="noopener noreferrer" class="c-link"&gt;
          RESUME - VISHWAS TYAGI.pdf - Google Drive
        &lt;/a&gt;
      &lt;/h2&gt;
      &lt;div class="color-secondary fs-s flex items-center"&gt;
          &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://res.cloudinary.com/practicaldev/image/fetch/s--w5LNmP0W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ssl.gstatic.com/images/branding/product/1x/drive_2020q4_32dp.png" width="32" height="32"&gt;
        drive.google.com
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Please feel free to offer your valuable suggestions.&lt;/p&gt;

</description>
      <category>career</category>
      <category>help</category>
    </item>
    <item>
      <title>The Practical Guide to Contributing to Open Source Projects</title>
      <dc:creator>Vishwas Tyagi</dc:creator>
      <pubDate>Wed, 07 Sep 2022 06:39:32 +0000</pubDate>
      <link>https://forem.com/vishwastyagi/the-practical-guide-to-using-github-and-contributing-to-open-source-projects-53nn</link>
      <guid>https://forem.com/vishwastyagi/the-practical-guide-to-using-github-and-contributing-to-open-source-projects-53nn</guid>
      <description>&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;
Using GitHub

&lt;ul&gt;
&lt;li&gt;Creating a local git repository&lt;/li&gt;
&lt;li&gt;Creating a repository on GitHub&lt;/li&gt;
&lt;li&gt;Pushing code to the GitHub repository&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
Contributing to Open Source Projects

&lt;ul&gt;
&lt;li&gt;Step 1: Finding the repository to contribute to&lt;/li&gt;
&lt;li&gt;Step 2: Forking the repository&lt;/li&gt;
&lt;li&gt;Step 3: Cloning the fork&lt;/li&gt;
&lt;li&gt;Step 4: Navigating to local repository&lt;/li&gt;
&lt;li&gt;Step 5: Checking the "origin" remote&lt;/li&gt;
&lt;li&gt;Step 6: Adding the "upstream" remote&lt;/li&gt;
&lt;li&gt;Step 7: Pulling the latest changes&lt;/li&gt;
&lt;li&gt;Step 8: Creating a new branch&lt;/li&gt;
&lt;li&gt;Step 9: Making changes&lt;/li&gt;
&lt;li&gt;Step 10: Committing changes&lt;/li&gt;
&lt;li&gt;Step 11: Pushing changes to fork&lt;/li&gt;
&lt;li&gt;Step 12: Creating a pull request&lt;/li&gt;
&lt;li&gt;Step 13: Discussing the pull request&lt;/li&gt;
&lt;li&gt;Step 14: Adding more commits to the existing pull request&lt;/li&gt;
&lt;li&gt;Step 15: Discussing the pull request again&lt;/li&gt;
&lt;li&gt;Step 16: Deleting branch from the fork&lt;/li&gt;
&lt;li&gt;Step 17: Deleting branch from the local repository&lt;/li&gt;
&lt;li&gt;Step 18: Synchronizing the fork with the project repository&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Hey VT, you taught me about &lt;code&gt;git&lt;/code&gt; &lt;a href="https://dev.to/vishwastyagi/practical-guide-to-use-git-for-beginners-4ln4"&gt;over here&lt;/a&gt;. Since then, I am having a good time working with &lt;code&gt;git&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I recently heard about the terms &lt;strong&gt;GitHub&lt;/strong&gt; and &lt;strong&gt;Open Source Software&lt;/strong&gt;. I am curious to know about them. Can you tell me something about them?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Yeah, sure.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;GitHub&lt;/strong&gt; is basically a cloud-based website where you can host git repositories and collaborate with other people.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Open Source Software&lt;/strong&gt; is a type of software that has freely accessible source code and is distributed under a license that allows you to examine, modify, and use the code without restriction.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Could you please explain how I can use GitHub?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Ok, let's get into it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Let's create a git repository and push it onto GitHub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Ok, I'm excited.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 Make sure you have &lt;code&gt;git&lt;/code&gt; installed before moving forward.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;u&gt;Creating a local git repository&lt;/u&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Initialize a new git repository
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; First, we have to create a git repository on our computer.&lt;/p&gt;

&lt;p&gt;Open a terminal (or command prompt) in an empty folder or a project folder and run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4pSY8BTW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3wnxsp0upmiwrsgcnces.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4pSY8BTW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3wnxsp0upmiwrsgcnces.png" alt="Oputput of command git init" width="638" height="38"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  2. Create a file
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We now have a &lt;code&gt;git&lt;/code&gt; repository set up. Let's create a new file.&lt;/p&gt;

&lt;p&gt;Create a new file (or modify an existing one) in the folder where we set up the git repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ppg1fRlk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3g3ru24wikterwct6ao.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ppg1fRlk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3g3ru24wikterwct6ao.png" alt="Screenshot of index.html file with git repository" width="461" height="92"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's call our file &lt;code&gt;index.html&lt;/code&gt; and add the following code to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;GitHub Guide&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello GitHub!&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save the file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now, we can run this command to see our changes tracked by &lt;code&gt;git&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vp16dM74--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/17jaj3osvc7uz8tllfhe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vp16dM74--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/17jaj3osvc7uz8tllfhe.png" alt="Output of the command git status" width="632" height="181"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  3. Commit changes
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Let's commit our change.&lt;/p&gt;

&lt;p&gt;Run the following commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git add index.html
&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"added index.html"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OvoIKKgC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/83ze0smb5oyelob8xe14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OvoIKKgC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/83ze0smb5oyelob8xe14.png" alt="Output of command git commit" width="638" height="106"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Ok, I have successfully committed my changes. What's next?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Next, the exciting part, we will create a repository on GitHub.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Creating a repository on GitHub&lt;/u&gt;
&lt;/h3&gt;
&lt;h4&gt;
  
  
  1. Log in to GitHub
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; First step, log in to GitHub.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 If you are new to GitHub, create a new account on GitHub.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--30st86Hf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wym8ylag56k2lwbtqfyl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--30st86Hf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wym8ylag56k2lwbtqfyl.png" alt="GitHub sign-in page" width="150" height="184"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 For security purposes, GitHub provides a &lt;strong&gt;PAT&lt;/strong&gt; (Personal Access Token) to use in place of a password while pushing code to GitHub. Please generate your PAT as soon as you log in to GitHub for the first time. You can generate your PAT by following &lt;a href="https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token"&gt;this guide&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
  
  
  2. Create a repository on GitHub
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Click the &lt;code&gt;+&lt;/code&gt; icon in the upper right corner of the GitHub homepage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xusJ2csn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jtvkjsmssla8jvp4c4mg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xusJ2csn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jtvkjsmssla8jvp4c4mg.png" alt="Plus icon on GitHub" width="312" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select &lt;code&gt;New repository&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--laGa7JOG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bcwwr52tf4f0dpzs4s2s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--laGa7JOG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bcwwr52tf4f0dpzs4s2s.png" alt="New repository button GitHub" width="260" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A page will open to create a new repository.&lt;/p&gt;

&lt;p&gt;Enter the name and description (optional) for the new repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4IQ2sjaN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2u2hb3jvd39mjj1x55bf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4IQ2sjaN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2u2hb3jvd39mjj1x55bf.png" alt="New repository name and description input fields" width="730" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choose whether to make the repository &lt;code&gt;Public&lt;/code&gt; or &lt;code&gt;Private&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4RA1n0mi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4rkjdpp2wgchaz0lfadr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4RA1n0mi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4rkjdpp2wgchaz0lfadr.png" alt="Repository options Public or Private" width="730" height="105"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the &lt;code&gt;Create repository&lt;/code&gt; button at the bottom of the page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q47g7MRN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/or0fuia8lk4mzy561349.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q47g7MRN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/or0fuia8lk4mzy561349.png" alt="Create repository button" width="295" height="65"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We now have a GitHub repository set up. Let's see how we can push our code to the GitHub repository.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Pushing code to the GitHub repository&lt;/u&gt;
&lt;/h3&gt;
&lt;h4&gt;
  
  
  1. Add remote to the local git repository
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; What do you mean by adding remote?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Connecting our local git repository to a remote (online) repository, such as a GitHub repository, is what adding remote means.&lt;/p&gt;

&lt;p&gt;It enables us to pull updates and push our changes to the remote repository.&lt;/p&gt;

&lt;p&gt;We can add remote to our local git repository by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git remote add origin URL_OF_GITHUB_REPOSITORY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;URL_OF_GITHUB_REPOSITORY&lt;/code&gt; with the URL of your own GitHub repository with &lt;code&gt;.git&lt;/code&gt; added at the end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pO3co1ru--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2yactfi73b00svcde67y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pO3co1ru--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2yactfi73b00svcde67y.png" alt="Output of git remote command" width="641" height="36"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Rename the branch from &lt;code&gt;master&lt;/code&gt; to &lt;code&gt;main&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Before we can push our git repository to GitHub, we must rename the branch &lt;code&gt;master&lt;/code&gt; to &lt;code&gt;main&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Why do we have to rename the git branch?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; It's because GitHub uses &lt;code&gt;main&lt;/code&gt; as its default branch, whereas git uses &lt;code&gt;master&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Run the following command to rename the current branch to &lt;code&gt;main&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git branch &lt;span class="nt"&gt;-M&lt;/span&gt; main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Push code to GitHub
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now, it's time to push our code to GitHub.&lt;/p&gt;

&lt;p&gt;Run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When prompted, enter your GitHub username and password.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 Use your PAT (Personal Access Token) in place of the password.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6FAooxut--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/apny4wd3ihn0kdp08ww5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6FAooxut--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/apny4wd3ihn0kdp08ww5.png" alt="Output of git push command" width="641" height="215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Congratulations!&lt;/strong&gt; We now have a complete GitHub repository.🎉🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/3oz8xAFtqoOUUrsh7W/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/3oz8xAFtqoOUUrsh7W/giphy.gif" width="480" height="320"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h2&gt;
  
  
  Contributing to Open Source Projects
&lt;/h2&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 1: Finding the repository to contribute to&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; To contribute to an open-source project, we must first navigate to the project's GitHub repository.&lt;/p&gt;

&lt;p&gt;But, for practice, I've set up a GitHub repository called &lt;code&gt;github-playground&lt;/code&gt;. You can find it &lt;a href="https://github.com/vishwast03/github-playground"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 I recommend that you follow this guide and contribute to the GitHub repository (&lt;code&gt;github-playground&lt;/code&gt;).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Go to &lt;a href="https://github.com/vishwast03/github-playground"&gt;https://github.com/vishwast03/github-playground&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 2: Forking the repository&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; What do you mean by 'forking'?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Here, 'forking' means copying the original repository to our own account.&lt;/p&gt;

&lt;p&gt;To &lt;strong&gt;Fork&lt;/strong&gt; the repository, click on the &lt;code&gt;Fork&lt;/code&gt; button in the upper-right corner of the repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cw9sArCK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hcc54p1vyquodwhbkg4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cw9sArCK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hcc54p1vyquodwhbkg4w.png" alt="Fork button on GitHub" width="482" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On next page, click &lt;code&gt;Create fork&lt;/code&gt; button at the bottom.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BTIjNwRy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w4iila13kx1zrkkgg2wx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BTIjNwRy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w4iila13kx1zrkkgg2wx.png" alt="Create fork button on GitHub" width="575" height="118"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 3: Cloning the fork&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now, we have to &lt;code&gt;clone&lt;/code&gt; the forked repository to our local machine using &lt;code&gt;git&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloning&lt;/strong&gt; means copying a remote repository to our local machine. It is done to be able to work on the project.&lt;/p&gt;

&lt;p&gt;To &lt;strong&gt;clone&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First click the &lt;code&gt;Code&lt;/code&gt; button on the forked project on your GitHub.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z_VUhRxP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/79ns7r56sz283ud97ort.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z_VUhRxP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/79ns7r56sz283ud97ort.png" alt="Code button on GitHub" width="880" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy the URL from the tab opened.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--b4tw4FhW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yix5m3jm07qwsp2t3q7w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--b4tw4FhW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yix5m3jm07qwsp2t3q7w.png" alt="Repo URL tab on GitHub" width="398" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run the following command to clone the forked repository.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git clone URL_OF_FORK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;URL_OF_FORK&lt;/code&gt; of with the URL you have copied in the previous step.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ABQUM6T1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ogvlerfq4s730rbsy6hw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ABQUM6T1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ogvlerfq4s730rbsy6hw.png" alt="Output of git clone command" width="644" height="144"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 4: Navigating to local repository&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Use the following command to navigate to the local repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;NAME_OF_REPOSITORY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;u&gt;Step 5: Checking the "origin" remote&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now, we will check if our fork is added as remote &lt;code&gt;origin&lt;/code&gt; or not.&lt;/p&gt;

&lt;p&gt;Use the following command to list all the remotes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git remote &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output of above command should look like this:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2020TSYx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b39tr6d5532bxgci2cly.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2020TSYx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b39tr6d5532bxgci2cly.png" alt="output of git remote command" width="639" height="53"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 If your fork was not added correctly as &lt;code&gt;origin&lt;/code&gt;, you can use the following command to add it manually:&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git remote add origin URL_OF_FORK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;URL_OF_FORK&lt;/code&gt; with the URL of your fork on GitHub.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;u&gt;Step 6: Adding the "upstream" remote&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Before we start working on the project, we have to add the original project repository as remote &lt;code&gt;upstream&lt;/code&gt; in our local repository.&lt;/p&gt;

&lt;p&gt;It enables us to pull updates from the main project.&lt;/p&gt;

&lt;p&gt;Use the following command to add remote &lt;code&gt;upstream&lt;/code&gt; to our local repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git remote add upstream URL_OF_PROJECT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;URL_OF_PROJECT&lt;/code&gt; with the URL of the original project (not fork).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can check if the remote was added or not by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git remote &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output should look like this:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--92ozutDE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vr6001qak0jx505pbdsf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--92ozutDE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vr6001qak0jx505pbdsf.png" alt="Output of git remote after adding upstream" width="639" height="127"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 7: Pulling the latest changes&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; It is the best practise to always download the most recent changes from &lt;code&gt;upstream&lt;/code&gt; before beginning work on a project.&lt;/p&gt;

&lt;p&gt;Run the following command to pull the latest changes from &lt;code&gt;upstream&lt;/code&gt; into our local repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git pull upstream main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rB6JCTWP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w40ivj48wl4zplpsmbyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rB6JCTWP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w40ivj48wl4zplpsmbyd.png" alt="Output of git pull command" width="642" height="108"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 8: Creating a new branch&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Let's create a new branch to begin our work.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Always create a new branch before working on the project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; BRANCH_NAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;BRANCH_NAME&lt;/code&gt; with the name you want to give to your branch (e.g. &lt;code&gt;feature&lt;/code&gt;).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can list all your branches by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---sMHGuZt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r2crhcb707lk1u4yy0c5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---sMHGuZt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r2crhcb707lk1u4yy0c5.png" alt="Output of git branch command" width="654" height="90"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 9: Making changes&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; It's time to make some change to our project.&lt;/p&gt;

&lt;p&gt;If you are working on &lt;code&gt;github-playground&lt;/code&gt; project then, open &lt;code&gt;Players.md&lt;/code&gt; file in your favourite text editor.&lt;/p&gt;

&lt;p&gt;Add the following line to &lt;code&gt;Players.md&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;YOUR_NAME&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;YOUR_PROFILE_URL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DBcROt-K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ts1zxdeau5muxqudflt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DBcROt-K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ts1zxdeau5muxqudflt.png" alt="Name and profile added to Players.md" width="483" height="68"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;YOUR_NAME&lt;/code&gt; with your real name and &lt;code&gt;YOUR_PROFILE_URL&lt;/code&gt; with your profile URL (you can share any profile that you want, e.g. GitHub, Twitter, dev.to, etc.).&lt;/p&gt;

&lt;p&gt;📌 If you don't want to share your profile, write your name like this:&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt; YOUR_NAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vWCKU1_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7xdklncqxim0fkxuw1t4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWCKU1_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7xdklncqxim0fkxuw1t4.png" alt="Only name added to Players.md" width="333" height="60"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Save the file.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;u&gt;Step 10: Committing changes&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Let's now make a commit to the repository.&lt;/p&gt;

&lt;p&gt;Run the following command to add the change to staging area and make a commit to the repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"DESCRIPTION_OF_CHANGES"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;DESCRIPTION_OF_CHANGES&lt;/code&gt; with the actual description.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jXNfBMZX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e571fcv30ujsi7wlul0q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jXNfBMZX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e571fcv30ujsi7wlul0q.png" alt="Output after running git commit command" width="712" height="73"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 11: Pushing changes to fork&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We will now push our changes to our forked repository.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Why do we have to push the changes to the forked repository? Can't we just push to the original repository?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We can't push the changes directly to the original repository. We don't have access to that repository.&lt;/p&gt;

&lt;p&gt;We must first push the changes to the forked repository, then we will make a pull request from there.&lt;/p&gt;

&lt;p&gt;Run the following command to push the changes to the forked repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git push origin BRANCH_NAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;BRANCH_NAME&lt;/code&gt; with the name of the branch you are working with.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When prompted, enter your GitHub username and password.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 Use your PAT (Personal Access Token) in place of the password.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--St5P0R0h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1vf7pm4eiwkq3z3zg0q2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--St5P0R0h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1vf7pm4eiwkq3z3zg0q2.png" alt="Output of git push command" width="714" height="270"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 12: Creating a pull request&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now it's time to make a pull request.&lt;/p&gt;

&lt;p&gt;Navigate to the forked repository on GitHub.&lt;/p&gt;

&lt;p&gt;A prompt to make a pull requset must have appeared.&lt;/p&gt;

&lt;p&gt;Click the button labelled &lt;code&gt;Compare &amp;amp; pull request&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CAlZGx_I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3s2mtqy8u3dcq1d27a9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CAlZGx_I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3s2mtqy8u3dcq1d27a9.png" alt="Compare &amp;amp; pull request button" width="880" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the next page, add the &lt;code&gt;Title&lt;/code&gt; and &lt;code&gt;Description&lt;/code&gt; to your pull request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fJzIt4_O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gscbzioywe4mds90g12v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fJzIt4_O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gscbzioywe4mds90g12v.png" alt="Pull request title and description input" width="830" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, click &lt;code&gt;Create pull request&lt;/code&gt; button at the bottom.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y2xwYs-t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wzzsvn7ar5gnnqd3wjeg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y2xwYs-t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wzzsvn7ar5gnnqd3wjeg.png" alt="Create pull request button" width="430" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have successfully created a pull request. Cheers!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--45T3PfcJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0btrwth1sxylehxyrwh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--45T3PfcJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0btrwth1sxylehxyrwh.png" alt="Pull requset created successfully" width="880" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Oh! Great! What do we have to do next?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now we must discuss the pull request with the maintainer of the repository and, if necessary, make additional changes.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 13: Discussing the pull request&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now that we've made a pull request, the repository's owner/maintainer will be notified about it.&lt;/p&gt;

&lt;p&gt;The maintainers may initiate a discussion about the pull request and, if necessary, suggest changes.&lt;/p&gt;

&lt;p&gt;If they are satisfied with the changes we have made, they will either merge the changes back into the original repository or suggest some changes.&lt;/p&gt;

&lt;p&gt;If they have suggested any changes, we must implement them and make another commit to the existing pull request.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 14: Adding more commits to the existing pull request&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; If we need to make changes after submitting a pull request, we must go to our local git repository and make the changes there.&lt;/p&gt;

&lt;p&gt;To do so, we must switch to the branch on which we were previously working.&lt;/p&gt;

&lt;p&gt;Run the following commands to check and switch the branch:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git branch
&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git checkout BRANCH_NAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;BRANCH_NAME&lt;/code&gt; with the name of the branch you were working with.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yO6U7zn4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fp7uqodantgy9vqyla65.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yO6U7zn4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fp7uqodantgy9vqyla65.png" alt="Output while switching branch" width="628" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we've switched to the branch with which we'll be working, we simply need to repeat steps 9 through step 11.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 15: Discussing the pull request again&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We must now re-discuss the pull request with the repository's maintainers.&lt;/p&gt;

&lt;p&gt;If the maintainers approve and merge your changes, you will have made your first contribution to open source. It's time to celebrate.🎉🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/kyLYXonQYYfwYDIeZl/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/kyLYXonQYYfwYDIeZl/giphy.gif" width="600" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Yay!!&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 16: Deleting branch from the fork&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We now need to do some cleanup.&lt;/p&gt;

&lt;p&gt;We have to delete the branch from our fork on GitHub.&lt;/p&gt;

&lt;p&gt;To do so, we must first navigate to our forked repository page and open the dropdown labeled with the branch name &lt;code&gt;main&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oKIqEJrr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5bi6ub8fz0o4ab6h1t44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oKIqEJrr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5bi6ub8fz0o4ab6h1t44.png" alt="Branch dropdown menu" width="348" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click &lt;code&gt;View all branches&lt;/code&gt; at the bottom of the dropdown menu.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q5EYsrOE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/exfr3tgqjmplmsyb8cs2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q5EYsrOE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/exfr3tgqjmplmsyb8cs2.png" alt="View all branches link" width="298" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click the delete button corresponding to the branch with which we were working.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dyNR3CcU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2oh1yrw84pe5xu5q7qm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dyNR3CcU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2oh1yrw84pe5xu5q7qm.png" alt="Delete branch button" width="880" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click &lt;code&gt;Delete&lt;/code&gt; from the popup which will appear.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 17: Deleting branch from the local repository&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now, we will delete the branch from our local repository.&lt;/p&gt;

&lt;p&gt;First switch to the &lt;code&gt;main&lt;/code&gt; branch by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git checkout main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, run the following command to delete the branch from local git repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git branch &lt;span class="nt"&gt;-D&lt;/span&gt; BRANCH_NAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;📌 Make sure to replace &lt;code&gt;BRANCH_NAME&lt;/code&gt; with the name of the branch you were working with.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JyNET7Io--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nv83hya86zx843bunomz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JyNET7Io--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nv83hya86zx843bunomz.png" alt="Output of delete branch command" width="633" height="89"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;u&gt;Step 18: Synchronizing the fork with the project repository&lt;/u&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Finally, if we intend to contribute to this project in the future, we must synchronise our fork with the project repository.&lt;/p&gt;

&lt;p&gt;Just run the following command to do so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git pull upstream main
&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enter the username and password when prompted.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 Use your PAT (Personal Access Token) in place of the password.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These commands will pull the most recent changes from the project repository and push them to our fork.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Congratulations on your first contribution to open source!🎉🎉&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I hope you found something helpful in this post. You can also follow me on LinkedIn and Twitter.&lt;/p&gt;

&lt;p&gt;Cheers and see you in the next one! ✌️&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>5 Useful Resources That Are Worth Your Time</title>
      <dc:creator>Vishwas Tyagi</dc:creator>
      <pubDate>Fri, 26 Aug 2022 14:18:04 +0000</pubDate>
      <link>https://forem.com/vishwastyagi/5-useful-resources-that-are-worth-your-time-3fnd</link>
      <guid>https://forem.com/vishwastyagi/5-useful-resources-that-are-worth-your-time-3fnd</guid>
      <description>&lt;p&gt;Here are a few articles and video courses that are worth your time:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;"Productivity Porn." Caleb Schoepp coined the term to describe anything that, after consumption, makes you feel productive when, in reality, you didn't do anything. It stimulates you without even performing the act, just like regular pornography. Read this article by Caleb Schoepp about productivity porn, examples, and its effects in real life. (5 minute read):&lt;br&gt;
&lt;a href="https://calebschoepp.com/blog/2022/productivity-porn/"&gt;https://calebschoepp.com/blog/2022/productivity-porn/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;System design is one of the first decisions we can make when building a system. System design is the process of defining the architecture, interfaces, and data for a system that meets specific requirements. This comprehensive course will teach you almost everything about the system design process, including the OSI model, CDN, databases, and so on. (3.2 hour read):&lt;br&gt;
&lt;a href="https://kps.hashnode.dev/system-design-the-complete-course"&gt;https://kps.hashnode.dev/system-design-the-complete-course&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Docker is an open platform for developing, shipping, and running applications. In this course, you will gain a thorough understanding of the concepts as well as a comprehensive overview of how Docker is used throughout the software development process. The course is a combination of animated theoretical explanations and hands-on demonstrations that you can follow along with. (2.7 hour YouTube course):&lt;br&gt;
&lt;a href="https://dev.to/techworld_with_nana/full-docker-course-free-4hl3"&gt;https://dev.to/techworld_with_nana/full-docker-course-free-4hl3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python is the fastest-growing programming language among developers, and companies are using it in almost every industry, such as machine learning and web development. If you want to become a Python developer and looking for a complete 2022 Python Developer RoadMap then this illustrated guide is for you. (8 minute read):&lt;br&gt;
&lt;a href="https://medium.com/javarevisited/the-2022-python-programmer-roadmap-bafb365071a3"&gt;https://medium.com/javarevisited/the-2022-python-programmer-roadmap-bafb365071a3&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JavaScript can be used to create a wide variety of games. And JavaScript games can run on almost any device that has a web browser. This course will teach you how to create 2D games using HTML, CSS, and plain vanilla JavaScript, with no frameworks or libraries. (9.6 hour YouTube course):&lt;br&gt;
&lt;a href="https://www.freecodecamp.org/news/learn-javascript-game-development-full-course/"&gt;https://www.freecodecamp.org/news/learn-javascript-game-development-full-course/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Quote: “Focus on being productive instead of busy.” — Tim Ferriss&lt;/p&gt;

&lt;p&gt;I hope you found something helpful in this post. You can also find me on &lt;a href="https://www.linkedin.com/in/vishwas-tyagi/"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://twitter.com/vishwast03"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cheers and see you in the next one! ✌️&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>design</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Practical Guide to using Git for Beginners</title>
      <dc:creator>Vishwas Tyagi</dc:creator>
      <pubDate>Wed, 17 Aug 2022 02:30:00 +0000</pubDate>
      <link>https://forem.com/vishwastyagi/practical-guide-to-use-git-for-beginners-4ln4</link>
      <guid>https://forem.com/vishwastyagi/practical-guide-to-use-git-for-beginners-4ln4</guid>
      <description>&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Step 1: Install git&lt;/li&gt;
&lt;li&gt;Step 2: Configure git&lt;/li&gt;
&lt;li&gt;Step 3: Create a new git repository&lt;/li&gt;
&lt;li&gt;Step 4: Making changes&lt;/li&gt;
&lt;li&gt;Step 5: Committing changes&lt;/li&gt;
&lt;li&gt;Undo commits&lt;/li&gt;
&lt;li&gt;Git Branches&lt;/li&gt;
&lt;li&gt;Merging branches&lt;/li&gt;
&lt;li&gt;Deleting a branch&lt;/li&gt;
&lt;li&gt;Further reading...&lt;/li&gt;
&lt;li&gt;Summary&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; I made some changes in my &lt;a href="https://en.wikipedia.org/wiki/Source_code" rel="noopener noreferrer"&gt;source code&lt;/a&gt; and my application broke. Now, I can’t undo the changes that I made earlier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; You should have used git.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Git? What is that?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Git is a version control system, which tracks the history of changes. As you make changes to the project, any earlier version of the project can be recovered at any time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; This sounds great! But, how can I use it?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; OK! I will show you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Install git &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; First, download git from &lt;a href="http://git-scm.com" rel="noopener noreferrer"&gt;http://git-scm.com&lt;/a&gt; and install it on your computer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; OK! Done!&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Configure git &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Configure user information for git. This helps to set your details to all your commits.&lt;/p&gt;

&lt;p&gt;Open a terminal (or command prompt) and run the following commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"[name]"&lt;/span&gt;
&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"[email address]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Make sure to replace &lt;code&gt;[name]&lt;/code&gt; and &lt;code&gt;[email address]&lt;/code&gt; with your real &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;email address&lt;/code&gt; respectively.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Done!&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Create a new git repository &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; But what is a git repository?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; A Git repository is the &lt;code&gt;.git/&lt;/code&gt; folder inside a project. This repository tracks all changes made to files in your project and builds a history over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; But I don’t have a &lt;code&gt;.git/&lt;/code&gt; folder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; First, you have to initialize a git repository.&lt;/p&gt;

&lt;p&gt;Open a terminal (or command prompt) in an empty folder (or in your project folder) and run this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Initialized empty Git repository in /path/to/your/Project/.git/
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Oh, now I got the &lt;code&gt;.git&lt;/code&gt;&lt;code&gt;/&lt;/code&gt; folder. What's next?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you are not seeing the &lt;code&gt;.git/&lt;/code&gt; folder, turn on the &lt;code&gt;Show Hidden Files&lt;/code&gt; option. Usually, it is turned on with &lt;code&gt;Ctrl+H&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; That's it. Now you have a git repository where all the changes that you make will be tracked by git.&lt;/p&gt;

&lt;p&gt;Let's make some changes now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Making changes &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Make a new file (or change the existing one, if any) in the folder where you initialized the git repository.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Let's make an HTML file (&lt;code&gt;index.html&lt;/code&gt;), or download an HTML file from &lt;a id="raw-url" href="https://drive.google.com/uc?id=1wtBer4YwmexsMFsSzgSssADmoJe9Vw6N&amp;amp;export=download" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4l9wkt1h5hj0r3j5r7gq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4l9wkt1h5hj0r3j5r7gq.png" alt="Screenshot of the .git/ folder and index.html"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now, you can run this command to see your changes tracked by git.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;On branch master

No commits yet

Untracked files:
&lt;/span&gt;&lt;span class="gp"&gt;  (use "git add &amp;lt;file&amp;gt;&lt;/span&gt;...&lt;span class="s2"&gt;" to include in what will be committed)
&lt;/span&gt;&lt;span class="go"&gt;    index.html

nothing added to commit but untracked files present (use "git add" to track)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Done! But what are &lt;code&gt;branch master&lt;/code&gt; and &lt;code&gt;commits&lt;/code&gt; mentioned in the output?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Hold on! We will talk about branches in a moment. Let's first talk about commits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Committing changes &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Commits record file snapshots permanently in the version history.&lt;/p&gt;

&lt;p&gt;Let's see how we can commit our changes to the git repository.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; First, we have to add our change to the "staging area".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; What is the "staging area"?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; The staging area is like a rough draft space, it's where we can add a version of a file (or files) that we want to save in our next commit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Let's add our &lt;code&gt;index.html&lt;/code&gt; file to the "staging area".&lt;/p&gt;

&lt;p&gt;Run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git add index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;OR,&lt;/strong&gt; we can add all the changes to the staging area at once by running this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now, if we run the command &lt;code&gt;git status&lt;/code&gt;, we will get an output something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;On branch master

No commits yet

Changes to be committed:
&lt;/span&gt;&lt;span class="gp"&gt;  (use "git rm --cached &amp;lt;file&amp;gt;&lt;/span&gt;...&lt;span class="s2"&gt;" to unstage)
&lt;/span&gt;&lt;span class="go"&gt;    new file:   index.html
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We can commit our stagged changes by running the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"[descriptive message]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;We can add a message to describe our changes by replacing &lt;code&gt;[descriptive message]&lt;/code&gt; in the above command.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;[master (root-commit) db027ec] added index.html
 1 file changed, 13 insertions(+)
 create mode 100644 index.html
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We have successfully committed our change. We can see all our commits by running the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;Author: Vishwas Tyagi &amp;lt;vishwast8126@gmail.com&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="go"&gt;Date:   Mon Aug 15 19:06:57 2022 +0530

    added index.html
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; That's great! But what if I made a commit by mistake? How would I undo any commit?&lt;/p&gt;

&lt;h2&gt;
  
  
  Undo commits &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We can undo any commit at any time by running the &lt;code&gt;git reset&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Let's see it in action.&lt;/p&gt;

&lt;p&gt;Make a change to the &lt;code&gt;index.html&lt;/code&gt; file to make another commit.&lt;/p&gt;

&lt;p&gt;Add the following line to the &lt;code&gt;index.html&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;&lt;/span&gt;Making a change.&lt;span class="nt"&gt;&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save the file.&lt;/p&gt;

&lt;p&gt;Now, on running the &lt;code&gt;git status&lt;/code&gt; command we will get the following output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;On branch master
Changes not staged for commit:
&lt;/span&gt;&lt;span class="gp"&gt;  (use "git add &amp;lt;file&amp;gt;&lt;/span&gt;...&lt;span class="s2"&gt;" to update what will be committed)
&lt;/span&gt;&lt;span class="gp"&gt;  (use "git restore &amp;lt;file&amp;gt;&lt;/span&gt;&lt;span class="s2"&gt;..."&lt;/span&gt; to discard changes &lt;span class="k"&gt;in &lt;/span&gt;working directory&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="go"&gt;    modified:   index.html

no changes added to commit (use "git add" and/or "git commit -a")
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now, let's commit our change.&lt;/p&gt;

&lt;p&gt;Run the following commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git add index.html
&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"updated index.html"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now as we have committed all our changes.&lt;/p&gt;

&lt;p&gt;Suppose we made the last commit by mistake and we want to undo that commit.&lt;/p&gt;

&lt;p&gt;First, we have to find the &lt;strong&gt;hash id of the commit to which we want to go back.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Run the &lt;code&gt;git log&lt;/code&gt; command to list all the commits.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;commit 3d52d9625962f3147feb760ff7caccbaa2828b36 (HEAD -&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;master&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="gp"&gt;Author: Vishwas Tyagi &amp;lt;vishwast8126@gmail.com&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="go"&gt;Date:   Mon Aug 15 21:24:29 2022 +0530

    updated index.html

commit db027ecc1d3bd09298db3b0305375047b1e31894
&lt;/span&gt;&lt;span class="gp"&gt;Author: Vishwas Tyagi &amp;lt;vishwast8126@gmail.com&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="go"&gt;Date:   Mon Aug 15 19:06:57 2022 +0530

    added index.html
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; As we want to undo the last commit, we want the hash id of the commit before the last commit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuadmvztt4yq6hunmcv5t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuadmvztt4yq6hunmcv5t.png" alt="Screenshot showing the commit hash id"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run the following command to undo the last commit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git reset &lt;span class="o"&gt;[&lt;/span&gt;commit_hash_id]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Replace &lt;code&gt;[commit_hash_id]&lt;/code&gt; with the hash id of the commit to which you want to go back.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Unstaged changes after reset:
M   index.html
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; We have undone the commit and all the changes are sent back to the unstaged area.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Oh, I got it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; If you want to discard those changes, you can run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git restore index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Great! I got my &lt;code&gt;index.html&lt;/code&gt; file restored to the initial state.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; But what are the "branches" that you mentioned earlier?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; I think, it's the right time to talk about "branches."&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Branches &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhn9b1e74qmtievu4ol8f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhn9b1e74qmtievu4ol8f.png" alt="visual representation of git branches"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; In Git, a branch is a new/separate version of the main repository.&lt;/p&gt;

&lt;p&gt;Let's say we have a large project, and we need to work on a new feature.&lt;/p&gt;

&lt;p&gt;We can create a new branch (let's say &lt;code&gt;feature&lt;/code&gt;) and then we can work on that feature without affecting the main branch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git branch &lt;span class="o"&gt;[&lt;/span&gt;branch_name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we are satisfied with our work, we can merge our branch with the main branch.&lt;/p&gt;

&lt;p&gt;If not, then we can return to the main branch and discard the changes we made on the &lt;code&gt;feature&lt;/code&gt; branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; I am getting it, but I want to see it in action.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Ok, let's get into it.&lt;/p&gt;

&lt;p&gt;Suppose we want to add an image to our &lt;code&gt;index.html&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Create a new branch with the name &lt;code&gt;image&lt;/code&gt; by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git branch image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can list all the branches by running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;  image
* master
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It lists all the branches in the current git repository.&lt;/p&gt;

&lt;p&gt;Here, the &lt;code&gt;master&lt;/code&gt; is the default main branch.&lt;/p&gt;

&lt;p&gt;The asterisk &lt;code&gt;*&lt;/code&gt; shows which branch we are currently working on.&lt;/p&gt;

&lt;p&gt;To switch branches, run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git checkout image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Switched to branch 'image'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Now, we can make changes and they will affect only the current branch (&lt;code&gt;image&lt;/code&gt;). They will not affect the main branch (&lt;code&gt;master&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Add the following line to &lt;code&gt;index.html&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://images.unsplash.com/photo-1471897488648-5eae4ac6686b"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"300"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"200"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Commit the changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"added image in index.html"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; Our change is committed but it is only in the &lt;code&gt;image&lt;/code&gt; branch. It will not affect the &lt;code&gt;master&lt;/code&gt; branch.&lt;/p&gt;

&lt;p&gt;We can see this by switching the branch to &lt;code&gt;master&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git checkout master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; If we inspect the &lt;code&gt;index.html&lt;/code&gt; file after switching to the &lt;code&gt;master&lt;/code&gt; branch, we can see that the image we added in the &lt;code&gt;index.html&lt;/code&gt; file is not there.&lt;/p&gt;

&lt;p&gt;This is because the image was added in the &lt;code&gt;image&lt;/code&gt; branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; How would I merge both the branches?&lt;/p&gt;

&lt;h2&gt;
  
  
  Merging branches &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frhjkv1su9bkpwfkw8s3b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frhjkv1su9bkpwfkw8s3b.png" alt="visual representation of git branch merge"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; If we are satisfied with the changes we made in the separate branch, we can merge that branch with the &lt;code&gt;master&lt;/code&gt; branch by running &lt;code&gt;git merge [branch_name]&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;First, switch to branch &lt;code&gt;master&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git checkout master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then run the following command to merge the branch &lt;code&gt;image&lt;/code&gt; to the branch &lt;code&gt;master&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git merge image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Updating fa6e17e..c5a4da8
Fast-forward
 index.html | 1 +
 1 file changed, 1 insertion(+)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Deleting a branch &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; If we no longer want a branch and we want to delete it, we can simply run the &lt;code&gt;git branch -d [branch-name]&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;To delete the branch &lt;code&gt;image&lt;/code&gt; in our project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git branch &lt;span class="nt"&gt;-d&lt;/span&gt; image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Deleted branch image (was c5a4da8).
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;VT:&lt;/strong&gt; That's all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mike:&lt;/strong&gt; Oh, that's a lot for me, but by practicing it a few times, I can make it through.&lt;/p&gt;

&lt;h2&gt;
  
  
  Further reading... &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/get-started/using-git/about-git" rel="noopener noreferrer"&gt;Git Handbook - GitHub Guides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://training.github.com/downloads/github-git-cheat-sheet.pdf" rel="noopener noreferrer"&gt;Git Cheat Sheet - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.&lt;/p&gt;

&lt;p&gt;In this article, you learned about git repository, git commits, git branches, and how the whole process of version control works.&lt;/p&gt;

&lt;p&gt;I hope you enjoyed the article and learned something new. If you want, you can also follow me on &lt;a href="https://www.linkedin.com/in/vishwas-tyagi/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/vishwast03" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cheers and see you in the next one! ✌️&lt;/p&gt;

</description>
      <category>git</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
