|
|
|
|
|
by sillysaurus3
3184 days ago
|
|
Nah, I agree. Solid argument. So, all dev happens in feature branches, and they're integrated into master as squash commits. That just leaves two questions: - Use release branches? Or just take the shotgun approach of "everything in master has to be working all the time"? - When a problem inevitably pops up and you have to roll back, how do you kill just one commit? It's already been pushed to the repo, so a hard reset wouldn't be a good idea, right? So I guess that points to using release branches. |
|
If that does not work in reality, or breaking it would simply cost too much (because mistakes will happen), I'd use release branch or use git tag to mark versions with "no really, this one really truly actually works in every way".
For your second point, see 'git revert'! It does exactly that, i.e. picks a commit and effectively removes it from a branch by making its "mirror commit". The other way is, of course, just deploying an actual fix asap, git revert is just for when fixing the problem is for some reason or other slow and master must be unbroken immediately.