Series: Getting geeky with Git

Git JavaScript

Getting geeky with Git #1. Remotes and upstream branches

This entry is part 1 of 11 in the Getting geeky with Git

Version control systems (VCS) are one of the essential tools of every programmer. The most popular one is Git, and therefore it is worth looking into it a bit more. In this article, we look into what is a remote and what the origin keyword means. We also check out what is an upstream branch and how we can benefit […]

Git

Getting geeky with Git #2. Building blocks of a commit

This entry is part 2 of 11 in the Getting geeky with Git

As a developer, there is a high chance that you use Git every day. It means saving changes through commits. In this article, we look into what are their building blocks. This includes looking into the filesystem of Git and learning about different states of files. Git is a Distributed Version Control System To understand what […]

Git

Getting geeky with Git #3. The branch is a reference

This entry is part 3 of 11 in the Getting geeky with Git

Branches are the bread and butter of a software developer using a Version Control System (VCS) of any kind. Today we explore how they work in Git. In the previous part of this series, we’ve learned that a commit is a full snapshot of the project state. In Git, the branch is a pointer to a […]

Git

Getting geeky with Git #4. Fast-forward merge and merge strategies

This entry is part 4 of 11 in the Getting geeky with Git

When working with branches, we often need to synchronize our changes. When doing so, we can implement different approaches. In this article, we explain how merging works and discuss various situations. During that, we will touch on the subject of the fast-forward merging and different merge strategies. The basics of merging The job of the   command […]

Git

Getting geeky with Git #5. Improving merge workflow with rebase

This entry is part 5 of 11 in the Getting geeky with Git

Merging is not the only utility that can integrate changes from one branch onto another. In this article, we look into rebasing and learn how we can use it as an alternative to merging. The basics of rebasing In the previous part of this series, we’ve learned that merging can result in an additional merge commit. This […]

Git

Getting geeky with Git #6. Interactive Rebase

This entry is part 6 of 11 in the Getting geeky with Git

In the previous part of this series, we’ve looked into how rebase can improve our merges. It is a lot more powerful, though, and can come in handy in other situations. In this article, we explore how to perform interactive rebasing. Introduction to the interactive rebase tool When doing an interactive rebase, we can modify existing […]

Git

Getting geeky with Git #7. Cherry Pick with Reflog

This entry is part 7 of 11 in the Getting geeky with Git

So far, we’ve covered a few different tools useful when rewriting the Git history, such as merging and rebasing. In this article, we go more in-depth and try cherry-picking. While doing so, we also learn how the reflog functionality works. Git Cherry Pick When we rebase or merge, we usually get all of the content of […]

Git

Getting geeky with Git #8. Improving our debugging flow with Bisect and Worktree

This entry is part 8 of 11 in the Getting geeky with Git

The debugging process is not always easy, and the bugs are sometimes difficult to track down. Fortunately, Git provides us with tools that might make this process easier. In this article, we learn both the worktree and bisect tools. Git Worktree Sometimes, when we focus on a new feature, a bug pops up in production. Unfortunately, this […]