Author Archives: Kenneth Onyema

Quarter 3

As I am approaching the end of the semester, I have been doing a lot of group activities on GitLab with my teammates. Switching roles and getting to know one another more while taking on the task we needed to. Working on Exam 2 and finishing that to access our knowledge then learning more about the different types code people write and how it can affect the entire team.

For the final few days of the semester, we will continue to put our skills to the test with these various challenges and fix some of our old code issues. I’ll finish off this semester strong!

From the blog cs@worcester – Software Development by Kenneth Onyema and used with permission of the author. All other rights reserved by the author.

Quarter 2 Blog

Git bisect turns the often painful process of “when did this bug creep in?” into a systematic detective job. With just two reference commits — one known good, one known bad — it lets you binary-search through your project’s history, test just a handful of commits, and land on the exact commit that caused the regression.

For developers working on nontrivial projects — multiple contributors, long histories, frequent changes — git bisect is one of those under-appreciated but powerful tools. It doesn’t replace careful code review or good commit hygiene — but when something breaks, it can save you hours, even days, compared to manual debugging. For developers working on nontrivial projects — multiple contributors, long histories, frequent changes — git bisect is one of those under-appreciated but powerful tools. It doesn’t replace careful code review or good commit hygiene — but when something breaks, it can save you hours, even days, compared to manual debugging.

What makes git bisect so valuable is not just the time you save, but the confidence it gives you in understanding when a bug was introduced. Instead of guessing, scrolling through commit logs, or trying to recall what you changed three weeks ago, you rely on a proven algorithm: binary search. This means that whether your repository has ten commits or ten thousand, you’ll narrow down the culprit quickly. Many developers are surprised to discover they only need to test a handful of commits before git bisect pinpoints the exact moment things went wrong.

The workflow itself is remarkably simple. After identifying your known good and known bad points in history, you start bisecting. Git takes you to the midpoint commit, and you run whatever test—or manual check—reveals the bug. Based on whether the bug appears, you mark the commit good or bad. Git narrows the range and takes you to the next candidate. This process continues until only one commit remains: the one where the bug was introduced. The elegance is in the repetition. Git does the heavy lifting while you simply provide yes/no answers. Beyond its practical benefits, git bisect also reinforces better development habits. When you see exactly how helpful small, atomic commits are—or how painful vague or bloated commits can be—you naturally start writing cleaner, more meaningful commit histories. And when a bug is tracked down quickly and precisely, it encourages the whole team to trust the process rather than fear broken code.

In a world where software grows more complex every day, debugging tools that bring clarity are invaluable. Git bisect isn’t flashy, but it’s one of the most reliable debugging companions a developer can have. If you’ve never used it before, learning it just once can save you countless hours in the future—and make you feel like a code detective each time a mystery bug appears.
Citation: YouTube, http://www.youtube.com/watch?v=Q-kqm0AgJZ8. Accessed 10 Dec. 2025.

From the blog cs@worcester – Software Development by Kenneth Onyema and used with permission of the author. All other rights reserved by the author.

Quarter 1 Blog

What I learned about GitKit — and Git in general — is that at its core, Git is far more than a simple save system or backup tool. It’s a version control system designed around a clear mental model of where your code lives and how it moves over time. Instead of treating your files as static or scattered across folders and servers, Git defines a structured flow. The video highlights a crucial insight: your code doesn’t just sit on your machine or up in the cloud. It travels through four distinct zones, each with its own purpose.

Once you understand these four zones, commands like add, commit, push, checkout, and merge stop feeling like magical spells. Instead, Git becomes a kind of conveyor belt for snapshots of your work, letting you decide exactly what moves forward, what stays behind, and how your history is shaped. This simple shift in perspective is what makes Git finally “click” for so many learners.

1. Working Directory

This is the space you interact with directly — your actual files on your computer. Nothing Git-specific happens here by default. You write code, delete code, reorganize files, and make changes freely. Git simply observes this area without acting on it until you tell it to.

2. Staging Area (Index)

The staging area is where Git starts to get involved. When you run git add, you’re not saving your work yet — you’re preparing it. Think of this step like placing items in a shopping cart. You can choose exactly what changes you want to include, leaving out anything not ready. This selective process is what gives Git its power: it allows clean, intentional commits rather than chaotic snapshots of everything you happened to edit.

3. Local Repository

A commit moves your staged changes into the local repository, creating a permanent, versioned checkpoint. Each commit is like a frozen photograph of your project at a moment in time. This means you can revisit earlier states, compare versions, undo mistakes, and track progress — all without affecting what’s currently happening in your working directory.

4. Remote Repository

When you push, your commits travel from your machine to a remote server like GitHub, GitLab, or Bitbucket. This is essential for backup and collaboration. Your work becomes shareable, reviewable, and synchronized across teams. Others can fetch or pull these updates, ensuring everyone stays aligned.

This is a four-tier structure — working directory → staging → local repo → remote repo — is the backbone of Git’s design. It provides fine-grained control over your workflow, allowing you to experiment safely, document your progress, and collaborate confidently.
Citation: YouTube. (n.d.). YouTube. https://www.youtube.com/watch?v=e9lnsKot_SQ

From the blog cs@worcester – Software Development by Kenneth Onyema and used with permission of the author. All other rights reserved by the author.

First Post

From the blog cs@worcester – Software Development by Kenneth Onyema and used with permission of the author. All other rights reserved by the author.