{
    "componentChunkName": "component---src-templates-blog-js",
    "path": "/blog/basic-git-and-github-for-beginners",
    "result": {"data":{"markdownRemark":{"html":"<h1>Git and GitHub for Beginners - The Basics</h1>\n<p>Git Git Git... Git is all we hear people talking about these days. Now, you want to know what it is, so you are in the right place 😉.</p>\n<p>In this blog you will learn what Git is, why should you be using Git, and how you can start pushing your code to GitHub using Git. And the good part? you won't be needing any prior knowledge for this.</p>\n<p>Before we get started, let's see...</p>\n<h2>A brief Introduction</h2>\n<p>\"Git is a <strong>free and open source distributed version control system</strong> designed to handle everything from small to very large projects with speed and efficiency.\" ~ Linus Trovalds</p>\n<p>For instance, you are playing a game, where there are checkpoints, so if you lose in the later stages you start again from the previous checkpoint. That is basically one of the many things that Git can help you with.\nApart, from that we can have branches, collaboration, reviews, comments, tracking, etc. don't worry you will be seeing these in the later part of blogs.</p>\n<h2>Installing Git</h2>\n<p>Refer to this link to download <a href=\"https://git-scm.com/downloads/\">Git</a> ✨</p>\n<h2>Getting Started with Git</h2>\n<p>Okay, that is all theory, let's start with the commands that you need to get started 😄</p>\n<p>Now to check whether your machine has Git installed, run the following command</p>\n<pre><code class=\"language-bash\">git --version\n</code></pre>\n<p>If you are getting a output with some numbers for eg. <code>git version 2.41.0</code> (number may not be the same), then you are all ready to go 🥳.</p>\n<p>Now you have Git installed in your machine. But, Git doesn't know you. So now, you need to tell your name and email to Git by executing the following commands.</p>\n<pre><code class=\"language-bash\">git config --global user.email \"&#x3C;your-email>\"\ngit config --global user.name \"&#x3C;your-name>\"\n</code></pre>\n<p>eg.:</p>\n<pre><code class=\"language-bash\">git config --global user.email \"example@gmail.com\"\ngit config --global user.name \"John Doe\"\n</code></pre>\n<p><strong>P.S. Preferred to put your GitHub Email ID</strong></p>\n<p>Now to check whether your details are added correctly, execute you should be getting your entered details as the output.</p>\n<pre><code class=\"language-bash\">git config --list\n</code></pre>\n<p>If the output is too big scroll down using <code>Arrow-down</code> key there you will find your name and email.</p>\n<p>Okay, the above commands are only needed for people who newly installed Git and this shall only be executed once.</p>\n<p>Now, Fasten your seat belts and let's get started with Git Commands 🚀</p>\n<h2>Basic Git Commands</h2>\n<ul>\n<li>First things first, whenever you start a new project, in that folder you have to initialise a local repository.</li>\n</ul>\n<pre><code class=\"language-bash\">git init\n</code></pre>\n<p>You should get a message saying <strong>Initialised empty git repository</strong>. And also a new hidden file should be formed called <code>.git</code> which git uses to keep track of that folder.</p>\n<p>Now the question arises, How do I create a checkpoint and save my code in the Git repository?</p>\n<p>For that we will be following these three concepts, you can see them in the flow diagram below.</p>\n<p><img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ue4u5ql7c3cgxwgs7evy.png\" alt=\"Workflow of Add, Commit and Push\"></p>\n<p>Let me explain that in detail, when we create a new file, Git doesn't know that there is a new file. So we will be <code>add</code>ing the file to staging area where you can check the files and do any optimisation if needed, and also git can keep a track of it. Then we take a snapshot of all the current files i.e basically creating a checkpoint by <code>commit</code>ing the files. Then if we have connected our local repository with GitHub then we can <code>push</code> it, so everyone can access those files and collaborate, review and comment on it.</p>\n<p>I know this is quite confusing, but it will get cleared as we move on with each step particularly and seeing how to do that using commands.</p>\n<h3>Add, Commit and Push our code</h3>\n<p>These are the commands you will be using most of the times while working on your project.</p>\n<h4>Adding files to Staging area</h4>\n<p>In the folder create a new file called as <code>Readme.md</code> and write something inside it for eg.</p>\n<pre><code># Hello! My Name is Deveesh Shetty\n</code></pre>\n<p>P.S. <code>.md</code> means a markdown file which is like a text file but with extra features. Like here <code>#</code> represents <code>&#x3C;h1></code> tag from HTML</p>\n<p>Git doesn't know that you have created a new file, so you can do it by adding the file to the staging area by using the command</p>\n<pre><code class=\"language-bash\">git add &#x3C;file-name>\n</code></pre>\n<p>Here in my case replace the <code>&#x3C;file-name></code> with <code>Readme.md</code></p>\n<p><strong>Pro-tip</strong>: You can replace the file name with <code>.</code> (a period) to add all the untracked and modified files in that folder to the staging area.</p>\n<pre><code class=\"language-bash\">git add .\n</code></pre>\n<h4>Removing files from Staging area</h4>\n<p>Now your files are in the staging area. But you want to remove some files from the staging area which are not ready yet, you can simply do it by using the following command</p>\n<pre><code class=\"language-bash\">git reset &#x3C;file-name>\n</code></pre>\n<h4>Creating a Commit</h4>\n<p>Commit or in simple terms a checkpoint is where you save the past history of your code like a snapshot, and its very important because you can traverse through your previous code iterations and also get to know when was the particular change done in the code.</p>\n<p>Once, you have staged all the changes, creating a commit is quite simple by doing</p>\n<pre><code class=\"language-bash\">git commit -m \"Message describing the changes u made\"\n</code></pre>\n<p><strong>Pro-tip</strong>: The message you write while committing should give a brief idea about what changes are made while the committing the code.</p>\n<p>For example in my case it is:</p>\n<pre><code class=\"language-bash\">git commit -m \"Adds Readme File\"\n</code></pre>\n<p>Now you have created a checkpoint for your code which u can see by running the following command</p>\n<pre><code class=\"language-bash\">git log\n</code></pre>\n<p>This command will give you all the commits you made with the <code>Author</code> of the commit, <code>Time</code> when the commit was made, and also a unique ID called <code>Commit Hash</code> with the <code>Commit Message</code>.</p>\n<p>The logs will be ordered in descending order, meaning the most recent commit will be at the top and you can access the old ones by pressing <code>Arrow-down</code> key. Once you have gone through it, press <code>q</code> to exit the log command.</p>\n<p>If you just want to see the flow of recent commits with no extra information about author and time, you can use the following command to achieve it.</p>\n<pre><code class=\"language-bash\">git log --oneline\n</code></pre>\n<p>Also you may, have noticed something like <code>(HEAD -> master)</code> or <code>(HEAD -> main)</code>. Here <code>HEAD</code> means the current commit in which you are, in our case it is the <strong>most recent commit</strong> and <code>main</code> and <code>master</code> means the default branch name. Don't worry about branches right now, it is covered in the later parts of the blog :)</p>\n<h4>Honorable mention</h4>\n<p>You can try using this command after each process where it will tell you what is the current status of the files in your project</p>\n<pre><code class=\"language-bash\">git status\n</code></pre>\n<p>or to get everything in brief add the <code>-s</code> flag after it.</p>\n<p>You will get one or two letters in front of each file-name you can refer this table to know more about it.\n<img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xbhjq0lbhy4kbrt7o8lm.png\" alt=\"git status letter meanings\"></p>\n<h4>Pushing your code</h4>\n<p>All the things which we did till now is only limited to your PC that's why it is called <code>local repository</code>, no one else can see it.</p>\n<ul>\n<li>Now, you are working on a project and you want your friend to help you with that. How can you do it? It's simple you have to <code>push</code> your code to a <code>remote repository</code>, which is basically a folder which is hosted somewhere and it can be access by anyone (U can make it private and limited to few people as well).</li>\n<li>This is where <strong>GitHub</strong> comes into picture. GitHub is a like a storage space for all your git repositories, where people can view, review, comment and collaborate on your code.</li>\n</ul>\n<p><strong>Note:</strong> You can use any other platform instead of GitHub, like GitLab, BitBucket, etc. Here I am using GitHub in this blog</p>\n<p>Before we move on to pushing our code, we have to get working with a few things</p>\n<ul>\n<li>If you don't have a GitHub account, create one by going to <a href=\"https://github.com\">GitHub</a></li>\n<li>Once you have your account, create a new repository by clicking the <code>+</code> icon on the top-right part of the Navbar.</li>\n</ul>\n<p><img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1mtp64el3thwrtuheml5.png\" alt=\"Creating a new repository\"></p>\n<ul>\n<li>Give a <code>Name</code> to the repository and if you want you can give a <code>Description</code> as well. Then you can choose the visibility for the repository. <code>Public</code> means it everyone can see it and <code>Private</code> means it is only visible to you and if needed you can select people who can see the repo later in the settings.</li>\n</ul>\n<p>The page should look something like this -\n<img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u3qhazxg6uc8eztiwrp2.png\" alt=\"Creating a Repository\"></p>\n<ul>\n<li>Press the <code>Create repository</code> button</li>\n</ul>\n<p>You should be redirected to a <strong>Quick Setup</strong> page, where if you scroll down you can find this code snippet (Don't copy mine as it will be different in your account)</p>\n<p><img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sbatoxwxp3sor3q8uslp.png\" alt=\"Setting up remote repository for existing repository\"></p>\n<p><strong>Note:</strong> We are pushing an existing git repository because we have already created one in previous steps, no need to redo it.</p>\n<p>You can copy and paste those commands to your terminal and it should <code>push</code> your existing code to your remote repository.</p>\n<p>But, I won't let you just copy paste, let's see what each command is doing in here</p>\n<pre><code class=\"language-bash\">git remote add origin https://github.com/Deveesh-Shetty/Learn-Git.git\n</code></pre>\n<p><strong>In your case the URL will be different</strong>\nWhat this command does is, it is telling git to add a remote repository named <code>origin</code> and the path of the repository is mentioned in the url</p>\n<p>You can check your remote repository by running</p>\n<pre><code class=\"language-bash\">git remote -v\n</code></pre>\n<p>It should list the remote repository(s)</p>\n<p>Next command, this is used to make sure that the branch name in the git repository is same as that of GitHub by renaming the branch name, so there won't be any difficulties in later stage.</p>\n<pre><code class=\"language-bash\">git branch -M master\n</code></pre>\n<p><strong>Note:</strong> In your PC the command may have <code>main</code> instead of <code>master</code> it is totally fine, it is based on the branch name which is mentioned in GitHub. So don't change it.\nAlso to note, the above two steps is required only once only while creating a new repository.</p>\n<p>Finally, we are pushing the code by running</p>\n<pre><code class=\"language-bash\">git push -u origin master\n</code></pre>\n<p>If I break it down it will look like this</p>\n<pre><code class=\"language-bash\">git push -u &#x3C;remote-repo-name> &#x3C;branch-name>\n</code></pre>\n<p>We are telling git to push the code to the remote repository which we added ie <code>origin</code> and to the branch called <code>master</code> or in your case it maybe <code>main</code>.</p>\n<p>We are using the <code>-u</code> flag so that next time if we only type <code>git push</code> it will remember the previous instructions and push it to <code>origin master</code>.</p>\n<p>Now, if you go back to the GitHub <strong>Quick Setup</strong> page, and refresh it, Voila! You should see your code there. Now, you can share the GitHub repository link to your friend and show them the projects u made :)</p>\n<h3>Summarising everything we learned</h3>\n<p>This is the basic process of how you can add your code to GitHub, and let the world know about your projects. Let me summarise that for you real quick</p>\n<ul>\n<li>Whenever you do some changes to your code, <code>add</code> it to the staging area.</li>\n</ul>\n<pre><code class=\"language-bash\">git add .\n</code></pre>\n<ul>\n<li>Then when everything looks good, and you are ready to save your process as a checkpoint, <code>commit</code> the code.</li>\n</ul>\n<pre><code class=\"language-bash\">git commit -m \"what-this-commit-adds/improves\"\n</code></pre>\n<ul>\n<li>Then once you are confident enough to show to code to others <code>push</code> it to GitHub</li>\n</ul>\n<pre><code class=\"language-bash\">git push origin &#x3C;branch-name>\n</code></pre>\n<p><code>&#x3C;branch-name></code> can be <code>master</code> or <code>main</code></p>\n<p>So this is how simple Git is, in your next projects start using Git to record your progress and also utilise GitHub to showcase your work and also to work on other cool open source projects.</p>\n<h1>Branching in Git</h1>\n<p>Branching in Git is a very important and one of the core concepts in version control. It is a game-changer, trust me on that :)</p>\n<h2>What is Branching?</h2>\n<p>Let's begin with a simple analogy. Imagine yourself as a skilled artist who loves to paint landscapes of nature, Picture yourself sitting in a serene place working on your masterpiece, already half-way through its creation and you encounter a situation where you feel the need to try a new shade for the painting to experiment with colours. Would you risk making the changes directly on the canvas? Of course not! Instead, you would want to freely try out the new colours in a separate piece of paper. If you like the chosen shades, you’ll add it confidently to your actual painting.\nBut, if you weren’t satisfied, then you can simply discard the separate piece of paper and save time to protect the painting from a blunder.</p>\n<p>So, Branching in Git does the similar thing. If you are working on a project and wish to experiment with new code or implement a new feature, you can simply create a new branch and work on it. If you are satisfied, <code>merge</code> it to the original branch otherwise you can discard it leaving the original code base untouched.</p>\n<p>I'll show in detail how that works, so stick till the end 😉</p>\n<h3>What is a branch?</h3>\n<p>A branch is a timeline in which you work and commit code changes.</p>\n<ul>\n<li><code>master</code> or <code>main</code> branch is the main timeline in which you'll be working, the changes made to this branch will reflect in production. (Optional) You can rename this branch as well by using:</li>\n</ul>\n<pre><code class=\"language-bash\">git branch -M &#x3C;new-name>\n</code></pre>\n<ul>\n<li>Then you can create other branches where you will be implementing features, testing out code, and much more by using the following command:</li>\n</ul>\n<pre><code class=\"language-bash\">git branch &#x3C;branch-name>\n</code></pre>\n<p>Now switch to the new branch by using:</p>\n<pre><code class=\"language-bash\">git checkout &#x3C;branch-name>\n</code></pre>\n<p>Replace <code>&#x3C;branch-name></code> with a name which reflects the purpose of the branch for eg. <code>feat-dashboard</code> which means I am using this branch to create a new Dashboard Feature.</p>\n<p><strong>Pro-tip:</strong> You can create a new branch and switch to it in just one command:</p>\n<pre><code class=\"language-bash\">git checkout -b &#x3C;branch-name>\n</code></pre>\n<p>Here, <code>-b</code> flag creates a new branch with the specified name if the branch doesn't already exist.</p>\n<h3>Let's get started with Hands-on coding</h3>\n<p>Before continuing with branching commands, ensure that you have some content in the <code>main</code> or <code>master</code> branch, if it is empty, then add a file called <code>Readme.md</code> and add some text in that for instance:</p>\n<pre><code class=\"language-md\"># My name is Deveesh Shetty\n</code></pre>\n<p>Next, \"commit and add\" the file by using the following command:</p>\n<pre><code class=\"language-bash\">git add .\ngit commit -m \"Adds my Readme File\"\n</code></pre>\n<p>Create a new <code>feature</code> branch and switch into it by running the command:</p>\n<pre><code class=\"language-bash\">git checkout -b feature\n</code></pre>\n<p>Now, you are in the <code>feature</code> branch. Add a file in the new branch called <code>Feature.md</code> and open it and add some content in it:</p>\n<pre><code class=\"language-md\"># Hello from feature branch\n</code></pre>\n<p>You know next, \"add and commit\" the files by using the following commands:</p>\n<pre><code class=\"language-bash\">git add .\ngit commit -m \"Adds a Feature File\"\n</code></pre>\n<p>Check the commit history by running:</p>\n<pre><code class=\"language-bash\">git log --oneline\n</code></pre>\n<p>You shall see an output similar to:</p>\n<p><img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9w5xtlibjf2dbxssmx0g.png\" alt=\"Git Log in Feature Branch\"></p>\n<p>I want you to notice <code>(HEAD -> feature)</code> where <code>HEAD</code> is the current commit on which you are and <code>feature</code> is the branch we are currently working on.</p>\n<p>Now, try switching back to the <code>master</code> or <code>main</code> branch by using either one of these command based on your main branch name (eg.: if the branch name is <code>main</code> then run <code>git checkout main</code>)</p>\n<pre><code class=\"language-bash\">git checkout main\n# or\ngit checkout master\n</code></pre>\n<p><em>If you encounter an error while running this command, one possible issue might be that you haven't committed the code in the current branch. To resolve this make sure to commit your changes to the current branch and then try the above command again.</em></p>\n<p>Run the <code>git log --oneline</code> command again, and compare the output.</p>\n<p><img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d2ykc52bon3ongj5ia0g.png\" alt=\"Git log in Master or Main Branch\"></p>\n<p>What do you see? The file <code>Feature.md</code> is missing and the commit from the <code>feature</code> branch is also not there. This is the concept of branching, the changes you made in another branch are not reflected in the main branch. It prevents many problems such as breaking the production or having unnecessary codes or commits, etc.</p>\n<h3>How to get the changes in the main branch?</h3>\n<p>Well, now in a real-world scenario, you have built a feature in a branch and it works perfectly. Now, you want to include it in the main branch and deploy it to production. How do you do it? It's simple! You merge it 😄</p>\n<h4>What in the world is merging?</h4>\n<p>When you want changes from the feature branch to be reflected in the main branch, you do that by merging the feature branch with the main branch. During the merge, a new commit called a merge commit will be formed which will include the changes made in the feature branch and show them in the main or master branch.</p>\n<p>To achieve this, first, switch to the <code>main</code> or <code>master</code> branch:</p>\n<pre><code class=\"language-bash\">git checkout main\n# or\ngit checkout master\n</code></pre>\n<p>And then use the following command to merge the feature branch into main:</p>\n<pre><code class=\"language-bash\">git merge feature\n</code></pre>\n<p>Here <code>feature</code> is the name of the branch to be merged.</p>\n<p>You should see the <code>Feature.md</code> file in the folder now. Next, run the <code>git log --oneline</code> command again and view the commit history.</p>\n<p><img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7376fqzeo7e70m8prd1q.png\" alt=\"Git Log after merging\"></p>\n<p>You will see the commit made in the feature branch in the main branch. Also, you will notice <code>(HEAD -> master, feature)</code>, which means the current commit is same for both the <code>master</code> and <code>feature</code> branch. (It maybe <code>main</code> in your case, don't worry it's the same)</p>\n<p>Now you can switch back to the <code>feature</code> branch and start working on it. Once you are comfortable with the changes, merge them into the main branch. It's as simple as that.</p>\n<p>This is a visual explaining the branching concept\n<img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hyv57jw2pacigt13uft2.png\" alt=\"Branching concept in a diagram\"></p>\n<br>\n<h1>Introduction to GitHub Issues</h1>\n<p>You maybe new to GitHub or you are using it from quite a long time. But, have you came across the Issues tab in any GitHub repository? If no, then no worries I will be covering about the Issue tab and how it can make an impact on an open source project.</p>\n<p><img src=\"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fobw2gh1v9kaqln89dxg.png\" alt=\"Issue Tab\"></p>\n<p>You may have seen this tab in GitHub, this is the Issues tab. The number you see next to it are the total issues which are currently Open.</p>\n<h2>What are GitHub Issues?</h2>\n<p>Issue is one of the feature by GitHub, it provides a way for the users to track tasks, bug fixes, feature requests, etc.</p>\n<h2>Why would I use GitHub Issues?</h2>\n<p>There are endless way for why you will be using the GitHub Issues tab, let me break down a few for you!</p>\n<h3>Raising a bug report</h3>\n<p>You are using an open source project, and you were trying something but the result you got was not the one you expected, you will be like (it is some bug in the project) and neglect it... No!! You are a good open source contributor it's your responsibility to let the developer know about the bug, so the best way is if the project is open sourced in GitHub, go to the issue tab and tell about the bug, elaborate on what you wanted and what result you got, provide some visual prove like screenshots or video (if possible). This will help the developer to reproduce the bug and fix it in next release!</p>\n<h3>Giving idea for a new feature</h3>\n<p>For instance, you are using a software and you have a very good feature which will improve the software. Why keeping the idea to yourself? Raise a new issue in GitHub and describe your idea in human language (yes, you don't even need to code), and mention how it can improve the project. Now anyone interested can take up the issue and start building the feature, even you can build it if you are interested in it, which is very much appreciated!</p>\n<p><em>Note: Most of the softwares you use are open source, but you are not aware of it! I can list a few, VSCode, MonkeyType, Python, Android, Linux, Brave Browser and many more... ✨</em></p>\n<h2>How to create a new Issue?</h2>\n<p>If you found a bug, or you have a new feature Idea. Go to the GitHub repository of the project and click the Issues tab. In there click the <code>New Issue</code> button and describe the bug or feature and <code>Submit</code> voila! you have created a new Issue, also you have a green square in your GitHub heatmap 😉.</p>\n<p><strong>Some Notes:</strong></p>\n<ul>\n<li>Before creating an issue make sure there is no similar issue already opened, so it will save your's as well as the maintainer's time.</li>\n<li>Don't create random issues in repositories, always make sure you have correctly mentioned your plan or described the bug.</li>\n<li>Use markdown to describe your issue by using todo-lists, heading, code blocks and many more :)</li>\n</ul>\n<h3>How to find issues to work as a beginner?</h3>\n<p>If you are beginner you can find the issues in GitHub repository by filtering with labels like <code>good first issue</code> or <code>first-timers-only</code> or <code>documentation</code> which will help you do your first open source contribution. Most of the repos have these labels which makes it easier for beginners to contribute.</p>\n<h3>How to work on issues?</h3>\n<p>Once you found a good issue which you feel like you can work on, put a comment in there that you want to solve it or implement it. So the maintainer can assign you the issue which will make sure no 2 people are working on same issue, which is waste of time for both. Also in contrary, if the issue is already assigned to someone you can't work on it because \"Early bird gets the worm\". Don't worry try finding another issue there are many...</p>\n<p>Now you have the issue assigned, <code>fork</code> and <code>clone</code> the repository and create a new <code>branch</code> and start working (don't know what is branching? check it out <a href=\"https://dev.to/devshetty/learn-about-branching-in-git-bm3\">here</a>). Once you have a solution for the issue then proceed by creating a <a href=\"https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests\"><code>Pull Request</code></a> (PR), now it's maintainers turn to review and merge your PR. If they need any changes do the needful :)</p>\n<p>I will be covering about Pull Requests in my upcoming blogs stay tuned for that!\nThanks for sticking till the end... that's all for this blog, let me know your opinions and suggestions so I can improve my future blogs 😄</p>\n<p>Thank you for sticking till the end! Until then have a great day and happy learning!!!</p>\n<p><strong>Deveesh Shetty</strong></p>\n<p><a href=\"https://github.com/Deveesh-Shetty\">Github</a> | <a href=\"https://twitter.com/shettydeveesh\">Twitter</a> | <a href=\"https://dev.to/devshetty\">Dev.to</a></p>","frontmatter":{"cover":{"publicURL":"/static/8ee68208c1cf382c537dc56bd8708c4f/cover.jpg","childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","placeholder":{"fallback":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1920'%20height='1080'%20viewBox='0%200%201920%201080'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%20540v540h1921V0H0v540M60%2056l-8%207c-17%2020%207%2048%2030%2036%203-2%204-3%205-2%205%205%2015%206%2022%204%209-3%2016-13%2016-21%200-5%203-9%208-9%207%200%2010%208%204%2013-6%204-4%208%202%205%207-3%209-14%203-20-4-4-14-5-17-1-1%201-2%201-3-1-1-3-1-4%203-5%2015-7%2030%207%2025%2022-1%205-8%2011-13%2012l-4%203c0%205%209%203%2016-4%205-4%208-12%208-17%200-4-3-12-6-16-7-8-21-10-30-5l-4%202-4-2c-15-8-34%202-36%2019%200%207-2%209-8%209-7%200-9-10-2-13%205-4%203-8-3-6-9%205-9%2017-1%2023%209%206%2020-1%2020-12%200-9%208-17%2018-17%2024%200%2025%2034%202%2036-8%200-13-2-12-5s1-3%204-2c5%202%208%202%2012%201%2013-7%206-27-8-25-4%201-10%207-10%2010l-1%203v3c0%208-9%2015-18%2015-22%200-25-31-3-36%203-1%204-3%202-5-2-1-3-1-9%201m36%2017c-3%203-2%2011%203%2012%208%202%2013-7%207-12-2-3-8-2-10%200m-32%2045c-2%201-4%206-2%209%201%203%204%204%208%204%203%200%204%201%205%202%201%202%200%202-5%202-7%200-9%201-9%203%200%203%2013%203%2016%200%205-6%201-12-7-12-3%200-4%200-4-2l2-2c4%200%207-2%206-3%200-2-6-2-10-1m23%201c-6%204-7%2012-2%2017%207%208%2019%203%2019-7s-9-15-17-10m20%200c-5%206-1%2012%208%2012%204%200%204%200%204%202s-1%203-7%203c-7%200-8%200-7%202%201%203%2014%203%2016%200%205-6%201-12-8-12-2%200-3%200-3-2l1-2c6-1%209-2%208-4-2-2-9-1-12%201m26%200c-5%202-7%209-5%2014%202%206%2015%2010%2015%205l-2-2c-11%200-14-12-3-15%203%200%205-1%205-2%200-2-7-2-10%200m-42%203c-6%202-7%2011%200%2013%208%203%2013-9%205-12l-3-2-2%201m438%2078c-11%202-16%206-40%2029l-22%2023%2024%2026%2025%2024%205-2c9-4%2026-4%2035%201%2022%2010%2031%2034%2021%2058l-1%203%2024%2024%2024%2024%208-3c14-5%2030-2%2042%208%2026%2022%2017%2066-16%2074-35%209-65-24-52-57l3-6-25-24-24-25-6%202-5%203v66l1%2066%205%202%205%203%201%201c2%200%209%206%2013%2011%207%2011%209%2026%205%2038-12%2040-70%2040-82%200-7-21%203-42%2023-52l7-3v-67l-1-66c-4%200-14-7-19-12a43%2043%200%2001-9-45c3-7%206-3-24-33l-23-23-77%2077c-70%2070-77%2077-80%2083-6%2013-6%2027%200%2040a9733%209733%200%2000218%20220c14%2011%2036%2011%2052%201a5877%205877%200%2000218-221c4-9%206-18%204-27-3-16%203-9-114-126a1102%201102%200%2000-113-111c-11-5-20-6-30-4m828%2016a243%20243%200%2000-167%2094%20238%20238%200%2000102%20364c13%206%2014%206%2019%203%2011-8%2011-12%2010-52l-10%201c-41%205-62-5-78-38-9-18-11-21-22-29-9-5-10-9-5-13%202-2%203-2%209-2%2013%200%2023%206%2032%2019%207%2010%2020%2023%2028%2027%2012%206%2021%207%2038%202%209-2%209-2%2011-10%202-7%205-13%208-18%203-4%203-5-6-5-23-2-49-13-65-28a99%2099%200%2001-30-52c-4-14-4-51%200-63%204-13%2011-29%2017-36%202-2%202-2%200-13-3-22-1-45%204-53%203-3%203-3%209-3%2011%200%2031%208%2050%2020%2010%206%208%206%2023%202%2028-7%2063-7%2093%200%2010%203%2014%203%2015%202%2017-12%2044-24%2056-25%206%200%207%200%209%203%206%209%208%2031%205%2053l-2%2011%205%209c7%2010%2011%2020%2015%2034%203%2016%203%2045-1%2060-9%2032-25%2053-53%2067-14%206-35%2012-46%2012-4%200-6%201-4%202%202%202%208%2014%2010%2022%202%207%202%2011%202%2042%200%2042%200%2044%2011%2051%205%204%206%204%2019-2a238%20238%200%2000-111-458M615%20794c-3%204-3%2011%201%2015%207%205%2017%201%2017-8%200-8-12-12-18-7m306%2015l-1%2017-4-3c-10-9-29-6-37%206-6%2010-7%2033-1%2045%207%2013%2030%2016%2039%205%203-3%204-3%204%202v4h8l8-1v-92h-16v17m157-14c-6%207-2%2015%206%2016%209%201%2015-10%209-17-4-3-12-3-15%201m259%2044v46h16v-4c0-5%201-5%204-1%208%208%2024%208%2033%200%208-7%2010-12%2010-28%200-15-3-22-9-28-9-8-26-8-34%200-1%202-3%203-3%202l-1-17v-17h-16v47m-786-42c-21%205-31%2020-30%2047%201%2021%206%2031%2019%2038%207%204%2019%205%2026%203%205-2%2012-9%2012-11h1l1%206v5h16v-48h-38v7l1%207h20v6c-1%2010-7%2014-18%2014-17%200-23-9-22-32%200-10%201-12%203-17%207-13%2027-15%2037-3l4%204%206-4c7-4%207-5%204-10-6-10-26-15-42-12m462%200c-20%205-30%2021-30%2045%200%2027%2011%2042%2033%2044%2011%201%2018-3%2024-11%202-2%202-2%202%204v6h17v-47l-19-1h-19v14h20v6c-1%2010-6%2014-18%2014-14%200-21-8-22-26-1-23%206-33%2023-33%209%200%2015%202%2018%207%202%204%203%204%2010-1l6-3-2-4c-6-12-27-18-43-14m153%2044v44h17v-40h39v40h18l-1-44v-43l-8-1h-9v33h-39v-33h-17v44m-40-37l-8%202h-3v13h-10v13h10v19c0%2022%201%2027%208%2032%205%203%2016%204%2024%202%206-2%206-4%203-12l-2-4-4%201c-4%202-8%201-11-1-1-2-2-5-2-20v-17h19v-13h-18l-1-8v-8l-5%201m-468%201c-5%201-6%202-6%208s0%206-5%206h-5v13h10v19c1%2025%202%2029%2012%2033%206%203%2021%202%2025-2%201-1%201-2-1-6-2-7-2-8-4-6l-4%201c-10%201-11-1-11-22v-17h19v-13h-19v-15h-3l-8%201m85%2015c-6%201-14%207-15%209%200%202%205%2011%207%2011l5-3c10-8%2024-8%2024%201%200%203-3%206-10%207-22%204-29%2010-28%2023%201%2011%207%2017%2018%2018%209%200%2015-2%2018-7%203-4%203-4%205%200%203%205%207%207%2017%206%205%200%205-1%205-7-1-6-1-6-4-6-5%200-5-1-5-21s-1-24-7-29c-6-4-21-5-30-2m84%200l-7%205-4%204v-10h-16v66h17v-22c0-19%201-22%202-25%203-4%207-6%2013-6%2010%200%2011%203%2011%2031v22h16v-27c-1-31-1-33-10-38-5-2-16-3-22%200m-212%200l-1%2033%201%2032h16v-66h-8l-8%201m462%2032v33h16v-66h-16v33m182-7c0%2025%201%2027%203%2031%204%207%209%2010%2019%2010%208%200%2012-2%2016-7%205-5%205-5%205%201v5h16v-66h-17v20c0%2022-1%2025-5%2029-6%206-17%205-19-1l-1-26v-22h-17v26m-360-12c-9%204-11%2026-3%2035%203%203%203%204%209%204%2011%200%2015-6%2015-20%200-10-2-16-7-18-4-2-10-2-14-1m464%200c-6%202-9%209-9%2019%200%2014%204%2020%2015%2020%2010%200%2014-6%2014-21%200-9-2-15-7-17-4-2-10-2-13-1m-608%2022c-10%203-11%203-12%207-3%2010%2010%2016%2018%208%202-3%202-4%203-10l-1-7-8%202'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e"},"images":{"fallback":{"src":"/static/8ee68208c1cf382c537dc56bd8708c4f/a764f/cover.jpg","srcSet":"/static/8ee68208c1cf382c537dc56bd8708c4f/37bba/cover.jpg 750w,\n/static/8ee68208c1cf382c537dc56bd8708c4f/61c72/cover.jpg 1080w,\n/static/8ee68208c1cf382c537dc56bd8708c4f/d61e8/cover.jpg 1366w,\n/static/8ee68208c1cf382c537dc56bd8708c4f/a764f/cover.jpg 1920w","sizes":"100vw"},"sources":[{"srcSet":"/static/8ee68208c1cf382c537dc56bd8708c4f/a66aa/cover.webp 750w,\n/static/8ee68208c1cf382c537dc56bd8708c4f/65dd5/cover.webp 1080w,\n/static/8ee68208c1cf382c537dc56bd8708c4f/4fad6/cover.webp 1366w,\n/static/8ee68208c1cf382c537dc56bd8708c4f/c512e/cover.webp 1920w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.5625}}},"slug":"/blog/basic-git-and-github-for-beginners","tags":"Git and GitHub | Technical Blog","title":"Git and GitHub for Beginners - The Basics","description":"On 14-07-2023 SOSC Conducted a Git and GitHub workshop where Deveesh Shetty was the speaker. This blog covers the basic Git and GitHub topics that everyone needs to know, so they can start showcasing their projects in GitHub and contribute to other open source projects","author":"Deveesh-Shetty","name":"Deveesh Shetty","date":"16-Jul-2023","designation":null}}},"pageContext":{}},
    "staticQueryHashes": []}