<?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>DEV Community: Ishan Jarwal</title>
    <description>The latest articles on DEV Community by Ishan Jarwal (@ishucodes).</description>
    <link>https://dev.to/ishucodes</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%2F3954467%2F1bf380c8-8cbb-4c0d-9c2d-007299065122.jpg</url>
      <title>DEV Community: Ishan Jarwal</title>
      <link>https://dev.to/ishucodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ishucodes"/>
    <language>en</language>
    <item>
      <title>Git Rebase vs Reset vs Revert | When to use What ?</title>
      <dc:creator>Ishan Jarwal</dc:creator>
      <pubDate>Fri, 29 May 2026 12:54:04 +0000</pubDate>
      <link>https://dev.to/ishucodes/git-rebase-vs-reset-vs-revert-when-to-use-what--28kp</link>
      <guid>https://dev.to/ishucodes/git-rebase-vs-reset-vs-revert-when-to-use-what--28kp</guid>
      <description>&lt;h3&gt;
  
  
  The Scenario: "Oops, I Made a Messy Commit History"
&lt;/h3&gt;

&lt;p&gt;Imagine you're working on a feature branch called &lt;code&gt;feature/login-page&lt;/code&gt;. You’ve made a few commits, but now :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;One of the commits has a &lt;strong&gt;bug&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Another commit has a &lt;strong&gt;wrong commit message&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Your commit history looks like a &lt;strong&gt;jumbled mess&lt;/strong&gt; compared to &lt;code&gt;main&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Time to clean it up! But… should you &lt;strong&gt;rebase&lt;/strong&gt;, &lt;strong&gt;reset&lt;/strong&gt;, or &lt;strong&gt;revert&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  First, Let’s Understand the Core Idea of Each:
&lt;/h3&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;What it Does&lt;/th&gt;
&lt;th&gt;Safe for Shared Branches?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rebase&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rewrites commit history to make it linear and clean&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;No&lt;/strong&gt;, unless used carefully&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Moves the HEAD and branch pointer to a different commit&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;No&lt;/strong&gt;, dangerous on shared branches&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;revert&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Creates a new commit that undoes a previous commit&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Yes&lt;/strong&gt;, safe to fix public history&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Git Rebase&lt;/strong&gt; : "Let’s Rewrite History Neatly"
&lt;/h3&gt;

&lt;h4&gt;
  
  
  What is it?
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;git rebase&lt;/code&gt; allows you to move or "replay" your commits onto another branch or rearrange them to make a clean, linear history.&lt;/p&gt;

&lt;h4&gt;
  
  
  When to Use?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You want to &lt;strong&gt;clean up messy commit history&lt;/strong&gt; before merging.&lt;/li&gt;
&lt;li&gt;You want to &lt;strong&gt;squash commits&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You want to &lt;strong&gt;change commit messages&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Example:
&lt;/h4&gt;

&lt;p&gt;You have these commits in &lt;code&gt;feature/login-page&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A — B — C — D  (feature/login-page)         
        ↑       
      Buggy commit (C) 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You want to fix commit &lt;code&gt;C&lt;/code&gt; and clean up the message in &lt;code&gt;D&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Solution: Interactive Rebase
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git rebase -i HEAD~3 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll see something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pick abc123 B pick def456 C pick ghi789 D 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Change "pick" to "edit"&lt;/strong&gt; for C to fix the bug.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Change "pick" to "reword"&lt;/strong&gt; for D to fix the commit message.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Squash commits&lt;/strong&gt; if needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Important:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;This rewrites commit hashes.&lt;/li&gt;
&lt;li&gt;If your branch is &lt;strong&gt;pushed and shared&lt;/strong&gt;, rebasing can mess up others' history. Use with care!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Git Reset&lt;/strong&gt; : "Let’s Go Back in Time (Dangerously Powerful)"
&lt;/h3&gt;

&lt;h3&gt;
  
  
  What is it?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;git reset&lt;/code&gt; moves your branch pointer (&lt;code&gt;HEAD&lt;/code&gt;) to a previous commit. It can &lt;strong&gt;unstage files&lt;/strong&gt;, &lt;strong&gt;remove commits&lt;/strong&gt;, or even &lt;strong&gt;delete code changes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  Types of Reset:
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;What happens?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git reset --soft&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Keeps your changes staged.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git reset --mixed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unstages changes but keeps them in the working directory.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git reset --hard&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Deletes&lt;/strong&gt; your changes completely. Dangerous!&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  When to Use?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You made &lt;strong&gt;local commits&lt;/strong&gt; you don’t want anymore.&lt;/li&gt;
&lt;li&gt;You want to &lt;strong&gt;uncommit but keep the changes&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  Example:
&lt;/h4&gt;

&lt;p&gt;You made two useless commits on top of &lt;code&gt;main&lt;/code&gt; and want to remove them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A — B — C — D  (main)              
            ↑            
            Your branch (HEAD) 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To undo D and C:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git reset --soft HEAD~2 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Your changes are still there but &lt;strong&gt;unstaged (due to --soft flag)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;If you want to kill the changes, do
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git reset --hard HEAD~2 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that your git timeline will look like this :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A — B  (main)
    ↑            
    Your branch (HEAD) 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  Important:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Never reset a branch that is already pushed and shared with others&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Resetting can &lt;strong&gt;permanently lose work&lt;/strong&gt; (especially &lt;code&gt;--hard&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Git Revert&lt;/strong&gt; : "The Safe Undo Button"
&lt;/h3&gt;

&lt;h4&gt;
  
  
  What is it?
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;git revert&lt;/code&gt; creates a &lt;strong&gt;new commit&lt;/strong&gt; that undoes the changes of a previous commit. It &lt;strong&gt;preserves history&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  When to Use?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You want to &lt;strong&gt;undo a bad commit in a shared branch&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You want to &lt;strong&gt;keep history intact but fix a mistake&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  Example:
&lt;/h4&gt;

&lt;p&gt;Commit &lt;code&gt;C&lt;/code&gt; introduced a bug. But you’ve already pushed it to &lt;code&gt;origin/main&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A — B — C — D  (main)           
             ↑            
            Bug lives here 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can revert C safely:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git revert &amp;lt;commit-hash-of-C&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git will create a new commit :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A — B — C — D — E  (main)                    
                ↑                 
              "Revert C" 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  Important:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Safe for shared/public branches&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Doesn’t remove the commit but &lt;strong&gt;inverts its changes&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Summary: When to Use What?
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Use When…&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git rebase&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;You want to &lt;strong&gt;rewrite and clean history&lt;/strong&gt; (local-only).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git reset&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;You want to &lt;strong&gt;remove commits&lt;/strong&gt; or &lt;strong&gt;unstage changes&lt;/strong&gt; locally.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git revert&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;You need to &lt;strong&gt;undo commits safely in shared branches&lt;/strong&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  Visual Cheat Sheet
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;"I messed up a commit and want to fix it before pushing" → &lt;strong&gt;Rebase / Reset (local only)&lt;/strong&gt;&lt;br&gt;
"I pushed a bad commit, now I need to undo it on remote" → &lt;strong&gt;Revert&lt;/strong&gt;&lt;br&gt;
"I made several ugly small commits, want to squash them" → &lt;strong&gt;Rebase -i&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Final Tips
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Never rebase or reset public history unless you know what you’re doing.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;git log --oneline --graph&lt;/code&gt; to visualize the history before making changes.&lt;/li&gt;
&lt;li&gt;Always backup your branch with &lt;code&gt;git branch backup/my-branch&lt;/code&gt; before risky operations.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Further Reading
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/docs/git-rebase" rel="noopener noreferrer"&gt;Git Rebase Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/docs/git-reset" rel="noopener noreferrer"&gt;Git Reset Explained&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/docs/git-revert" rel="noopener noreferrer"&gt;Git Revert Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>git</category>
      <category>devops</category>
    </item>
    <item>
      <title>Learn Package Management on Arch Linux: pacman &amp; yay</title>
      <dc:creator>Ishan Jarwal</dc:creator>
      <pubDate>Fri, 29 May 2026 07:59:48 +0000</pubDate>
      <link>https://dev.to/ishucodes/learn-package-management-on-arch-linux-pacman-yay-267j</link>
      <guid>https://dev.to/ishucodes/learn-package-management-on-arch-linux-pacman-yay-267j</guid>
      <description>&lt;h1&gt;
  
  
  Part 1: Understanding &lt;code&gt;pacman&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;pacman&lt;/code&gt; is the default package manager for Arch Linux. It directly interacts with the official repositories and handles installation, updates, and removal of software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Syntax
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;pacman &lt;span class="o"&gt;[&lt;/span&gt;options] &lt;span class="o"&gt;[&lt;/span&gt;package_name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Common pacman Commands
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Update package database and system&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo pacman -Syu&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sync package list (&lt;code&gt;-Sy&lt;/code&gt;) and upgrade all packages (&lt;code&gt;-u&lt;/code&gt;).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Install a package&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo pacman -S &amp;lt;package&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Installs package from official repo.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Remove a package&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo pacman -R &amp;lt;package&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Removes a package (keeps dependencies).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Remove a package and its unused dependencies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo pacman -Rns &amp;lt;package&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clean uninstall — removes package, configs, and dependencies.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Search for a package&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pacman -Ss &amp;lt;keyword&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search available packages.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;List installed packages&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pacman -Q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows all installed packages.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Show package info&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pacman -Qi &amp;lt;package&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Displays metadata (version, size, dependencies).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Clean cache&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sudo pacman -Sc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Removes old packages from cache.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Official Reference:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://wiki.archlinux.org/title/Pacman" rel="noopener noreferrer"&gt;Pacman Manual - ArchWiki&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🧹 Pro Tip
&lt;/h3&gt;

&lt;p&gt;To free up space, remove &lt;em&gt;unused dependencies&lt;/em&gt; and &lt;em&gt;old cached packages&lt;/em&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;pacman &lt;span class="nt"&gt;-Rns&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;pacman &lt;span class="nt"&gt;-Qdtq&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;pacman &lt;span class="nt"&gt;-Scc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Part 2: Using &lt;code&gt;yay&lt;/code&gt; for AUR Packages
&lt;/h1&gt;

&lt;p&gt;The &lt;strong&gt;Arch User Repository (AUR)&lt;/strong&gt; contains community-maintained build scripts (PKGBUILDs) for software not in the official repositories.&lt;br&gt;&lt;br&gt;
&lt;code&gt;yay&lt;/code&gt; (Yet Another Yaourt) is a lightweight, fast, and user-friendly &lt;strong&gt;AUR helper&lt;/strong&gt; that automates the build and installation process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Syntax
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;yay &lt;span class="o"&gt;[&lt;/span&gt;options] &lt;span class="o"&gt;[&lt;/span&gt;package_name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Common yay Commands
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Update everything (official + AUR)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yay -Syu&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sync and upgrade both official and AUR packages.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Install an AUR package&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yay -S &amp;lt;package&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Automatically fetches, builds, and installs from AUR.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Search for AUR packages&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yay -Ss &amp;lt;keyword&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search both official and AUR repositories.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Remove a package&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yay -Rns &amp;lt;package&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Same as pacman — removes package + unused dependencies.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Clean build cache&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yay -Sc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clean yay’s build directory.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;List all AUR packages&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yay -Qm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows all manually installed (AUR) packages.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Check for outdated AUR packages&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yay -Qua&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lists AUR updates available.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Tip:&lt;/strong&gt; Unlike pacman, &lt;code&gt;yay&lt;/code&gt; doesn’t need &lt;code&gt;sudo&lt;/code&gt; for most operations until the build process actually installs system files — it will prompt automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official Reference:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/Jguer/yay" rel="noopener noreferrer"&gt;Yay GitHub Repository&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Flag Summary
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Flag&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-S&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;pacman/yay&lt;/td&gt;
&lt;td&gt;Install package(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-R&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;pacman/yay&lt;/td&gt;
&lt;td&gt;Remove package(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-Ss&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;pacman/yay&lt;/td&gt;
&lt;td&gt;Search package in repos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-Qi&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;pacman&lt;/td&gt;
&lt;td&gt;Show package info&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-Qm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yay&lt;/td&gt;
&lt;td&gt;List manually installed (AUR) packages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-Syu&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;pacman/yay&lt;/td&gt;
&lt;td&gt;Sync database and upgrade all packages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-Rns&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;pacman/yay&lt;/td&gt;
&lt;td&gt;Remove package + dependencies + configs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-Sc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;pacman/yay&lt;/td&gt;
&lt;td&gt;Clean package cache&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-Qdtq&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;pacman&lt;/td&gt;
&lt;td&gt;List orphaned packages&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Further Reading:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://wiki.archlinux.org/title/Pacman/Tips_and_tricks" rel="noopener noreferrer"&gt;ArchWiki: Pacman Tips &amp;amp; Tricks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://wiki.archlinux.org/title/AUR_helpers" rel="noopener noreferrer"&gt;ArchWiki: AUR Helpers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>archlinux</category>
      <category>linux</category>
      <category>pacman</category>
      <category>aur</category>
    </item>
    <item>
      <title>A Comprehensive and Comfy Guide to Git.</title>
      <dc:creator>Ishan Jarwal</dc:creator>
      <pubDate>Fri, 29 May 2026 07:47:15 +0000</pubDate>
      <link>https://dev.to/ishucodes/a-comprehensive-and-comfy-guide-to-git-39nd</link>
      <guid>https://dev.to/ishucodes/a-comprehensive-and-comfy-guide-to-git-39nd</guid>
      <description>&lt;p&gt;Git is not just a tool; it’s a life-saver for developers. It helps you track changes, collaborate with others, and never lose your work. This guide is designed to be a comfy walkthrough of Git , not too heavy on jargon, but packed with useful knowledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Tiny History of Git and Why You Should Care
&lt;/h2&gt;

&lt;p&gt;Git was created by Linus Torvalds in 2005, the same genius who built Linux. It was born out of necessity when the Linux community needed a version control system that was fast, distributed, and free.&lt;/p&gt;

&lt;p&gt;Today, Git powers everything from hobby projects to massive codebases like those at Google, Microsoft, and Facebook. Whether you're working on a personal website or contributing to open-source, Git is the industry standard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where is Git
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Software Development (obviously!)&lt;/li&gt;
&lt;li&gt;Documentation Projects&lt;/li&gt;
&lt;li&gt;Collaborative Design Workflows&lt;/li&gt;
&lt;li&gt;Versioning for Configuration Files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If it involves files that change over time, Git can manage it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Git Terminologies
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F0u0br42cumcl4xgwx8e1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F0u0br42cumcl4xgwx8e1.jpg" width="649" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Repository (Repo)&lt;/strong&gt;&lt;br&gt;
A directory where your project's Git history is stored. It's like a folder, but smarter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Staging Area&lt;/strong&gt;&lt;br&gt;
Think of this as a "waiting room" where changes sit before you officially save them in the project history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Commit&lt;/strong&gt;&lt;br&gt;
A snapshot of your project at a specific point in time. This is how you save your work in Git.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Push&lt;/strong&gt;&lt;br&gt;
You "push" commits to a remote repository (like GitHub) so others can see your work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Remote&lt;/strong&gt;&lt;br&gt;
A version of your project that's hosted on the internet or another network.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Setting Up Git for the First Time
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install Git&lt;/strong&gt;&lt;br&gt;
Download from &lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;git-scm.com&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Configure Your Identity&lt;/strong&gt;&lt;br&gt;
Before you do anything, tell Git who you are. We do this by telling git what is our &lt;code&gt;username&lt;/code&gt; and &lt;code&gt;email&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"your.email@example.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Initialize a Git Repository&lt;/strong&gt;
Navigate to your project folder and run:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /path/to/your/project&lt;span class="s1"&gt;'s/root
git init
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a &lt;code&gt;.git&lt;/code&gt; folder in your project. If you don't know, folders starting with a "." are hidden folders so you might not see it in the folder tree. This is where the information about your codebase is saved.&lt;/p&gt;

&lt;h1&gt;
  
  
  Tracking Changes (Staging &amp;amp; Committing)
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check Project Status&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This shows which files have been changed, which are staged, and which are not. You will see something like this in your terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fyvki9fye6zk4vbegyqqm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fyvki9fye6zk4vbegyqqm.png" width="800" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Add Files to Staging Area
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add filename.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or add everything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is one step before committing your changes. Note that the files added to the staging area are the only ones going to be committed. All other files will be "unstaged files"&lt;/p&gt;

&lt;h2&gt;
  
  
  Committing the Changes
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add feature X"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git expects you to associate every commit with a message. After running this command, a snapshot of your staged changes will be saved as a "commit".&lt;/p&gt;

&lt;h2&gt;
  
  
  Viewing Commit History
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This shows all commits in your repo. Use &lt;code&gt;q&lt;/code&gt; to exit log view.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;strong&gt;HEAD&lt;/strong&gt; in Git points to the current snapshot (commit) you are working on. Think of it as "where you are" in your project history.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Understanding Branches
&lt;/h1&gt;

&lt;p&gt;A &lt;strong&gt;branch&lt;/strong&gt; in Git is like creating an alternate universe for your code where you can try out new features without disturbing the main project. I would call this the most amazing feature offered by Git. Think of it as you are working on a feature and committing the changes step by step.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Eg : Initialize Project -&amp;gt; create homepage -&amp;gt; add images -&amp;gt; change fonts . . .&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But parallel to this workflow, you also want to create a new feature say "Authentication" in the same project and without disturbing the main flow.&lt;/p&gt;

&lt;p&gt;When you first initialize your project, the default branch you work on is either "master" or "main"&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a New Branch
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Switch to That Branch
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Or Do Both in One Command
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; new-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  List All Branches
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Delete a Branch
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch &lt;span class="nt"&gt;-d&lt;/span&gt; old-feature
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;You can learn more about "Merging Branches" from here. It is an advanced git concept, hence it will not be discussed here.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Push Your Code to GitHub
&lt;/h1&gt;

&lt;p&gt;Till now, we have created our repo, some commits (our checkpoints) and also branches. But all of this resides in our local machine. If anything goes wrong your pc, all of your data will be lost. For this purpose we have "Github", a place where you can upload your code so that it stays safe.&lt;/p&gt;

&lt;p&gt;Following theses steps you can do it easily.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create a Github account and the repo.
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;First step is to create your &lt;a href="https://github.com/signup" rel="noopener noreferrer"&gt;github accout&lt;/a&gt;. Simply add your details, verify your account and your are good to go.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you can click the "Create New Repository" button, give it a name, make it public/private according to you and hit create.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now your remote repository is created and we need to connect it to our local git project, to do that, follow these steps&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fn5jholbr2zfza88g8xp1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fn5jholbr2zfza88g8xp1.png" width="799" height="401"&gt;&lt;/a&gt;&lt;a href="https://media2.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%2Ft5by8tcrdqc16e3su1qj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ft5by8tcrdqc16e3su1qj.png" width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Add Remote URL
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add origin https://github.com/yourusername/your-repo.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;here, origin is nothing but an alias for your remote repository, you can see all the aliases by this command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Push to Remote
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&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;This will "push" or upload our codebase to our remote repository. The "-u" flag tells Git to set the remote branch (&lt;code&gt;origin/main&lt;/code&gt;) as the upstream (or default) branch for your local branch (&lt;code&gt;main&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Congrats, your code is now safe on github.&lt;/p&gt;

&lt;h1&gt;
  
  
  Bonus Tips: Git in VSCode
&lt;/h1&gt;

&lt;p&gt;If you prefer clicking buttons over typing commands, &lt;strong&gt;Visual Studio Code&lt;/strong&gt; has an excellent Git GUI.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Must-have VSCode Git Extensions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  GitLens: Supercharge your Git experience.&lt;/li&gt;
&lt;li&gt;  Git Graph: Visualize your branches and commits.&lt;/li&gt;
&lt;li&gt;  GitHub Pull Requests and Issues: Manage PRs from within VSCode.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Flewirhchxeo6jkeaebjx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Flewirhchxeo6jkeaebjx.png" width="741" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What's Next?
&lt;/h1&gt;

&lt;p&gt;This guide covers the comfy essentials to get you started. In the next post, we'll explore advanced Git concepts like merge conflicts, rebasing, reverting commits, and more.&lt;/p&gt;

&lt;p&gt;For now, get your hands dirty and start committing!&lt;/p&gt;

&lt;p&gt;That's it! You're now Git-ready.&lt;/p&gt;

</description>
      <category>git</category>
      <category>versioning</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
