How to Flatten git Commits
One of my least favorite tasks as a software engineer is resolving merge conflicts. A simple rebase is a frequent occurrence but the rare massive conflict is inevitable when many engineers work in a single codebase. One thing that helps me deal with large rebases with many merge conflicts is flattening a branch's commits before fixing merge conflicts. Let's have a look at how to flatten those commits before resolving those conflicts!
My typical command for rebasing off of the main branch is:
# While on the feature branch...
git rebase -i master
To flatten commits before the rebase, which can make resolving merge conflicts easier, you can slightly modify the original command:
# While on the feature branch...
# git rebase -i HEAD~[NUMBER_OF_COMMITS]
git rebase -i HEAD~10
The example above would flatten the last 10 commits on the branch. With just one single commit, you avoid the stop-start nature of fixing merge conflicts with multiple commits!
![CSS @supports]()
Feature detection via JavaScript is a client side best practice and for all the right reasons, but unfortunately that same functionality hasn't been available within CSS. What we end up doing is repeating the same properties multiple times with each browser prefix. Yuck. Another thing we...
![Introducing MooTools Templated]()
One major problem with creating UI components with the MooTools JavaScript framework is that there isn't a great way of allowing customization of template and ease of node creation. As of today, there are two ways of creating:
new Element Madness
The first way to create UI-driven...
![Introducing MooTools NextPrev]()
One thing I love doing is duplicating OS functionalities. One of the things your OS allows you to do easily is move from one item to another. Most of the time you're simply trying to get to the next or the previous item.
![Create a CSS Cube]()
CSS cubes really showcase what CSS has become over the years, evolving from simple color and dimension directives to a language capable of creating deep, creative visuals. Add animation and you've got something really neat. Unfortunately each CSS cube tutorial I've read is a bit...
Some of the code in my previous comment got stripped out. The command I use to merge a branch into master while flattening it to a single commit is:
Seems there are always multiple ways to do things, especially in Git.
Also it’s possible to select all commits that belongs to this branch after creation from the parent branch and don’t select count of them by hands with the following:
It’s useful if you want to do that prior to merge