Recovering From a Git Mistake and Returning to Stability
WEEK 15
Felipe de Souza
12/21/2025
This week was very different compared to the previous one. I didn’t push a lot of new technical work, and that’s okay — progress isn’t always measured by commits. There were several challenges in both my personal and professional life that slowed my momentum. At work, three of my stores lost power, and I had to respond quickly to prevent product loss. The stress of that situation, combined with the pressure of balancing school, work, and life, triggered a bit of a depressive flare-up, and I needed time to breathe.
Despite that, I eventually found a spark of motivation and decided to address something that had been bothering me all week: I accidentally merged a teammate’s branch into mine without checking if it was working. This one mistake completely broke the code we completed last week and reported on in my previous blog post. That was a tough moment — there’s nothing worse than losing progress.
Once I sat down with a clear head, I started doing research into how to revert my branch back to a previous commit. I quickly realized that because I pushed the merge to my remote branch, I needed to reset both local and remote history. That sent me down a pretty deep Git rabbit hole.
The turning point was teaming up with Stephen, who helped walk through the logic of creating a backup branch to preserve the current state while we analyzed file differences. With some suggestions from our instructor Patrick, we finally restored the branch to a working state. I learned how to do a hard reset, confirm history, and re-push the branch without losing track of the commit we needed.
To better understand Git and avoid repeating this mistake, I also downloaded GitHub Desktop and started exploring the visual side of source control. I’m still very early in my learning, but already it feels helpful to see what’s happening instead of relying only on terminal commands.
This week didn’t involve major new features, but I’m leaving it with something equally valuable: experience, perspective, and a reminder that refocusing is just as important as sprinting forward.
Reflection
What I learned this week reinforces something important — software development isn’t just writing code. It’s debugging, collaborating, recovering from mistakes, improving processes, and understanding tools deeply enough to navigate unexpected problems.
Even though this wasn’t my most productive technical week, getting my branch back to a working state was a win. And learning how to prevent these mistakes moving forward is worth the time it took to get here.
Tools Explored
Git hard resets
Branch backup and comparison strategies
Commit restoration
Github Desktop Interface
Resources Utilized
Git documentation: https://git-scm.com/docs
Github desktop documentation: https://docs.github.com/en/desktop
Going Forward
Now that my branch is stable again, I plan to shift back into feature development. The next major milestone is building out the month view portion of the Reminders system. This will continue the process of removing the remaining test user data and fully connecting the entire Calendar experience to our Firebase backend. With the groundwork in place and the repository clean, I’m ready to move forward with real functionality instead of placeholder logic.
Explore
Discover my journey as a software engineer.
© 2025. All rights reserved.