<?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: zainaboyedeji</title>
    <description>The latest articles on DEV Community by zainaboyedeji (@zainaboyedeji).</description>
    <link>https://dev.to/zainaboyedeji</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%2F1044650%2Fab27be82-cf5f-416e-bd64-50a670ac2091.jpg</url>
      <title>DEV Community: zainaboyedeji</title>
      <link>https://dev.to/zainaboyedeji</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zainaboyedeji"/>
    <language>en</language>
    <item>
      <title>The Complete Git Commands Cheat Sheet - Everything You Need to Know</title>
      <dc:creator>zainaboyedeji</dc:creator>
      <pubDate>Wed, 19 Feb 2025 19:01:56 +0000</pubDate>
      <link>https://dev.to/zainaboyedeji/the-complete-git-commands-cheat-sheet-everything-you-need-to-know-4n9b</link>
      <guid>https://dev.to/zainaboyedeji/the-complete-git-commands-cheat-sheet-everything-you-need-to-know-4n9b</guid>
      <description>&lt;p&gt;Git is the free and open source distributed version control system that's responsible for everything GitHub-related that happens locally on your computer. This comprehensive cheat sheet features the most important and commonly used Git commands for easy reference.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Getting Started &amp;amp; Configuration 🏁
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Installation &amp;amp; GUIs
&lt;/h3&gt;

&lt;p&gt;With platform specific installers for Git, GitHub also provides the ease of staying up-to-date with the latest releases of the command line tool while providing a graphical user interface for day-to-day interaction, review, and repository synchronization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation Setup
&lt;/h3&gt;

&lt;p&gt;Configuring user information used across all local repositories:&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="c"&gt;# Check Git version&lt;/span&gt;
git &lt;span class="nt"&gt;--version&lt;/span&gt;

&lt;span class="c"&gt;# Set username&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"[name]"&lt;/span&gt;

&lt;span class="c"&gt;# Set email&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"[email]"&lt;/span&gt;

&lt;span class="c"&gt;# List all configurations&lt;/span&gt;
git config &lt;span class="nt"&gt;--list&lt;/span&gt;

&lt;span class="c"&gt;# Enable helpful colorization&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; color.ui auto

&lt;span class="c"&gt;# Display help documentation&lt;/span&gt;
git &lt;span class="nb"&gt;help&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Repository Initialization
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Initialize a new Git repository&lt;/span&gt;
git init

&lt;span class="c"&gt;# Create repository in specific directory&lt;/span&gt;
git init &lt;span class="o"&gt;[&lt;/span&gt;directory]

&lt;span class="c"&gt;# Clone a repository&lt;/span&gt;
git clone &lt;span class="o"&gt;[&lt;/span&gt;url]

&lt;span class="c"&gt;# Clone into specific directory&lt;/span&gt;
git clone &lt;span class="o"&gt;[&lt;/span&gt;url] &lt;span class="o"&gt;[&lt;/span&gt;directory]

&lt;span class="c"&gt;# Clone specific branch&lt;/span&gt;
git clone &lt;span class="nt"&gt;--branch&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;branch_name] &lt;span class="o"&gt;[&lt;/span&gt;repository_url]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Basic Snapshotting 📸
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Adding Files
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Add file to staging&lt;/span&gt;
git add &lt;span class="o"&gt;[&lt;/span&gt;file]

&lt;span class="c"&gt;# Add all new and changed files&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Add all files (including deleted)&lt;/span&gt;
git add &lt;span class="nt"&gt;-A&lt;/span&gt;

&lt;span class="c"&gt;# Interactive staging&lt;/span&gt;
git add &lt;span class="nt"&gt;-p&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Committing Changes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Commit with message&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"[descriptive message]"&lt;/span&gt;

&lt;span class="c"&gt;# Add and commit tracked files&lt;/span&gt;
git commit &lt;span class="nt"&gt;-am&lt;/span&gt; &lt;span class="s2"&gt;"[message]"&lt;/span&gt;

&lt;span class="c"&gt;# Modify most recent commit&lt;/span&gt;
git commit &lt;span class="nt"&gt;--amend&lt;/span&gt;

&lt;span class="c"&gt;# Amend without changing message&lt;/span&gt;
git commit &lt;span class="nt"&gt;--amend&lt;/span&gt; &lt;span class="nt"&gt;--no-edit&lt;/span&gt;

&lt;span class="c"&gt;# Create new note&lt;/span&gt;
git notes add

&lt;span class="c"&gt;# Restore file to last commit&lt;/span&gt;
git restore &amp;lt;file&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Status &amp;amp; Differences
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Show modified files&lt;/span&gt;
git status

&lt;span class="c"&gt;# Show ignored files&lt;/span&gt;
git status &lt;span class="nt"&gt;--ignored&lt;/span&gt;

&lt;span class="c"&gt;# Show working directory changes&lt;/span&gt;
git diff

&lt;span class="c"&gt;# Show staged changes&lt;/span&gt;
git diff &lt;span class="nt"&gt;--staged&lt;/span&gt;
git diff &lt;span class="nt"&gt;--cached&lt;/span&gt;

&lt;span class="c"&gt;# Compare branches&lt;/span&gt;
git diff &lt;span class="o"&gt;[&lt;/span&gt;branch1] &lt;span class="o"&gt;[&lt;/span&gt;branch2]

&lt;span class="c"&gt;# Unstage file&lt;/span&gt;
git reset &lt;span class="o"&gt;[&lt;/span&gt;file]

&lt;span class="c"&gt;# Compare with last commit&lt;/span&gt;
git diff HEAD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Branching and Merging 🌲
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Branch Management
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# List local branches&lt;/span&gt;
git branch

&lt;span class="c"&gt;# List all branches&lt;/span&gt;
git branch &lt;span class="nt"&gt;-a&lt;/span&gt;

&lt;span class="c"&gt;# Create new branch&lt;/span&gt;
git branch &lt;span class="o"&gt;[&lt;/span&gt;branch-name]

&lt;span class="c"&gt;# Delete branch locally&lt;/span&gt;
git branch &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;branch-name]

&lt;span class="c"&gt;# Force delete branch&lt;/span&gt;
git branch &lt;span class="nt"&gt;-D&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;branch-name]

&lt;span class="c"&gt;# Rename branch&lt;/span&gt;
git branch &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;old-name] &lt;span class="o"&gt;[&lt;/span&gt;new-name]

&lt;span class="c"&gt;# Switch to branch&lt;/span&gt;
git switch &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;branch-name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Navigation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Switch branches&lt;/span&gt;
git checkout &lt;span class="o"&gt;[&lt;/span&gt;branch-name]

&lt;span class="c"&gt;# Create and switch&lt;/span&gt;
git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;branch-name]

&lt;span class="c"&gt;# Switch to last branch&lt;/span&gt;
git checkout -

&lt;span class="c"&gt;# Check out commit&lt;/span&gt;
git checkout &lt;span class="o"&gt;[&lt;/span&gt;commit-hash]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Merging
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Merge branch&lt;/span&gt;
git merge &lt;span class="o"&gt;[&lt;/span&gt;branch]

&lt;span class="c"&gt;# Abort merge&lt;/span&gt;
git merge &lt;span class="nt"&gt;--abort&lt;/span&gt;

&lt;span class="c"&gt;# Create merge commit&lt;/span&gt;
git merge &lt;span class="nt"&gt;--no-ff&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;branch]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Remote Operations 🌐
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Remote Management
&lt;/h3&gt;



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

&lt;span class="c"&gt;# Add remote&lt;/span&gt;
git remote add &lt;span class="o"&gt;[&lt;/span&gt;name] &lt;span class="o"&gt;[&lt;/span&gt;url]

&lt;span class="c"&gt;# Remove remote&lt;/span&gt;
git remote remove &lt;span class="o"&gt;[&lt;/span&gt;name]

&lt;span class="c"&gt;# Delete file&lt;/span&gt;
git &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;file]

&lt;span class="c"&gt;# Rename remote&lt;/span&gt;
git remote rename &lt;span class="o"&gt;[&lt;/span&gt;old-name] &lt;span class="o"&gt;[&lt;/span&gt;new-name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Syncing
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Fetch branches&lt;/span&gt;
git fetch &lt;span class="o"&gt;[&lt;/span&gt;remote]

&lt;span class="c"&gt;# Remove obsolete branches&lt;/span&gt;
git fetch &lt;span class="nt"&gt;--prune&lt;/span&gt;

&lt;span class="c"&gt;# Fetch and merge&lt;/span&gt;
git pull

&lt;span class="c"&gt;# Fetch and rebase&lt;/span&gt;
git pull &lt;span class="nt"&gt;--rebase&lt;/span&gt;

&lt;span class="c"&gt;# Push changes&lt;/span&gt;
git push &lt;span class="o"&gt;[&lt;/span&gt;branch]

&lt;span class="c"&gt;# Push and set upstream&lt;/span&gt;
git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin &lt;span class="o"&gt;[&lt;/span&gt;branch]

&lt;span class="c"&gt;# Force push&lt;/span&gt;
git push &lt;span class="nt"&gt;--force&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. History and Comparison 📚
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Logging
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Show commit history&lt;/span&gt;
git log

&lt;span class="c"&gt;# One line format&lt;/span&gt;
git log &lt;span class="nt"&gt;--oneline&lt;/span&gt;

&lt;span class="c"&gt;# Show as graph&lt;/span&gt;
git log &lt;span class="nt"&gt;--graph&lt;/span&gt;

&lt;span class="c"&gt;# Show with stats&lt;/span&gt;
git log &lt;span class="nt"&gt;--stat&lt;/span&gt; &lt;span class="nt"&gt;-M&lt;/span&gt;

&lt;span class="c"&gt;# Show file changes by author&lt;/span&gt;
git blame &lt;span class="o"&gt;[&lt;/span&gt;file]

&lt;span class="c"&gt;# Compare branch commits&lt;/span&gt;
git log branchB..branchA

&lt;span class="c"&gt;# Show file history&lt;/span&gt;
git log &lt;span class="nt"&gt;--follow&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;file]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Inspection
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Show commit details&lt;/span&gt;
git show &lt;span class="o"&gt;[&lt;/span&gt;commit]

&lt;span class="c"&gt;# Show current commit hash&lt;/span&gt;
git rev-parse HEAD

&lt;span class="c"&gt;# Show reference logs&lt;/span&gt;
git reflog

&lt;span class="c"&gt;# Show object details&lt;/span&gt;
git show &lt;span class="o"&gt;[&lt;/span&gt;SHA]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  6. Undoing Changes ↩️
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Working Directory
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Discard changes&lt;/span&gt;
git checkout &lt;span class="nt"&gt;--&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;file]

&lt;span class="c"&gt;# Preview cleanup&lt;/span&gt;
git clean &lt;span class="nt"&gt;-n&lt;/span&gt;

&lt;span class="c"&gt;# Remove untracked files&lt;/span&gt;
git clean &lt;span class="nt"&gt;-f&lt;/span&gt;

&lt;span class="c"&gt;# Remove untracked directories&lt;/span&gt;
git clean &lt;span class="nt"&gt;-fd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Staged Changes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Unstage file&lt;/span&gt;
git reset &lt;span class="o"&gt;[&lt;/span&gt;file]

&lt;span class="c"&gt;# Unstage all&lt;/span&gt;
git reset

&lt;span class="c"&gt;# Reset to commit&lt;/span&gt;
git reset &lt;span class="nt"&gt;--hard&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;commit]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Commits
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Undo commits&lt;/span&gt;
git reset &lt;span class="o"&gt;[&lt;/span&gt;commit]

&lt;span class="c"&gt;# Create undo commit&lt;/span&gt;
git revert &lt;span class="o"&gt;[&lt;/span&gt;commit]

&lt;span class="c"&gt;# Revert without commit&lt;/span&gt;
git revert &lt;span class="nt"&gt;--no-commit&lt;/span&gt; &amp;lt;commit&amp;gt;

&lt;span class="c"&gt;# Soft reset&lt;/span&gt;
git reset &lt;span class="nt"&gt;--soft&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;commit]

&lt;span class="c"&gt;# Hard reset&lt;/span&gt;
git reset &lt;span class="nt"&gt;--hard&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;commit]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. Ignoring Patterns 🚫
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Common .gitignore patterns&lt;/span&gt;
logs/
&lt;span class="k"&gt;*&lt;/span&gt;.notes
pattern&lt;span class="k"&gt;*&lt;/span&gt;/

&lt;span class="c"&gt;# Set global ignore file&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; core.excludesfile &lt;span class="o"&gt;[&lt;/span&gt;file]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. Advanced Operations 🔧
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Stashing
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Save changes&lt;/span&gt;
git stash

&lt;span class="c"&gt;# List stashes&lt;/span&gt;
git stash list

&lt;span class="c"&gt;# Apply top stash&lt;/span&gt;
git stash pop

&lt;span class="c"&gt;# Apply without removing&lt;/span&gt;
git stash apply

&lt;span class="c"&gt;# Remove top stash&lt;/span&gt;
git stash drop

&lt;span class="c"&gt;# Clear all stashes&lt;/span&gt;
git stash clear
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Rebasing
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Rebase onto branch&lt;/span&gt;
git rebase &lt;span class="o"&gt;[&lt;/span&gt;branch]

&lt;span class="c"&gt;# Interactive rebase&lt;/span&gt;
git rebase &lt;span class="nt"&gt;-i&lt;/span&gt; HEAD~[n]

&lt;span class="c"&gt;# Abort rebase&lt;/span&gt;
git rebase &lt;span class="nt"&gt;--abort&lt;/span&gt;

&lt;span class="c"&gt;# Continue rebase&lt;/span&gt;
git rebase &lt;span class="nt"&gt;--continue&lt;/span&gt;

&lt;span class="c"&gt;# Move file&lt;/span&gt;
git &lt;span class="nb"&gt;mv&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;existing-path] &lt;span class="o"&gt;[&lt;/span&gt;new-path]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tags
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# List tags&lt;/span&gt;
git tag

&lt;span class="c"&gt;# Create lightweight tag&lt;/span&gt;
git tag &lt;span class="o"&gt;[&lt;/span&gt;tag-name]

&lt;span class="c"&gt;# Create annotated tag&lt;/span&gt;
git tag &lt;span class="nt"&gt;-a&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;tag-name] &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"[message]"&lt;/span&gt;

&lt;span class="c"&gt;# Push tag&lt;/span&gt;
git push origin &lt;span class="o"&gt;[&lt;/span&gt;tag-name]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9. Maintenance and Data Recovery 🛠️
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Maintenance
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Check integrity&lt;/span&gt;
git fsck

&lt;span class="c"&gt;# Clean up repository&lt;/span&gt;
git gc

&lt;span class="c"&gt;# Remove unreachable objects&lt;/span&gt;
git prune

&lt;span class="c"&gt;# Verify packed objects&lt;/span&gt;
git verify-pack &lt;span class="nt"&gt;-v&lt;/span&gt; .git/objects/pack/pack-&lt;span class="k"&gt;*&lt;/span&gt;.idx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Recovery
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Expire reflog&lt;/span&gt;
git reflog expire &lt;span class="nt"&gt;--expire&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;now &lt;span class="nt"&gt;--all&lt;/span&gt;

&lt;span class="c"&gt;# Recover commit&lt;/span&gt;
git checkout &lt;span class="o"&gt;[&lt;/span&gt;lost-commit-hash]

&lt;span class="c"&gt;# Cherry-pick commit&lt;/span&gt;
git cherry-pick &lt;span class="o"&gt;[&lt;/span&gt;commit]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. GitHub Specific Commands 🐙
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pull Requests
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Fetch PR&lt;/span&gt;
git fetch origin pull/[PR-number]/head:[branch-name]

&lt;span class="c"&gt;# Check out PR&lt;/span&gt;
git checkout &lt;span class="nb"&gt;pr&lt;/span&gt;/[PR-number]

&lt;span class="c"&gt;# Push to PR&lt;/span&gt;
git push origin &lt;span class="o"&gt;[&lt;/span&gt;branch]:[PR-branch]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  GitHub CLI
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create repository&lt;/span&gt;
gh repo create

&lt;span class="c"&gt;# Create pull request&lt;/span&gt;
gh &lt;span class="nb"&gt;pr &lt;/span&gt;create

&lt;span class="c"&gt;# Create issue&lt;/span&gt;
gh issue create

&lt;span class="c"&gt;# Fork repository&lt;/span&gt;
gh repo fork
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  11. Configuration and Info ⚙️
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Help and Information
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Get command help&lt;/span&gt;
git &lt;span class="nb"&gt;help&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;

&lt;span class="c"&gt;# Alternative help&lt;/span&gt;
git &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="nt"&gt;--help&lt;/span&gt;

&lt;span class="c"&gt;# Quick help&lt;/span&gt;
git &lt;span class="nt"&gt;-h&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Advanced Configuration
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Set default editor&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; core.editor &lt;span class="s2"&gt;"[editor]"&lt;/span&gt;

&lt;span class="c"&gt;# Create alias&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; alias.[shortcut] &lt;span class="s2"&gt;"[command]"&lt;/span&gt;

&lt;span class="c"&gt;# Configure line endings&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; core.autocrlf &lt;span class="nb"&gt;true&lt;/span&gt;

&lt;span class="c"&gt;# Cache credentials&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; credential.helper cache

&lt;span class="c"&gt;# Set default branch&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; init.defaultBranch main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📖 Glossary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Git&lt;/strong&gt;: An open-source, distributed version control system that tracks changes in code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: A web-based platform for hosting, sharing, and collaborating on Git repositories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commit&lt;/strong&gt;: A snapshot of the entire repository at a given point in time, identified by a unique SHA (hash).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branch&lt;/strong&gt;: A movable pointer to a commit, allowing parallel development without affecting the main codebase.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clone&lt;/strong&gt;: A local copy of a Git repository, including all commits, branches, and history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remote&lt;/strong&gt;: A shared repository (typically on GitHub) that team members use to push and pull changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fork&lt;/strong&gt;: A personal copy of someone else's repository on GitHub, allowing independent modifications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pull Request (PR)&lt;/strong&gt;: A request to merge changes from one branch into another, often reviewed with comments, tests, and approvals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HEAD&lt;/strong&gt;: The current reference point in a Git repository, typically pointing to the latest commit on the active branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📚 Resources for Further Learning
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Official Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://education.github.com/git-cheat-sheet-education.pdf" rel="noopener noreferrer"&gt;GitHub Git Cheat Sheet (Education)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/get-started/getting-started-with-git/git-cheatsheet" rel="noopener noreferrer"&gt;GitHub Official Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://training.github.com/downloads/github-git-cheat-sheet.pdf" rel="noopener noreferrer"&gt;GitHub Training Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Educational Platforms
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/news/git-cheat-sheet/" rel="noopener noreferrer"&gt;FreeCodeCamp's Git Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codecademy.com/learn/learn-git/modules/learn-git-git-workflow-u/cheatsheet" rel="noopener noreferrer"&gt;Codecademy's Git Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.geeksforgeeks.org/git-cheat-sheet/" rel="noopener noreferrer"&gt;GeeksforGeeks Git Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.geeksforgeeks.org/useful-github-commands/" rel="noopener noreferrer"&gt;GeeksforGeeks GitHub Commands&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Additional References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://about.gitlab.com/images/press/git-cheat-sheet.pdf" rel="noopener noreferrer"&gt;GitLab's Git Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/mignonstyle/4b437a4060646f55964b85cd6edb4ee3" rel="noopener noreferrer"&gt;Mignon Style's Git Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.scribd.com/document/329345184/Git-and-Github-Cheat-Sheet" rel="noopener noreferrer"&gt;Scribd's Git and GitHub Reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤝 Contributing
&lt;/h2&gt;

&lt;p&gt;Found this helpful? &lt;br&gt;
Consider sharing it with your network! &lt;br&gt;
If you spot any errors or have suggestions for improvement, feel free to leave a comment below.&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>cheatsheet</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Git and Github for beginners</title>
      <dc:creator>zainaboyedeji</dc:creator>
      <pubDate>Mon, 17 Feb 2025 13:00:48 +0000</pubDate>
      <link>https://dev.to/zainaboyedeji/git-and-github-for-beginners-54fh</link>
      <guid>https://dev.to/zainaboyedeji/git-and-github-for-beginners-54fh</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Git and GitHub are essential tools in modern software development. They allow developers to manage different versions of their code, collaborate effectively, and maintain a streamlined workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Git?
&lt;/h2&gt;

&lt;p&gt;Git is a distributed version control system (VCS) that helps developers track changes in their codebase, collaborate efficiently, and manage project versions. The term "distributed" means that each developer has a complete copy of the project repository, allowing them to work independently and merge changes when needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of Git:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Version Control:&lt;/strong&gt; Track and revert changes in your project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration:&lt;/strong&gt; Multiple developers can work on the same project without conflicts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branching &amp;amp; Merging:&lt;/strong&gt; Developers can create separate branches for features and merge them into the main project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Access:&lt;/strong&gt; Work on your code without an internet connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is GitHub?
&lt;/h2&gt;

&lt;p&gt;GitHub is a web-based platform built on Git that provides a space for developers to store, manage, and share code. It enhances Git by offering a graphical interface, project management tools, and collaboration features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features of GitHub:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repositories (Repos):&lt;/strong&gt; Store your project files and history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branching &amp;amp; Merging:&lt;/strong&gt; Create branches for new features and merge them after review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pull Requests:&lt;/strong&gt; Submit code changes for review before merging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Issues &amp;amp; Project Management:&lt;/strong&gt; Track bugs and tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Actions:&lt;/strong&gt; Automate workflows like testing and deployment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other alternatives to &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; include &lt;a href="https://bitbucket.org/product/" rel="noopener noreferrer"&gt;Bitbucket&lt;/a&gt; and &lt;a href="https://about.gitlab.com/" rel="noopener noreferrer"&gt;Gitlab&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Git Bash?
&lt;/h2&gt;

&lt;p&gt;Git Bash is a command-line interface (CLI) that enables interaction with Git. It is especially useful for Windows users as it provides a Unix-like terminal for executing Git commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started with Git and GitHub
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Installing Git&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To start using Git, you need to install it on your local machine.&lt;/p&gt;

&lt;p&gt;You can download Git &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Ensure to choose based on your operating system.&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%2F1gh9ejfcpkns5614cx5y.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%2F1gh9ejfcpkns5614cx5y.png" alt=" " width="800" height="667"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Setting Up Git&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once installed, configure Git with your name and email:&lt;br&gt;
&lt;/p&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;p&gt;This associates your commits with your identity.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Creating a GitHub Account&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; enter the same email you configured above then click on the Sign up for GitHub button.&lt;/li&gt;
&lt;/ul&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%2F5nkl8u0x9ypinb9epz0c.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%2F5nkl8u0x9ypinb9epz0c.png" alt=" " width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Creating a Repository on GitHub&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;a. Log in to GitHub.&lt;br&gt;
b. Click the "+" icon and select &lt;strong&gt;New repository&lt;/strong&gt;.&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%2Fxs9vt5vz2fvrloge2ni5.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%2Fxs9vt5vz2fvrloge2ni5.png" alt=" " width="488" height="674"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;c. Enter a &lt;strong&gt;repository name&lt;/strong&gt;, a &lt;strong&gt;description&lt;/strong&gt; (optional), and choose the &lt;strong&gt;visibility&lt;/strong&gt; (public or private).&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%2Fhnsztsb3cww27tjlf3tg.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%2Fhnsztsb3cww27tjlf3tg.png" alt=" " width="800" height="746"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;d. Click &lt;strong&gt;Create repository&lt;/strong&gt;.&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%2Fxytkmry21iteyu2yw2o1.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%2Fxytkmry21iteyu2yw2o1.png" alt=" " width="800" height="679"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;e. After creating a repository, you are directed to this page.&lt;br&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%2Ffhlmd4ftk0yy17wmt11m.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%2Ffhlmd4ftk0yy17wmt11m.png" alt=" " width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  5. &lt;strong&gt;Connecting a Local Repository to GitHub&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If you have an existing project, navigate to its directory and initialize Git:&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;cd&lt;/span&gt; /path/to/your/project
git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, connect it to your GitHub repository:&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 add origin https://github.com/zainaboyedeji/git-github-tutorial.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fd9c6390p9h0b9c2h3ae7.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%2Fd9c6390p9h0b9c2h3ae7.png" alt=" " width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;strong&gt;Uploading Files to GitHub&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;a. Add all files to the staging area:&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;b. Commit the changes:&lt;br&gt;
&lt;/p&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;"Initial commit"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fbr2hmtzgxsnnmlrmr93k.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%2Fbr2hmtzgxsnnmlrmr93k.png" alt=" " width="800" height="140"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;c. Push to GitHub:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&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%2Fv1t9walaw7z1srzurtso.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%2Fv1t9walaw7z1srzurtso.png" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;d. Your new repository will contain your initial commit, just like the screenshot below.&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%2F1nrhopomt0akyxw8n3xn.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%2F1nrhopomt0akyxw8n3xn.png" alt=" " width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Flow: A Simple Workflow for Collaboration
&lt;/h2&gt;

&lt;p&gt;a. Create a Branch&lt;br&gt;
&lt;/p&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; feature-branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ensures that changes are made separately without affecting the main branch.&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%2Fcs5eejodxnihr5vc1xah.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%2Fcs5eejodxnihr5vc1xah.png" alt=" " width="800" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;b. Make Commits&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;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add new feature"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Frequent commits help keep track of changes.&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%2Fitvcgwfoxpc16njxyq7b.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%2Fitvcgwfoxpc16njxyq7b.png" alt=" " width="800" height="93"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;c. Push Your Branch to GitHub&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&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%2Fvucek9hfxl9cosbgan9r.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%2Fvucek9hfxl9cosbgan9r.png" alt=" " width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;d. Open a Pull Request&lt;/p&gt;

&lt;p&gt;On GitHub, navigate to your repository and open a &lt;strong&gt;Pull Request&lt;/strong&gt; (PR). Add a description and request reviews.&lt;/p&gt;

&lt;p&gt;a. Click on the New Pull Request button&lt;br&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%2F0hg22hmd5r4m999um2t0.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%2F0hg22hmd5r4m999um2t0.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;b. Select the branch you want to compare against the main branch, then click on 'Create Pull Request' button.&lt;br&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%2F5bv64k590yiixmz1bhzy.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%2F5bv64k590yiixmz1bhzy.png" alt=" " width="800" height="434"&gt;&lt;/a&gt;&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%2Fkaizb4x5ffai4rvwhr06.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%2Fkaizb4x5ffai4rvwhr06.png" alt=" " width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;c. Add an appropriate description to your PR explaining the changes made in that branch, then click on the 'Create Pull Request' button.&lt;br&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%2Fuhgr49oo4bil8s21viss.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%2Fuhgr49oo4bil8s21viss.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;d. You are then directed to this page, where you can review the changes and click on 'Merge Pull Request' once you're done.&lt;br&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%2Feqjt4vfy93vl2wokq843.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%2Feqjt4vfy93vl2wokq843.png" alt=" " width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;e. You review before merging, ensuring all checks have passed and there are no conflicts.&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%2Ffdgz1xrefb918erxd38d.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%2Ffdgz1xrefb918erxd38d.png" alt=" " width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;f. The pull request has been successfully merged.&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%2Fr0tj5qx7azjltxp74gnj.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%2Fr0tj5qx7azjltxp74gnj.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Advanced Git Features
&lt;/h2&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;1. Rebasing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Rebasing moves or combines commits to a new base, making your commit history cleaner.&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;2. Resolving Merge Conflicts&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If conflicts arise when merging, Git will notify you. Open the conflicting files, make necessary changes, then:&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;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Resolved merge conflict"&lt;/span&gt;
git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;3. Forking and Contributing to Open Source&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Fork a repository on GitHub.&lt;/li&gt;
&lt;li&gt;Clone your forked repo:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone https://github.com/your-username/forked-repo.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Make changes and push them.&lt;/li&gt;
&lt;li&gt;Open a pull request to contribute.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Resources to Learn Git and GitHub
&lt;/h3&gt;

&lt;p&gt;If you want to dive deeper into Git and GitHub, here are some helpful courses and articles:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.github.com/en/get-started" rel="noopener noreferrer"&gt;Git Documentation&lt;/a&gt;&lt;/strong&gt; – Official GitHub documentation to help you get started.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.geeksforgeeks.org/ultimate-guide-git-github/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;An Ultimate Guide to Git and GitHub&lt;/a&gt;&lt;/strong&gt; – Comprehensive guide on GeeksforGeeks.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.geeksforgeeks.org/introduction-to-github/" rel="noopener noreferrer"&gt;Introduction to GitHub&lt;/a&gt;&lt;/strong&gt; – Learn the basics of GitHub.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.freecodecamp.org/news/the-beginners-guide-to-git-github/" rel="noopener noreferrer"&gt;The Beginner's Guide to Git &amp;amp; GitHub&lt;/a&gt;&lt;/strong&gt; – A beginner-friendly guide from freeCodeCamp.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.classcentral.com/course/freecodecamp-git-and-github-for-beginners-crash-course-89437" rel="noopener noreferrer"&gt;Git and GitHub for Beginners - Crash Course&lt;/a&gt;&lt;/strong&gt; – A free crash course from freeCodeCamp.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://git-scm.com/doc" rel="noopener noreferrer"&gt;Git Documentation&lt;/a&gt;&lt;/strong&gt; – Official Git documentation for in-depth learning.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Git and GitHub are powerful tools that streamline version control and collaboration. Whether you're working on personal projects or contributing to open-source, mastering Git and GitHub will significantly improve your development workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤝 Contributing
&lt;/h2&gt;

&lt;p&gt;Found this helpful? &lt;br&gt;
Consider sharing it with your network! &lt;br&gt;
If you spot any errors or have suggestions for improvement, feel free to leave a comment below.&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>A Beginner's Guide to Frontend Development</title>
      <dc:creator>zainaboyedeji</dc:creator>
      <pubDate>Thu, 06 Feb 2025 15:43:30 +0000</pubDate>
      <link>https://dev.to/zainaboyedeji/a-beginners-guide-to-frontend-development-22bf</link>
      <guid>https://dev.to/zainaboyedeji/a-beginners-guide-to-frontend-development-22bf</guid>
      <description>&lt;p&gt;Entering the tech industry as a frontend developer can be overwhelming, especially when you're unsure of where to start. &lt;br&gt;
Many beginners ask, &lt;em&gt;"Where do I begin? I'm confused!"&lt;/em&gt; To address this, I’ve created this step-by-step guide to give you a clear roadmap, helping you navigate your learning journey with confidence.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Understanding Frontend Development&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A frontend developer is responsible for designing and building the visual and interactive elements of websites and applications using &lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt;. Their goal is to create a responsive, accessible, and visually appealing interface that users can easily interact with. Everything you see on a website—buttons, menus, animations—is crafted by a frontend developer.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;The Role of a Frontend Developer&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;While not a complete job description, the role of a frontend developer generally includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating user interfaces that are visually appealing and user-friendly.&lt;/li&gt;
&lt;li&gt;Collaborating with designers, backend developers, and project managers to bring a project to life.&lt;/li&gt;
&lt;li&gt;Ensuring responsive design across different devices and screen sizes.&lt;/li&gt;
&lt;li&gt;Optimizing website performance and accessibility.&lt;/li&gt;
&lt;li&gt;Implementing best practices for SEO and security.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Essential Frontend Technologies&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;One advantage of frontend development is that there are a few core technologies you need to master:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML&lt;/strong&gt; – Defines the structure of a webpage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS&lt;/strong&gt; – Styles the HTML elements, making the page visually appealing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt; – Adds interactivity and dynamic behavior to web pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt; (optional) – A superset of JavaScript that adds static typing for better code quality.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Additional Skills to Learn&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility&lt;/strong&gt; – Ensuring web content is usable by people with disabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version Control (Git &amp;amp; GitHub)&lt;/strong&gt; – Tracking changes in your code and collaborating with others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive Design&lt;/strong&gt; – Making sure websites work on different screen sizes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Experience (UX) Principles&lt;/strong&gt; – Designing intuitive and user-friendly interfaces.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SEO Basics&lt;/strong&gt; – Understanding how search engines rank web pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RESTful APIs&lt;/strong&gt; – Learning how to fetch data from external sources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing &amp;amp; Debugging&lt;/strong&gt; – Writing test cases and fixing issues efficiently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer Tools&lt;/strong&gt; – Using browser dev tools for debugging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend Frameworks&lt;/strong&gt; – Learning libraries like &lt;strong&gt;React,NextJs, Vue, or Angular&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web Performance Optimization&lt;/strong&gt; – Improving loading speed and efficiency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt; – Enhancing JavaScript with type safety.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Frontend Developer Roadmap&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A roadmap serves as a structured guide that outlines the key technologies, tools, and skills needed to become a proficient frontend developer. It helps you track your progress.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Where to Begin?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Start with the basics before diving into advanced concepts:&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;1. Learn Git &amp;amp; Github&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Many beginners underestimate the importance of the &lt;strong&gt;command line&lt;/strong&gt; and &lt;strong&gt;Git&lt;/strong&gt;. While it may seem unnecessary at first, version control and command-line operations become essential in real-world projects. Understanding &lt;strong&gt;GitHub&lt;/strong&gt; early on will help you manage your code efficiently.&lt;br&gt;
Create a &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub profile&lt;/a&gt; now.&lt;br&gt;
You can also check out my &lt;a href="https://dev.to/zainaboyedeji/git-and-github-for-beginners-54fh"&gt;Git and Github for beginners&lt;br&gt;
&lt;/a&gt; article for a deeper understanding.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/vA5TTz6BXhY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Master HTML, CSS &amp;amp; JavaScript&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If you're completely new, start with the fundamental building blocks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML&lt;/strong&gt; – Structure of web pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS&lt;/strong&gt; – Styling and layout (consider learning &lt;strong&gt;CSS frameworks&lt;/strong&gt; like Tailwind or Bootstrap).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt; – Making web pages interactive.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/kUMe1FH4CHE"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/PkZNo7MFNFg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Choose a Frontend Framework&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once you're comfortable with JavaScript, it's time to pick a framework. Popular choices include: React,NextJs,Vue.js,Angular.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React&lt;/strong&gt; is preferred by many companies (e.g., Meta, Netflix, Uber).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I personally recommend &lt;strong&gt;React&lt;/strong&gt; due to its popularity and vast community support.&lt;/p&gt;

&lt;p&gt;After learning the basics of React, focus on state management (Redux, Context API, etc.). As projects grow in complexity, managing application state becomes crucial. Redux and the Context API are commonly used solutions in React applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Explore TypeScript&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once comfortable with JavaScript, learning &lt;strong&gt;TypeScript&lt;/strong&gt; can improve your code quality and maintainability.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Building Your Portfolio&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;After mastering the basics and frameworks, start &lt;strong&gt;building real projects&lt;/strong&gt; to showcase your skills. A well-designed portfolio increases your chances of landing a job.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Project Ideas:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;A responsive blog website&lt;/li&gt;
&lt;li&gt;A weather app using a public API&lt;/li&gt;
&lt;li&gt;An e-commerce product listing page&lt;/li&gt;
&lt;li&gt;A personal portfolio website&lt;/li&gt;
&lt;li&gt;A calculator&lt;/li&gt;
&lt;li&gt;A todo-list app&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Networking &amp;amp; Continuous Learning&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Join Developer Communities:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Contribute to open-source projects on &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Github&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Participate in forums like &lt;a href="https://stackoverflow.com/questions" rel="noopener noreferrer"&gt;Stack Overflow&lt;/a&gt; and &lt;a href="https://dev.to/"&gt;Dev.to&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Attend meetups and tech conferences.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Stay Updated&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Frontend development is constantly evolving. Keep learning by following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/" rel="noopener noreferrer"&gt;MDN Web Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-tricks.com/" rel="noopener noreferrer"&gt;CSS-Tricks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://javascript.info/" rel="noopener noreferrer"&gt;The Modern JavaScript Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://frontendmasters.com/" rel="noopener noreferrer"&gt;Frontend Masters&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Advanced Frontend Path&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you have mastered the fundamentals, follow this Frontend Developer Roadmap for advanced learners. This guide outlines the key technologies, tools, and skills you need to become a well-rounded frontend developer. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://roadmap.sh/frontend" rel="noopener noreferrer"&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%2F65pbesvwf75cih1c9zde.png" alt="Frontend Roadmap" width="800" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image source: &lt;a href="https://roadmap.sh/frontend" rel="noopener noreferrer"&gt;roadmap.sh&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This Frontend Developer Roadmap is interactive—you can click on nearly every node to get more details and links to learn more. Above is an example screenshot of what the roadmap looks like.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Becoming a frontend developer takes time and consistent practice. At first, it might feel overwhelming, but with patience, you'll see progress. The key is &lt;strong&gt;building projects&lt;/strong&gt;, &lt;strong&gt;asking for help&lt;/strong&gt;, and &lt;strong&gt;staying persistent&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;For more in-depth knowledge, explore these resources:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;Git Official Website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTML" rel="noopener noreferrer"&gt;MDN Web Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/the-complete-guide-to-html/" rel="noopener noreferrer"&gt;The Complete Guide to HTML&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS" rel="noopener noreferrer"&gt;MDN Web Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-tricks.com/" rel="noopener noreferrer"&gt;CSS Tricks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/css-the-complete-guide-incl-flexbox-grid-sass/" rel="noopener noreferrer"&gt;CSS - The Complete Guide 2025 (incl. Flexbox, Grid &amp;amp; Sass)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CSS Framework&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://getbootstrap.com/" rel="noopener noreferrer"&gt;Bootstrap&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ant.design/" rel="noopener noreferrer"&gt;Ant Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mui.com/" rel="noopener noreferrer"&gt;Material UI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Javascript&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://eloquentjavascript.net/" rel="noopener noreferrer"&gt;Eloquent Javascript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://javascript.info/" rel="noopener noreferrer"&gt;Javascript Info&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript" rel="noopener noreferrer"&gt;MDN Javascript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/the-complete-javascript-course/" rel="noopener noreferrer"&gt;The Complete JavaScript Course 2025: From Zero to Expert!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/javascript-the-complete-guide-2020-beginner-advanced/" rel="noopener noreferrer"&gt;JavaScript - The Complete Guide 2025 (Beginner + Advanced)
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;React&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://react.dev/" rel="noopener noreferrer"&gt;React Official Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://scrimba.com/learn-react-c0e" rel="noopener noreferrer"&gt;Scrimba&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/react-the-complete-guide-incl-redux/" rel="noopener noreferrer"&gt;React - The Complete Guide 2025 (incl. Next.js, Redux)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/the-ultimate-react-course/" rel="noopener noreferrer"&gt;The Ultimate React Course 2024: React, Next.js, Redux &amp;amp; More&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;NextJs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/" rel="noopener noreferrer"&gt;NextJS Official Website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Typescript&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.typescriptlang.org/" rel="noopener noreferrer"&gt;Typescript Official Website&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤝 Contributing
&lt;/h2&gt;

&lt;p&gt;Found this helpful? &lt;br&gt;
Consider sharing it with your network! &lt;br&gt;
If you spot any errors or have suggestions for improvement, feel free to leave a comment below.&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>frontend</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
