<?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: Muhammad Thabsheer N P</title>
    <description>The latest articles on DEV Community by Muhammad Thabsheer N P (@mthabsheernp).</description>
    <link>https://dev.to/mthabsheernp</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%2F798912%2F5d0e11f8-e414-4fff-b723-7622f82c29b1.png</url>
      <title>DEV Community: Muhammad Thabsheer N P</title>
      <link>https://dev.to/mthabsheernp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mthabsheernp"/>
    <language>en</language>
    <item>
      <title>Mastering Git Workflows: Beyond Basic Commands</title>
      <dc:creator>Muhammad Thabsheer N P</dc:creator>
      <pubDate>Thu, 09 Jan 2025 14:02:57 +0000</pubDate>
      <link>https://dev.to/mthabsheernp/mastering-git-workflows-beyond-basic-commands-3njp</link>
      <guid>https://dev.to/mthabsheernp/mastering-git-workflows-beyond-basic-commands-3njp</guid>
      <description>&lt;p&gt;Hey devs! 👋 I'm Thabsheer, a 24-year-old developer from Bangalore. After messing up our team's git repo multiple times in my past(yeah, I'm looking at you, force push 😅), I've learned some proper git workflows that saved my life(and work). Let me share what I wish someone had told me when I started.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Day I Broke Production
&lt;/h2&gt;

&lt;p&gt;So there I was, confidently typing&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;because Stack Overflow said it would fix my issues. Narrator: It did not fix the issues. Instead, I managed to overwrite our main branch and got some angry Teams messages from our senior dev. That's when I realized I needed to actually understand git workflows properly.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Basics We Already Know
&lt;/h2&gt;

&lt;p&gt;I'm assuming you already know these commands (if not, no worries, we all start somewhere!):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m "feat: added something cool"
git push
git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Good Stuff: Workflows That Actually Matter
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Feature Branch Workflow (The Lifesaver)&lt;/strong&gt;&lt;br&gt;
This is what helped me stop breaking things. Instead of working directly on main:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Create a new feature branch
git checkout -b feature/auth-fixes

# Make your changes and commit
git add .
git commit -m "fix: resolved login issues"

# Update your branch with latest main changes
git checkout main
git pull
git checkout feature/auth-fixes
git rebase main

# Push your changes
git push origin feature/auth-fixes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pro tip: Always rebase before creating a PR. Trust me, your reviewers will thank you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Fixing Mess-Ups (Because We All Make Them)&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The "Oops Wrong Branch" Scenario&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Save your changes without committing
git stash

# Move to correct branch
git checkout correct-branch

# Apply your changes here
git stash pop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The "My Commit Message is Embarrassing" Fix&lt;/strong&gt;&lt;br&gt;
Do this if you want to fix your last commit message.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Fix the last commit message
git commit --amend -m "fix: proper commit message"

# Fix older commit messages (interactive rebase)
git rebase -i HEAD~3  # Shows last 3 commits
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. The Life-Saving Git Aliases&lt;/strong&gt;&lt;br&gt;
Add these to your .gitconfig file (took me 6 months to discover these exist 🤦‍♂️):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[alias]
    st = status
    co = checkout
    br = branch
    unstage = reset HEAD --
    last = log -1 HEAD
    undo = reset --soft HEAD~1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. When Things Go Really Wrong&lt;/strong&gt;&lt;br&gt;
Ever had that moment when you realize you just committed sensitive data? Here's what to do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Remove the file from git history
git filter-branch --force --index-filter \
"git rm --cached --ignore-unmatch path/to/sensitive-file" \
--prune-empty --tag-name-filter cat -- --all

# Then force push (only time it's okay!)
git push origin --force --all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Things I Learned the Hard Way
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Never force push to main branch (learned this one after that incident I mentioned 😅)&lt;/li&gt;
&lt;li&gt;Always pull before starting new work&lt;/li&gt;
&lt;li&gt;Commit messages matter - your future self will thank you&lt;/li&gt;
&lt;li&gt;Rebase is your friend, merge is also your friend - just know when to use which&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Daily Git Workflow I Follow Now
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Morning: &lt;code&gt;git pull origin main&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Create feature branch for new task&lt;/li&gt;
&lt;li&gt;Regular commits with proper messages&lt;/li&gt;
&lt;li&gt;Rebase with main before PR&lt;/li&gt;
&lt;li&gt;Push changes and create PR&lt;/li&gt;
&lt;li&gt;Address review comments in new commits&lt;/li&gt;
&lt;li&gt;Squash commits before merging&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Look, I'm still learning (aren't we all?), but these workflows have saved me from many embarrassing situations. The key is to understand what you're doing rather than blindly copying commands from Stack Overflow (guilty as charged!).&lt;/p&gt;

&lt;p&gt;Have you ever broken your team's repo? Drop a comment below - let's share our git horror stories! 😄&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources That Helped Me&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git documentation (yes, I finally read it 😅)&lt;/li&gt;
&lt;li&gt;My team's angry Teams messages&lt;/li&gt;
&lt;li&gt;Stack Overflow (but with caution!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;P.S.: If you found this helpful, follow me for more real-life dev stories and tutorials. Thanks for reading!&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>bitbucket</category>
    </item>
    <item>
      <title>Best android development course for beginners.</title>
      <dc:creator>Muhammad Thabsheer N P</dc:creator>
      <pubDate>Mon, 24 Jan 2022 12:22:50 +0000</pubDate>
      <link>https://dev.to/mthabsheernp/best-android-development-course-for-beginners-1kpk</link>
      <guid>https://dev.to/mthabsheernp/best-android-development-course-for-beginners-1kpk</guid>
      <description>&lt;h2&gt;
  
  
  The entry point
&lt;/h2&gt;

&lt;p&gt;It was at the end of 2021 I thought about entering into android development. The Google Student Club at my college introduced a program called &lt;a href="https://gdg.community.dev/events/details/google-gdg-samarkand-presents-android-study-jam/" rel="noopener noreferrer"&gt;Android Study Jam&lt;/a&gt;, I thought why not give it a try. I was surprised about the whole course content, that it consists of an amazing number of codelabs and activities.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Beginner's capsule to step into Android
&lt;/h2&gt;

&lt;p&gt;When it comes to native android development, you have two options: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Kotlin&lt;/li&gt;
&lt;li&gt;Java&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I chose Kotlin as it had a small advantage over Java in terms of beginner-friendliness. &lt;/p&gt;

&lt;p&gt;Throughtout the course you will get the complete idea of how an android app is built, by doing it yourselves from scratch. The course consists of 6 pathways. In each of it, you will learn about the key concepts used in app development.&lt;/p&gt;

&lt;p&gt;In each pathway you can find a number of badges. You need to earn badges inorder to complete the pathways. Badges are earned by completing the tutorials and codelabs, and there will be a quiz at the end of each activity which tests your understanding about that particular concept. You will get an opportunity to build cool projects throughout the pathways. Each badge have a final project, which you will do by yourself. That's cool right?.&lt;/p&gt;

&lt;p&gt;You can checkout the courses page &lt;a href="https://developer.android.com/courses" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;It was an awesome journey for me. I completed the whole course in about a month, and I have gained some confidence about android development. I want to upgrade my knowledge stack by doing some cool projects by using the knowledge i gained throughout the course ;).&lt;/p&gt;

&lt;p&gt;If you are a beginner or a professional who wants to step into android development, &lt;a href="https://developer.android.com/courses" rel="noopener noreferrer"&gt;this&lt;/a&gt; is the right course to do. You won't regret it.&lt;/p&gt;

&lt;p&gt;Cheers.&lt;br&gt;
(Don't forget to share your experience if you have tried the course, as it will help many who are new to this.)&lt;/p&gt;

</description>
      <category>android</category>
      <category>kotlin</category>
      <category>google</category>
      <category>beginners</category>
    </item>
    <item>
      <title>My first step into the world of developing.</title>
      <dc:creator>Muhammad Thabsheer N P</dc:creator>
      <pubDate>Wed, 19 Jan 2022 12:17:12 +0000</pubDate>
      <link>https://dev.to/mthabsheernp/my-first-step-into-the-world-of-developing-1o70</link>
      <guid>https://dev.to/mthabsheernp/my-first-step-into-the-world-of-developing-1o70</guid>
      <description>&lt;p&gt;When I completed my high school in 2016, I thought about what next?. I had no ambitions, no dreams (actually I haven't thought about it seriously). The thought of becoming a developer or to start learning computer science came from my love for video games. I always wondered how people make such things. I enrolled for a 2 month course after high school at the age of 16 (yeah that's a bit late to start learning about programming in these days :! ).&lt;/p&gt;

&lt;p&gt;The course consisted of basic programming using C, Visual Basic, and also some concepts of DBs using mySQL. It was a bit difficult for me at first, but gradually I learned. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My first application&lt;/strong&gt;&lt;br&gt;
Throughout the course I learned simple programming like creating programs for some of the common problems like Binary search, sorting, etc. But the highlight for me was the project I made as part of the course. It was a simple project, I am not hyping it up(hehe). I built a scientific calculator using Visual Basic. Yeah that was my first step into building something out of code.&lt;/p&gt;

&lt;p&gt;Yep, that's pretty much it. This was the story of my entry into the wrold of developing.&lt;/p&gt;

&lt;p&gt;How did you started developing? ;-)&lt;br&gt;
Please be open to share your story too in the form of comments below.&lt;/p&gt;

</description>
      <category>c</category>
      <category>python</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
