I get asked pretty regularly what my opinion is on merge commits vs rebasing vs squashing. I've typed up this response so many times that I've decided to just put it in a gist so I can reference it whenever it comes up again.
I use merge, squash, rebase all situationally. I believe they all have their merits but their usage depends on the context. I think anyone who says any particular strategy is the right answer 100% of the time is wrong, but I think there is considerable acceptable leeway in when you use each. What follows is my personal and professional opinion:
DOCKER_COMPOSE=docker compose | |
.DEFAULT_GOAL := help | |
##help: List available tasks on this project | |
help: | |
@echo "" | |
@echo "These are the available commands" | |
@echo "" | |
@grep -E '\#\#[a-zA-Z\.\-]+:.*$$' $(MAKEFILE_LIST) \ | |
| tr -d '##' \ |
This is a collection of the things I believe about software development. I have worked for years building backend and data processing systems, so read the below within that context.
Agree? Disagree? Feel free to let me know at @JanStette.
Keep it simple, stupid. You ain't gonna need it.
<?php | |
require_once __DIR__ . '/vendor/autoload.php'; | |
$namespace = 'PutYourProjectNamespaceHere\\'; | |
foreach (new RegexIterator(new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__ . '/src')), '/^.+\.php$/i', RecursiveRegexIterator::GET_MATCH) as $file) { | |
require_once $file[0]; | |
} |
<?php | |
namespace Zalas\Bundle\PackagistBundle\Command; | |
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; | |
use Symfony\Component\Console\Input\InputInterface; | |
use Symfony\Component\Console\Input\InputOption; | |
use Symfony\Component\Console\Output\OutputInterface; | |
class FindPackageListsCommand extends ContainerAwareCommand |
define([ | |
// models | |
'models/someModel', 'models/someOtherModel', | |
// collections | |
'collections/someCollection', | |
// views | |
'views/someView', 'views/someOtherView', | |
// templates | |
'text!templates/someTemplate.html', 'text!templates/someOtherTemplate.html', |