<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by ADARSH ANAND on Medium]]></title>
        <description><![CDATA[Stories by ADARSH ANAND on Medium]]></description>
        <link>https://medium.com/@adarsh.anand.20031?source=rss-4158cb0e0e08------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*1eLxTaX1S29Cnw6M.jpg</url>
            <title>Stories by ADARSH ANAND on Medium</title>
            <link>https://medium.com/@adarsh.anand.20031?source=rss-4158cb0e0e08------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 24 May 2026 21:27:50 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@adarsh.anand.20031/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Internship experience at Intel]]></title>
            <link>https://medium.com/@adarsh.anand.20031/internship-experience-at-intel-f1e5ef0a1d57?source=rss-4158cb0e0e08------2</link>
            <guid isPermaLink="false">https://medium.com/p/f1e5ef0a1d57</guid>
            <category><![CDATA[internships]]></category>
            <category><![CDATA[intel]]></category>
            <dc:creator><![CDATA[ADARSH ANAND]]></dc:creator>
            <pubDate>Tue, 27 Jun 2023 17:15:42 GMT</pubDate>
            <atom:updated>2023-06-27T17:15:42.309Z</atom:updated>
            <content:encoded><![CDATA[<p>Internship experience at Intel</p><h3>Interviewing for a job can be like walking on a tightrope while juggling flaming pineapples. Recently, I had the opportunity to interview for an internship position at Intel as a software engineer. And let me tell you, it was a rollercoaster ride!</h3><p>The first round was the resume shortlisting round. I was nervous as a cat in a room full of rocking chairs. The interviewer went through my resume with a magnifying glass and asked me questions as if I was on trial for stealing cookies from the cookie jar. They were particularly interested in my experience with backend development and my project using the Razorpay payment gateway system. I felt like a celebrity being interviewed by the paparazzi.</p><p>The interviewer asked me some technical questions related to my project, and I felt like I was in a game of Jeopardy. I handled payment failures like a boss, and the security of the payment gateway was tighter than a jar of pickles. We also discussed my experience with other payment gateway systems, and I felt like a payment gateway encyclopedia.</p><p>Then came the network transport layer questions, and I felt like I was on a game show called “Are You Smarter Than a Computer Engineer?” I explained concepts like TCP and UDP, DNS, and the difference between HTTP and HTTPS, feeling like a walking encyclopedia of networking knowledge.</p><p>The second round was the interview round, and I felt like I was in a boxing ring with Mike Tyson. The interviewer asked me to explain the reverse linked list algorithm, and I felt like I was explaining rocket science to a baby. I also had to solve the group anagrams problem and felt like a detective trying to solve a complicated case.</p><p>The interviewer also asked me about the technologies and tools I had used in my previous projects, and I felt like I was at a tech convention, showing off my latest gadgets.</p><p>Overall, my interview experience at Intel was like a wild ride at a theme park. It was challenging, nerve-wracking, and exciting all at the same time. But thanks to my preparation and experience, I felt like I was able to handle anything that was thrown at me, like a ninja warrior in a job interview.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f1e5ef0a1d57" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Firebase]]></title>
            <link>https://medium.com/@adarsh.anand.20031/firebase-25030c3221e?source=rss-4158cb0e0e08------2</link>
            <guid isPermaLink="false">https://medium.com/p/25030c3221e</guid>
            <dc:creator><![CDATA[ADARSH ANAND]]></dc:creator>
            <pubDate>Sat, 06 May 2023 13:00:33 GMT</pubDate>
            <atom:updated>2023-05-06T13:00:33.402Z</atom:updated>
            <content:encoded><![CDATA[<p>Content Brief: Firebase</p><p>Top Level Keywords: Firebase, mobile app development, backend-as-a-service, real-time database, cloud functions, authentication, analytics.</p><p>Longtail Keywords: Firebase vs AWS, Firebase authentication, Firebase real-time database, Firebase cloud messaging, Firebase hosting, Firebase machine learning, Firebase push notifications.</p><p>Header Outline:</p><p>I. Introduction to Firebase</p><p>II. Features and Benefits of Firebase</p><p>III. Firebase Authentication</p><p>IV. Firebase Real-time Database</p><p>V. Firebase Cloud Functions</p><p>VI. Firebase Hosting</p><p>VII. Firebase Analytics</p><p>VIII. Firebase Machine Learning</p><p>IX. Firebase Cloud Messaging</p><p>X. Firebase Push Notifications</p><p>XI. Firebase vs AWS</p><p>XII. Conclusion</p><p>Notes:</p><p>- Explain what Firebase is and how it works.</p><p>- Highlight the main features and benefits of using Firebase.</p><p>- Provide detailed instructions on how to use Firebase Authentication, Real-time Database, Cloud Functions, Hosting, Analytics, Machine Learning, Cloud Messaging, and Push Notifications.</p><p>- Compare Firebase to AWS and explain the advantages and disadvantages of each.</p><p>- Provide a conclusion that summarizes the main points of the article.</p><p>Title Tag: Firebase: A Comprehensive Guide to Mobile App Development | Firebase vs AWS</p><p>Meta Description: Learn about Firebase, a backend-as-a-service platform that offers real-time database, cloud functions, authentication, analytics, machine learning, messaging, and hosting for mobile app development. Compare Firebase to AWS and discover which one is right for your needs.</p><p>I. Introduction to Firebase</p><p>Firebase is a backend-as-a-service platform that allows developers to build, manage, and deploy mobile and web applications quickly and easily. Firebase provides a comprehensive set of tools that help developers focus on building great user experiences, without worrying about server infrastructure or database management. Firebase is owned by Google and integrates seamlessly with other Google services such as Google Cloud Platform.</p><p>II. Features and Benefits of Firebase</p><p>Firebase offers a wide range of features and benefits that make it an ideal platform for mobile and web app development. Some of the key features and benefits of Firebase include:</p><p>- Real-time database: Firebase offers a NoSQL, cloud-hosted database that allows developers to store and sync data in real-time across multiple clients.</p><p>- Cloud functions: Firebase offers a serverless computing platform that allows developers to run custom backend code in response to events triggered by Firebase services and mobile apps.</p><p>- Authentication: Firebase offers a secure authentication system that allows users to sign in with email and password, as well as with social media accounts such as Google, Facebook, and Twitter.</p><p>- Hosting: Firebase offers a fast and reliable web hosting service that allows developers to deploy their web apps quickly and easily.</p><p>- Analytics: Firebase offers a powerful analytics platform that allows developers to track user behavior, measure app performance, and gain insights into user engagement.</p><p>- Machine learning: Firebase offers a suite of machine learning tools that allow developers to build intelligent apps with features such as image labeling, text recognition, and language translation.</p><p>- Cloud messaging: Firebase offers a messaging service that allows developers to send notifications and messages to users across multiple platforms, including Android, iOS, and web.</p><p>- Push notifications: Firebase offers a push notification service that allows developers to send targeted notifications to users based on their interests and behavior.</p><p>III. Firebase Authentication</p><p>Firebase Authentication is a secure and easy-to-use authentication system that allows users to sign in to mobile and web apps with email and password, as well as with social media accounts such as Google, Facebook, and Twitter. To use Firebase Authentication, follow these steps:</p><p>1. Create a Firebase project and enable Firebase Authentication.</p><p>2. Choose the authentication methods you want to offer to your users.</p><p>3. Implement the Firebase Authentication SDK in your mobile or web app.</p><p>4. Use the Firebase Authentication API to manage user accounts and authentication.</p><p>IV. Firebase Real-time Database</p><p>Firebase Real-time Database is a NoSQL, cloud-hosted database that allows developers to store and sync data in real-time across multiple clients. To use Firebase Real-time Database, follow these steps:</p><p>1. Create a Firebase project and enable Firebase Real-time Database.</p><p>2. Define the structure of your database by creating a JSON tree.</p><p>3. Use the Firebase Real-time Database SDK in your mobile or web app to read and write data to the database.</p><p>4. Set up security rules to control access to your data.</p><p>V. Firebase Cloud Functions</p><p>Firebase Cloud Functions is a serverless computing platform that allows developers to run custom backend code in response to events triggered by Firebase services and mobile apps. To use Firebase Cloud Functions, follow these steps:</p><p>1. Create a Firebase project and enable Firebase Cloud Functions.</p><p>2. Define your functions using JavaScript or TypeScript.</p><p>3. Use the Firebase CLI to deploy your functions to the cloud.</p><p>4. Set up triggers for your functions using Firebase services or mobile app events.</p><p>VI. Firebase Hosting</p><p>Firebase Hosting is a fast and reliable web hosting service that allows developers to deploy their web apps quickly and easily. To use Firebase Hosting, follow these steps:</p><p>1. Create a Firebase project and enable Firebase Hosting.</p><p>2. Use the Firebase CLI to deploy your web app to the cloud.</p><p>3. Customize your hosting settings, such as custom domain names and SSL certificates.</p><p>4. Monitor your hosting performance using Firebase Analytics.</p><p>VII. Firebase Analytics</p><p>Firebase Analytics is a powerful analytics platform that allows developers to track user behavior, measure app performance, and gain insights into user engagement. To use Firebase Analytics, follow these steps:</p><p>1. Enable Firebase Analytics in your Firebase project.</p><p>2. Use the Firebase Analytics SDK to track user events and user properties in your mobile or web app.</p><p>3. Use the Firebase console to view and analyze your app data.</p><p>4. Use Firebase Predictions to predict user behavior and take action to improve engagement.</p><p>VIII. Firebase Machine Learning</p><p>Firebase Machine Learning is a suite of machine learning tools that allow developers to build intelligent apps with features such as image labeling, text recognition, and language translation. To use Firebase Machine Learning, follow these steps:</p><p>1. Enable Firebase Machine Learning in your Firebase project.</p><p>2. Use the Firebase ML Kit SDK to integrate machine learning features into your mobile app.</p><p>3. Use Firebase AutoML to create custom machine learning models for your app.</p><p>4. Use Firebase Predictions to predict user behavior and take action to improve engagement.</p><p>IX. Firebase Cloud Messaging</p><p>Firebase Cloud Messaging is a messaging service that allows developers to send notifications and messages to users across multiple platforms, including Android, iOS, and web. To use Firebase Cloud Messaging, follow these steps:</p><p>1. Enable Firebase Cloud Messaging in your Firebase project.</p><p>2. Use the Firebase Cloud Messaging SDK to send messages from your server to your mobile or web app.</p><p>3. Customize your messages with rich media, actions, and targeting.</p><p>4. Monitor your message delivery and engagement using Firebase Analytics.</p><p>X. Firebase Push Notifications</p><p>Firebase Push Notifications is a push notification service that allows developers to send targeted notifications to users based on their interests and behavior. To use Firebase Push Notifications, follow these steps:</p><p>1. Enable Firebase Cloud Messaging and Firebase Analytics in your Firebase project.</p><p>2. Use the Firebase Cloud Messaging SDK to send push notifications to your mobile app.</p><p>3. Use Firebase Predictions to predict user behavior and target your notifications to specific user segments.</p><p>4. Monitor your notification delivery and engagement using Firebase Analytics.</p><p>XI. Firebase vs AWS</p><p>- Firebase has a more user-friendly interface and a simpler setup process, making it a better choice for small or mid-sized projects.</p><p>- Firebase has better integration with Google products and services, such as Google Cloud Platform and Google Analytics.</p><p>- Firebase offers more built-in features and services, such as real-time database, hosting, and machine learning, which can save developers time and effort.</p><p>- Firebase has a more flexible pricing model, with a generous free tier and a pay-as-you-go model based on usage, making it more cost-effective for small or mid-sized projects.</p><p>On the other hand, AWS has some advantages over Firebase, such as:</p><p>- AWS has a wider range of services and features, including more advanced machine learning and AI capabilities.</p><p>- AWS has better scalability and performance, with more advanced serverless computing options and global infrastructure.</p><p>- AWS has better security and compliance features, with more advanced encryption and identity management options.</p><p>Ultimately, the choice between Firebase and AWS depends on the specific needs and requirements of your project. If you’re looking for a simple and cost-effective solution with basic features, Firebase may be the best choice. If you’re looking for a more advanced and scalable solution with advanced features and security options, AWS may be the better choice.</p><p>Title tags and meta descriptions:</p><p>Title tag: A Comprehensive Guide to Firebase: Features, Benefits, and How to Use It</p><p>Meta description: Learn how to use Firebase for mobile and web app development with this comprehensive guide. Discover the features and benefits of Firebase, and get step-by-step instructions on how to use it for real-time database, cloud functions, hosting, analytics, machine learning, and push notifications.</p><p>Title tag: Firebase vs AWS: Which One Should You Choose for Your Mobile or Web App?</p><p>Meta description: Compare Firebase and AWS for mobile and web app development, and discover the advantages and disadvantages of each platform. Find out which one is the best choice for your project based on features, pricing, scalability, security, and more.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=25030c3221e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Git for beginners]]></title>
            <link>https://medium.com/@adarsh.anand.20031/git-for-beginners-7a946bfaa4ba?source=rss-4158cb0e0e08------2</link>
            <guid isPermaLink="false">https://medium.com/p/7a946bfaa4ba</guid>
            <category><![CDATA[git]]></category>
            <dc:creator><![CDATA[ADARSH ANAND]]></dc:creator>
            <pubDate>Thu, 28 Jul 2022 18:26:30 GMT</pubDate>
            <atom:updated>2022-07-28T18:26:30.117Z</atom:updated>
            <content:encoded><![CDATA[<h3>Getting Started with Git</h3><p>Git is a free, open-source and widely used “Distributed Version Control System”. Version Control System (VCS)is also called as Source Code Manager.</p><h3>What is Version Control System ?</h3><p>In software development we write codes in files. So, Once it done to some extent, we can save it. Again when we want to improvise it or add few lines to it, we can make a copy of it. That is the “New Version” and then we can make changes and save it and so on. So, in this way we will have various advantages because we can quickly revert back to any of the older versions or pick up changes from older versions and also we can check how the files modified over the time. In this way there are various advantages of maintaining Versions. In this way all the changes made to the file kept tracked.</p><p>So, now we have seen a scenario where there is a single file. When it comes to Projects there will be multiple files. Over the time we will be adding new files, we will be making changes to the existing files and may be we will be deleting the files. So over the time we will be making so may changes to the project. So, all these changes have to be kept tracked as we understood there are various advantages of it. So we need to keep track of all the changes that are happening. So all these changes should be maintained as the versions of the Project. So in this way we will keep track of the changes made to the Project. When working on a huge project with many files which is being developed by multiple people. It’s hard to manually keep track of the changes. Any small change may crash the project.</p><p>When working with the multiple people.It is useful to know who made the changes to the file , when were the changes made and who approved those changes and also all these have to be maintained. For this we have the “Version Control System”. In this, each change made to the project can be considered a new version of the Project.</p><p>Version Control System simplifies tracking to the Project and allows us to switch back to any previous version.</p><h3>What is Distributed Version Control System ?</h3><p>It is a form of Version Control System in which every developer whoever working on a repository ( A Repository or Repo is like a database which maintains different versions of the project ) can maintain copy of the Entire repository with the entire version history or log .</p><h3>What is Git ?</h3><p>There are several tools that help us manage versions of the source code of the software. One such tool is Git. Git is the most popular Version Control System. It is created by Linus Torvalds in 2005. As it is open-source the entire source code is available for everyone. So other people can contribute to it and make it even more better.</p><h3>Git and GitHub are not the same…</h3><blockquote><strong><em>Git</em></strong><em> is the most commonly used </em><strong><em>version control system (VCS)</em></strong><em>. Git tracks the changes you made to the files, so you have a record of what changes you made, and you can revert to specific versions whenever you need it.</em></blockquote><blockquote><a href="https://github.com/"><strong><em>GitHub</em></strong></a><em> is a website that manages projects that use git. You do not need GitHub to use git, but you cannot use GitHub without using git. There are many other alternatives to GitHub, such as GitLab, BitBucket etc.</em></blockquote><p>Git is software that works locally, your files and the revision history are stored on your computer. You can also use Github online hosts to store a copy of the files and their revision history.</p><p>Git also makes collaboration easier with multiple people, where you can upload your changes and download changes from others from a centrally located place.</p><h3>Git Workflow:</h3><p>Before we start working with Git commands, it is necessary that you understand what it represents.</p><h3>What is a Repository?</h3><p>A <strong>repository</strong> a.k.a. <strong>repo</strong> is nothing but a collection of source code.</p><h3>There are four fundamental elements in the Git Workflow.</h3><p><strong>Working Directory</strong>, <strong>Staging Area</strong>, <strong>Local Repository,</strong> and <strong>Remote Repository</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*mGT_oIABgoKzVb1b.png" /></figure><p>Diagram of a simple Git Workflow</p><p><strong>If you consider a file in your Working Directory, it can be in three possible states.</strong></p><ol><li><strong>It can be staged.</strong> This means the files with the updated changes are marked to be committed to the local repository but not yet committed.</li><li><strong>It can be modified</strong>. This means the files with the updated changes are not yet stored in the local repository.</li><li><strong>It can be committed</strong>. This means that the changes you made to your file are safely stored in the local repository.</li></ol><ul><li>git add is a command used to add a file that is in the working directory to the staging area.</li><li>git commit is a command used to add all files that are staged to the local repository.</li><li>git push is a command used to add all committed files in the local repository to the remote repository. So in the remote repository, all files and changes will be visible to anyone with access to the remote repository.</li><li>git fetch is a command used to get files from the remote repository to the local repository but not into the working directory.</li><li>git merge is a command used to get the files from the local repository into the working directory.</li><li>git pull is a command used to get files from the remote repository directly into the working directory. It is equivalent to a git fetch and a git merge .</li></ul><p><strong>Now that we know what Git is and its basic terminologies, let’s see how we can place a file under git</strong>. We’re going to do it the right way and the difficult way. Without any GUI applications.</p><p>I’m assuming you already have a file you want to place under version control. If not create a sample folder named ‘MuskCult’ and place some sample code files in it.</p><h3>Step 0: Make a GitHub Account. Duh.</h3><p>If you don’t already have one, you can make one <a href="https://github.com/join">here</a>.</p><h3>Step 1: Make sure you have Git installed on your machine.</h3><p>If you are on a <strong>Mac</strong>, fire up the terminal and enter the following command:</p><pre>$ <strong>git --version</strong></pre><p>This will prompt open an installer if you don’t already have git. So set it up using the installer. If you have git already, it’ll just show you which version of git you have installed.</p><p>If you are running <strong>Linux</strong>(deb), enter the following in the terminal:</p><pre>$ <strong>sudo apt install git-all</strong></pre><p>If you are on <strong>Windows</strong>:</p><pre>$ <strong>get a mac</strong></pre><p>Just kidding… Relax… The number of people I triggered… Phew…<br>Go to this <a href="https://www.apple.com/macos/what-is/"><strong>link</strong></a> or this<strong> </strong><a href="https://gitforwindows.org/"><strong>link</strong></a> for more info on how to get it.</p><h3>Step 2: Tell Git who you are.</h3><p>Introduce yourself. Slide in. Seriously, mention your Git username and email address, since every Git commit will use this information to identify you as the author.</p><pre>$ <strong>git config --global user.name &quot;YOUR_USERNAME&quot; </strong>$ <strong>git config --global user.email &quot;im_satoshi@musk.com&quot;</strong>$ <strong>git config --global --list</strong> # To check the info you just provided</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*nyOfjvZI-UwQIrZ_.gif" /></figure><h3>Step 3: Generate/check your machine for existing SSH keys. (Optional)</h3><p>Why you ask? Using the <strong>SSH protocol</strong>, you can<strong> connect and authenticate</strong> to r<strong>emote servers and services</strong>. With SSH keys, you can connect to GitHub without supplying your username or password at each visit.</p><p>Follow this<strong> </strong><a href="https://help.github.com/articles/about-ssh/"><strong>link</strong></a><strong> </strong>to learn more about SSH.<br>Go <a href="https://help.github.com/articles/checking-for-existing-ssh-keys/"><strong>here</strong></a><strong> </strong>to check if you have an existing SSH key.<br>Go <a href="https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/"><strong>here</strong></a> to generate a SSH Key.<br>Go <a href="https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/"><strong>here</strong></a><strong> </strong>to add the SSH key to your GitHub account.<br>And finally, go <a href="https://help.github.com/articles/testing-your-ssh-connection/"><strong>here</strong></a> to test its connection.</p><p>If you did setup SSH, every git command that has a link you replace it by:</p><pre><strong>Instead of : </strong><a href="https://github.com/username/reponameYou"><strong>https://github.com/username/reponameYou</strong></a><strong> use    : git@github.com/username/reponame.git</strong>      <strong>     Note : You can use both ways alternatively</strong></pre><p><strong>I’ll be using SSH protocol in this tutorial.</strong></p><h3>Step 4: Let’s Git</h3><p>Create a new repository on GitHub. Follow this <a href="https://github.com/new">link</a>.<br>Now, locate the folder you want to place under git in your terminal.</p><pre>$<strong> cd Desktop/MuskCult</strong></pre><h3>Initialize Git:</h3><p>And to place it under git, enter:</p><pre>$<strong> touch README.md</strong>    # To create a README file for the repository<br>$ <strong>git init </strong>          # Initiates an empty git repository</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*9VFhLUQpRYZYQi1c.gif" /></figure><p>Now go edit the README.md file to provide information about the repository.</p><h3>Add files to the Staging Area for commit:</h3><p>Now to add the files to the git repository for commit:</p><pre>$ <strong>git add .</strong>  <br># Adds all the files in the local repository and stages them for commit<strong>OR</strong> if you want to add a specific file$ <strong>git add README.md</strong> <br># To add a specific file</pre><h3>Before we commit let’s see what files are staged:</h3><pre>$ <strong>git status </strong># Lists all new or modified files to be committed</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*zFa-ipA4f6XJN-7h.gif" /></figure><h3>Commit Changes you made to your Git Repo:</h3><p>Now to commit files you added to your git repo:</p><pre>$ <strong>git commit -m &quot;First commit&quot;<br></strong># The message in the &quot; &quot; is given so that the other users can read the message and see what changes you made</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*RDlcmH3NSRREYAEx.gif" /></figure><h3>Uncommit Changes you just made to your Git Repo:</h3><p>Now suppose you just made some error in your code or placed an unwanted file inside the repository, you can unstage the files you just added using:</p><pre>$<strong> git reset HEAD~1<br></strong># Remove the most recent commit<br># Commit again!</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*QFl_pZH4eRYCyzRL.gif" /></figure><h3>Add a remote origin and Push:</h3><p>Now each time you make changes in your files and save it, it won’t be automatically updated on GitHub. All the changes we made in the file are updated in the local repository. Now to update the changes to the master:</p><pre>$ <strong>git remote add origin <em>remote_repository_URL<br></em></strong><em># </em>sets the new remote</pre><p>The <strong>git remote</strong> command lets you create, view, and delete connections to other repositories.</p><pre><em>$ </em><strong>git remote -v<br></strong># List the remote connections you have to other repositories.</pre><p>The <strong>git remote -v</strong> command lists the URLs of the remote connections you have to other repositories.</p><pre>$ <strong>git push -u origin master </strong># pushes changes to origin</pre><p>Now the <strong>git push </strong>command pushes the changes in your local repository up to the remote repository you specified as the origin.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*5qMsSLaw-uC02ii1.gif" /></figure><p>And now if we go and check our repository page on GitHub it should look something like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*rCbaW5pxpwKldARG.png" /></figure><p>And that’s it. You’ve just added the files to the repository you just created on GitHub.</p><h3>See the Changes you made to your file:</h3><p>Once you start making changes on your files and you save them, the file won’t match the last version that was committed to git. To see the changes you just made:</p><pre>$ <strong>git diff </strong># To show the files changes not yet staged</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*sUjWc8WqsjRN6-0q.gif" /></figure><h3>Revert back to the last committed version to the Git Repo:</h3><p>Now you can choose to revert back to the last committed version by entering:</p><pre>$ <strong>git checkout .OR</strong> for a specific file$ <strong>git checkout -- &lt;filename&gt;</strong></pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*hJRbOEc0-b72C3-t.gif" /></figure><h3>View Commit History:</h3><p>You can use the <strong>git log</strong> command to see the history of commits you made to your files:</p><pre>$ <strong>git log</strong></pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*6QpEwJNPjOFDcNYG.gif" /></figure><p>Each time you make changes that you want to be reflected on GitHub, the following are the most common flow of commands:</p><pre>$ <strong>git add .</strong><br>$<strong> git status </strong># Lists all new or modified files to be committed<strong><br></strong>$ <strong>git commit -m &quot;Second commit&quot;<em><br></em></strong>$ <strong>git push -u origin master</strong></pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*RNYQ23yOe-NBEGxn.gif" /></figure><p>Now if we go and see our repo, we can identify whether the commit was successful by looking at the commit message for each file.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*6EgeeWWuB3So20xY.png" /></figure><h3>Step 5: That’s all well and good… But How do I download and work on other repositories on GitHub?</h3><h3>Cloning a Git Repo:</h3><p>Locate to the directory you want to clone the repo. Copy the link of the repository you want and enter the following:</p><pre>$<strong> git clone <em>remote_repository_URL</em></strong></pre><p>Feel free to go ahead and clone the repo I created above using: <a href="https://github.com/Gothamv/MuskCult">https://github.com/Gothamv/MuskCult</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*ak7R5sW7haDmx3wW.gif" /></figure><h3>Pushing Changes to the Git Repo:</h3><p>Now you can work on the files you want and commit to changes locally. If you want to push changes to that repository you either have to be <a href="https://help.github.com/articles/inviting-collaborators-to-a-personal-repository/">added as a collaborator</a> for the repository or you have created something known as a pull request. Go and check out how to do one <a href="https://help.github.com/articles/creating-a-pull-request/">here</a> and give me a pull request with your code file.</p><h3>Collaborating:</h3><p>So imagine you and your friend are collaborating on a project. You both are working on the same project files. Each time you make some changes and push it into the master repo, your friend has to pull the changes that you pushed into the git repo. Meaning to make sure you’re working on the latest version of the git repo each time you start working, a git pull command is the way to go.</p><p>Now below is an example of a project my friend and I are collaborating on:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*fAg_2Gygmnl5YviA.png" /></figure><p>There has just been a commit on the repo</p><p>So to make sure those changes are reflected on my local copy of the repo:</p><pre>$ <strong>git pull origin master</strong></pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/798/0*fFb2PqDXayBfJdI3.gif" /></figure><h3>Here are two more useful git commands:</h3><pre>$ <strong>git fetch<br>    </strong>AND<br>$ <strong>git merge</strong></pre><p>In the simplest terms, git fetch followed by a git merge equals a git pull. But then why do these exist?</p><p>When you use git pull, Git tries to automatically do your work for you. <strong>It is context-sensitive</strong>, so Git will merge any pulled commits into the branch you are currently working in. git pull <strong>automatically merges the commits without letting you review them first</strong>.</p><p>When you git fetch, Git gathers any commits from the target branch that do not exist in your current branch and <strong>stores them in your local repository</strong>. However, <strong>it does not merge them with your current branch</strong>. This is particularly useful if you need to keep your repository up to date, but are working on something that might break if you update your files. To integrate the commits into your master branch, you use git merge.</p><h3>One More Thing:</h3><pre>.gitignore</pre><p>So what is it?</p><p>.gitignore tells git which files (or patterns) it should ignore. It&#39;s usually used to avoid committing transient files from your working directory that aren&#39;t useful to other collaborators, such as compilation products, temporary files IDEs create, etc.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*sRVAQ09oJNQ5ebWE.png" /></figure><p>So in the above example, files like __pycache__, .DS_Store are used by the system to store information for faster access. This is not useful for other collaborators. So we can tell git to ignore them by adding a .gitignore file.</p><p>Use the touch command to create the .gitignore file:</p><pre>$ touch .gitignore</pre><p>And you can add the following patterns to tell git to ignore such files.</p><pre>/*.cmake<br>/*.DS_Store<br>/.user<br>/build<br>etc. depending upon the files you want git to untrack</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7a946bfaa4ba" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>