{"id":27629,"date":"2017-05-28T11:35:51","date_gmt":"2017-05-28T09:35:51","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=27629"},"modified":"2017-05-28T11:35:51","modified_gmt":"2017-05-28T09:35:51","slug":"gitflow-considered-harmful-and-how-we-do-it","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/","title":{"rendered":"GitFlow considered harmful, and how we do it"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>I came across this rather strongly opinionated blog post &#8211;\u00a0<a href=\"http:\/\/endoflineblog.com\/gitflow-considered-harmful\">GitFlow considered harmful<\/a>, and I have to say that I mostly agree with it.<\/p>\n<p>In <a href=\"https:\/\/www.qobo.biz\/\">our company<\/a>, we use a similar approach to the Anti-gitflow, but with even more simplicity. \u00a0This is one particular thing I like so much about git is that each person, team, or company can pick the workflow that suits them best.<\/p>\n<p>Just to give you a little bit of context, we have a rather small development team (under 10 people), but we do a large number of projects. \u00a0All our projects are web-based, varying from small and simple websites (static HTML), through more complex WordPress sites (multilingual, e-commerce, etc), to business applications like CRMs. \u00a0Each project is done by several developers at a time and can later on be passed on to other developers, often much later (another iteration after several month). \u00a0Each developer is working on a number of projects at a time. \u00a0And we do very fast-paced development, often deploying multiple versions per day. \u00a0Given the nature of the projects and the development pace, we don&#8217;t ever really rollback. \u00a0Rollback is just another step (version) forward. \u00a0And we don&#8217;t have long and complex roadmaps in terms of which features will be released in which version. \u00a0It&#8217;s more of a constant review of what&#8217;s pending, what needs which resources, and what we can do right now. \u00a0(It&#8217;s far from ideal project management, but it somehow works for us. \u00a0If you think you can do better, send me your CV or LinkedIn profile, and we&#8217;ll talk.)<\/p>\n<p>In our case, we do the following:<\/p>\n<ul>\n<li>We have one eternal branch, and we call it <strong>master<\/strong>.<\/li>\n<li>The <strong>master branch is always stable<\/strong> and deployable. \u00a0Even though we don&#8217;t really deploy it directly.<\/li>\n<li>Nobody is allowed to commit directly to the master branch. \u00a0Initially it was just an agreed convention, but because people make mistakes, we now have this rule enforced with the technology. \u00a0Both BitBucket and <a href=\"https:\/\/github.com\/blog\/2051-protected-branches-and-required-status-checks\">GitHub<\/a> support protected branches. \u00a0BitBucket, in my opinion, does it much better.<\/li>\n<li>All new features, fixes, and improvements are developed in separate &#8220;feature&#8221; branches. \u00a0Most of these are branched off the master. \u00a0For large chunks of work, we can create a feature branch, and then introduce incremental changes to it via sub-feature branches, branched off the feature one. \u00a0This allows for easier code reviews &#8211; looking at a smaller set of changes, rather than a giant branch when it&#8217;s ready to be merged.<\/li>\n<li>We do code review on everything. \u00a0The strongly suggested rule is that at least two other developers review the code before it is merged. \u00a0But sometimes, this is ignored, because either the changes are small and insignificant (CSS tweaks or content typos), or we are really in a hurry (we&#8217;ll review the changes later). \u00a0But whatever the case is, nobody is allowed to merge their own pull requests. \u00a0That is set in stone. \u00a0This guarantees that at least one other person looked at the changes before they were merged in.<\/li>\n<li>We tag new versions only on the master branch.<\/li>\n<li>We use <a href=\"http:\/\/semver.org\/\">semantic versioning<\/a> for our tags.<\/li>\n<li>We don&#8217;t deploy branches. \u00a0We deploy tags. \u00a0This helps with preventing untested\/unexpected changes sneaking in between\u00a0the review of the branch and the deployment.<\/li>\n<\/ul>\n<p>The above process suits us pretty well.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>I came across this rather strongly opinionated blog post &#8211;\u00a0GitFlow considered harmful, and I have to say that I mostly agree with it. In our company, we use a similar approach to the Anti-gitflow, but with even more simplicity. \u00a0This is one particular thing I like so much about git is that each person, team, &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">GitFlow considered harmful, and how we do it<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"GitFlow considered harmful, and how we do it #git #VersionControl #collaboration #WebDev","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[3395,3179,2265,2809,3178,1588,1330],"keyring_services":[],"class_list":["post-27629","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-bitbucket","tag-collaboration","tag-git","tag-github","tag-project-management","tag-version-control","tag-web-development"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"I came across this rather strongly opinionated blog post - GitFlow considered harmful, and I have to say that I mostly agree with it. In our company, we use a similar approach to the Anti-gitflow, but with even more simplicity. This is one particular thing I like so much about git is that each person, team,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"GitFlow considered harmful, and how we do it - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"I came across this rather strongly opinionated blog post - GitFlow considered harmful, and I have to say that I mostly agree with it. In our company, we use a similar approach to the Anti-gitflow, but with even more simplicity. This is one particular thing I like so much about git is that each person, team,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2017-05-28T09:35:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2017-05-28T09:35:51+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"GitFlow considered harmful, and how we do it - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"I came across this rather strongly opinionated blog post - GitFlow considered harmful, and I have to say that I mostly agree with it. In our company, we use a similar approach to the Anti-gitflow, but with even more simplicity. This is one particular thing I like so much about git is that each person, team,\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#blogposting\",\"name\":\"GitFlow considered harmful, and how we do it - Leonid Mamchenkov\",\"headline\":\"GitFlow considered harmful, and how we do it\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"},\"datePublished\":\"2017-05-28T11:35:51+02:00\",\"dateModified\":\"2017-05-28T11:35:51+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":4,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, Web work, BitBucket, collaboration, git, GitHub, project management, version control, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#listItem\",\"name\":\"GitFlow considered harmful, and how we do it\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#listItem\",\"position\":4,\"name\":\"GitFlow considered harmful, and how we do it\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/\",\"name\":\"GitFlow considered harmful, and how we do it - Leonid Mamchenkov\",\"description\":\"I came across this rather strongly opinionated blog post - GitFlow considered harmful, and I have to say that I mostly agree with it. In our company, we use a similar approach to the Anti-gitflow, but with even more simplicity. This is one particular thing I like so much about git is that each person, team,\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/05\\\/28\\\/gitflow-considered-harmful-and-how-we-do-it\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2017-05-28T11:35:51+02:00\",\"dateModified\":\"2017-05-28T11:35:51+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"GitFlow considered harmful, and how we do it - Leonid Mamchenkov","description":"I came across this rather strongly opinionated blog post - GitFlow considered harmful, and I have to say that I mostly agree with it. In our company, we use a similar approach to the Anti-gitflow, but with even more simplicity. This is one particular thing I like so much about git is that each person, team,","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#blogposting","name":"GitFlow considered harmful, and how we do it - Leonid Mamchenkov","headline":"GitFlow considered harmful, and how we do it","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"},"datePublished":"2017-05-28T11:35:51+02:00","dateModified":"2017-05-28T11:35:51+02:00","inLanguage":"en-US","commentCount":4,"mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#webpage"},"articleSection":"All, Programming, Technology, Web work, BitBucket, collaboration, git, GitHub, project management, version control, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#listItem","name":"GitFlow considered harmful, and how we do it"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#listItem","position":4,"name":"GitFlow considered harmful, and how we do it","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/","name":"GitFlow considered harmful, and how we do it - Leonid Mamchenkov","description":"I came across this rather strongly opinionated blog post - GitFlow considered harmful, and I have to say that I mostly agree with it. In our company, we use a similar approach to the Anti-gitflow, but with even more simplicity. This is one particular thing I like so much about git is that each person, team,","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2017-05-28T11:35:51+02:00","dateModified":"2017-05-28T11:35:51+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"GitFlow considered harmful, and how we do it - Leonid Mamchenkov","og:description":"I came across this rather strongly opinionated blog post - GitFlow considered harmful, and I have to say that I mostly agree with it. In our company, we use a similar approach to the Anti-gitflow, but with even more simplicity. This is one particular thing I like so much about git is that each person, team,","og:url":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2017-05-28T09:35:51+00:00","article:modified_time":"2017-05-28T09:35:51+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"GitFlow considered harmful, and how we do it - Leonid Mamchenkov","twitter:description":"I came across this rather strongly opinionated blog post - GitFlow considered harmful, and I have to say that I mostly agree with it. In our company, we use a similar approach to the Anti-gitflow, but with even more simplicity. This is one particular thing I like so much about git is that each person, team,","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"27629","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-20 04:40:40","updated":"2026-01-15 12:58:32","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tGitFlow considered harmful, and how we do it\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"GitFlow considered harmful, and how we do it","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/28\/gitflow-considered-harmful-and-how-we-do-it\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":29025,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/11\/25\/sr-ht-sir-hat-open-source-software-suite-for-managing-your-software-development-projects\/","url_meta":{"origin":27629,"position":0},"title":"sr.ht (&#8220;sir hat&#8221;) &#8211; open source software suite for managing your software development projects","author":"Leonid Mamchenkov","date":"November 25, 2018","format":false,"excerpt":"sr.ht - pronounced \"sir hat\" - is a new competitor in the world of GitHub, BitBucket, and GitLab.\u00a0 Much like all of these, you can either self-hosted it or use a managed service.\u00a0 It might not yet be as fancy, polished, and cool (I think they need a better name\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/11\/sr.ht_-500x408.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27845,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/14\/pre-commit-a-framework-for-managingmulti-language-git-pre-commit-hooks\/","url_meta":{"origin":27629,"position":1},"title":"pre-commit &#8211; a framework for managingmulti-language git pre-commit hooks","author":"Leonid Mamchenkov","date":"August 14, 2017","format":false,"excerpt":"From the pre-commit homepage: Git hook scripts are useful for identifying simple issues before submission to code review. We run our hooks on every commit to automatically point out issues in code such as missing semicolons, trailing whitespace, and debug statements. By pointing these issues out before code review, this\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28480,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/04\/18\/why-sqlite-does-not-use-git\/","url_meta":{"origin":27629,"position":2},"title":"Why SQLite Does Not Use Git","author":"Leonid Mamchenkov","date":"April 18, 2018","format":false,"excerpt":"Git is a pretty much standard de facto for version control when it comes to the modern software development.\u00a0 Yet, there are still many projects, companies, and developers who don't use it.\u00a0 Some, like WordPress, for historical reasons - it'll take a lot of work to migrate all of the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27460,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/03\/26\/composer-git-hooks-manage-git-hooks-in-your-composer-config\/","url_meta":{"origin":27629,"position":3},"title":"composer-git-hooks &#8211; manage git hooks in your composer config","author":"Leonid Mamchenkov","date":"March 26, 2017","format":false,"excerpt":"composer-git-hooks looks awesome! \u00a0From the project page description: Manage git hooks easily in your composer configuration. This package makes it easy to implement a consistent project-wide usage of git hooks. Specifying hooks in the composer file makes them available for every member of the project team. This provides a consistent\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28607,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/","url_meta":{"origin":27629,"position":4},"title":"git worktree &#8211; a better way for git stash abusers","author":"Leonid Mamchenkov","date":"June 6, 2018","format":false,"excerpt":"If you constantly find yourself using \"git stash\" while working on a project, or, even worse - have multiple copies of the same project cloned on the same machine, \"git worktree\" might be a much better alternative for you. Manage multiple working trees attached to the same repository. A git\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git-500x238.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":26280,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/07\/24\/git-from-the-inside-out\/","url_meta":{"origin":27629,"position":5},"title":"Git from the inside out","author":"Leonid Mamchenkov","date":"July 24, 2016","format":false,"excerpt":"Git from the inside out - must be the best thing I've ever seen on how git works. \u00a0Everybody knows that git is awesome. \u00a0Most know that git is implemented with graphs. \u00a0But not many know how exactly git stores the project history and how it is affected by different\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"git","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/07\/git-500x149.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=27629"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27629\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=27629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=27629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=27629"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=27629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}