{"id":29094,"date":"2018-12-13T23:23:49","date_gmt":"2018-12-13T21:23:49","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=29094"},"modified":"2018-12-13T23:23:56","modified_gmt":"2018-12-13T21:23:56","slug":"on-good-commit-messages","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/","title":{"rendered":"On good commit messages"},"content":{"rendered":"<!-- google_ad_section_start -->\n\n<p class=\"wp-block-paragraph\">The evolution goes on.\u00a0 Now that we&#8217;ve kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it&#8217;s time to look deeper into the things we&#8217;ve had for a while and reiterate over them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recently, I&#8217;m seeing a lot of blog posts on articles on how to write good commit messages.\u00a0 Sure, we&#8217;ve had these for a while.\u00a0 But lately things get a little bit more serious.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s <a href=\"https:\/\/habr.com\/company\/yandex\/blog\/431432\/\">one<\/a> (in Russian) that I&#8217;ve read recently.\u00a0 Here&#8217;s <a href=\"https:\/\/juffalow.com\/other\/write-good-git-commit-message\">another one<\/a> (in English) that shares some of the concepts and suggestions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What are they saying?\u00a0 Well, &#8220;write better commit messages&#8221;, obviously.\u00a0 But there are a couple of specific bits which I found interesting.\u00a0 They are:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.conventionalcommits.org\">Conventional Commits<\/a> &#8211; a specification for adding human and machine readable meaning to commit messages.<\/li><li><a href=\"http:\/\/commitizen.github.io\/cz-cli\/\">Commitizen<\/a>\u00a0(<em>git cz<\/em>) &#8211; a tool that help to write conventional commits.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For the skeptics among you, I slightly share your feeling.\u00a0 It does seem like a bit too much overhead.\u00a0 But as someone who works with an ever-growing team on a large number of projects, I think there is a place for it.\u00a0 It&#8217;ll take a while to integrate, update the process, and enforce the discipline, but I think it&#8217;s well worth it.\u00a0 At the very least, it deserves a try.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>The evolution goes on.\u00a0 Now that we&#8217;ve kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it&#8217;s time to look deeper into the things we&#8217;ve had for a while and reiterate over them. Recently, I&#8217;m seeing a lot of blog posts on articles on how to write good commit &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">On good commit messages<\/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":"On good commit messages #WebDev #git #VersionControl #BestPractices #collaboration","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":[3069,3179,2265,1588,1330],"keyring_services":[],"class_list":["post-29094","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-best-practices","tag-collaboration","tag-git","tag-version-control","tag-web-development"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"The evolution goes on. Now that we&#039;ve kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it&#039;s time to look deeper into the things we&#039;ve had for a while and reiterate over them. Recently, I&#039;m seeing a lot of blog posts on articles on how to write good commit\" \/>\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\/2018\/12\/13\/on-good-commit-messages\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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=\"On good commit messages - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"The evolution goes on. Now that we&#039;ve kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it&#039;s time to look deeper into the things we&#039;ve had for a while and reiterate over them. Recently, I&#039;m seeing a lot of blog posts on articles on how to write good commit\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/\" \/>\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=\"2018-12-13T21:23:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2018-12-13T21:23:56+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=\"On good commit messages - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"The evolution goes on. Now that we&#039;ve kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it&#039;s time to look deeper into the things we&#039;ve had for a while and reiterate over them. Recently, I&#039;m seeing a lot of blog posts on articles on how to write good commit\" \/>\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\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#blogposting\",\"name\":\"On good commit messages - Leonid Mamchenkov\",\"headline\":\"On good commit messages\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"},\"datePublished\":\"2018-12-13T23:23:49+02:00\",\"dateModified\":\"2018-12-13T23:23:56+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, Web work, best practices, collaboration, git, version control, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#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\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#listItem\",\"name\":\"On good commit messages\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#listItem\",\"position\":4,\"name\":\"On good commit messages\",\"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\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#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\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#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\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/\",\"name\":\"On good commit messages - Leonid Mamchenkov\",\"description\":\"The evolution goes on. Now that we've kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it's time to look deeper into the things we've had for a while and reiterate over them. Recently, I'm seeing a lot of blog posts on articles on how to write good commit\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/12\\\/13\\\/on-good-commit-messages\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2018-12-13T23:23:49+02:00\",\"dateModified\":\"2018-12-13T23:23:56+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":"On good commit messages - Leonid Mamchenkov","description":"The evolution goes on. Now that we've kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it's time to look deeper into the things we've had for a while and reiterate over them. Recently, I'm seeing a lot of blog posts on articles on how to write good commit","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/","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\/2018\/12\/13\/on-good-commit-messages\/#blogposting","name":"On good commit messages - Leonid Mamchenkov","headline":"On good commit messages","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"},"datePublished":"2018-12-13T23:23:49+02:00","dateModified":"2018-12-13T23:23:56+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/#webpage"},"articleSection":"All, Programming, Technology, Web work, best practices, collaboration, git, version control, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/#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\/2018\/12\/13\/on-good-commit-messages\/#listItem","name":"On good commit messages"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/#listItem","position":4,"name":"On good commit messages","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\/2018\/12\/13\/on-good-commit-messages\/#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\/2018\/12\/13\/on-good-commit-messages\/#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\/2018\/12\/13\/on-good-commit-messages\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/","name":"On good commit messages - Leonid Mamchenkov","description":"The evolution goes on. Now that we've kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it's time to look deeper into the things we've had for a while and reiterate over them. Recently, I'm seeing a lot of blog posts on articles on how to write good commit","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2018-12-13T23:23:49+02:00","dateModified":"2018-12-13T23:23:56+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":"On good commit messages - Leonid Mamchenkov","og:description":"The evolution goes on. Now that we've kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it's time to look deeper into the things we've had for a while and reiterate over them. Recently, I'm seeing a lot of blog posts on articles on how to write good commit","og:url":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/","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":"2018-12-13T21:23:49+00:00","article:modified_time":"2018-12-13T21:23:56+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"On good commit messages - Leonid Mamchenkov","twitter:description":"The evolution goes on. Now that we've kind of sorted out most of our infrastructure, development tools, flows and processes, I guess, it's time to look deeper into the things we've had for a while and reiterate over them. Recently, I'm seeing a lot of blog posts on articles on how to write good commit","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"29094","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 05:36:41","updated":"2026-01-15 13:56:45","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\tOn good commit messages\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":"On good commit messages","link":"https:\/\/mamchenkov.net\/wordpress\/2018\/12\/13\/on-good-commit-messages\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":24322,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/06\/09\/git-undo\/","url_meta":{"origin":29094,"position":0},"title":"git undo","author":"Leonid Mamchenkov","date":"June 9, 2015","format":false,"excerpt":"The GitHub Blog runs a very handy post:\u00a0How to undo (almost) anything with Git, which covers a variety of git scenarios which you'd want to undo - anything from typos in commit messages to handling of branches. If you don't feel like learning all that, have a look at gitjk\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\/2015\/06\/git-500x117.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":11510,"url":"https:\/\/mamchenkov.net\/wordpress\/2009\/02\/12\/a-better-world-with-multiple-inboxes-in-gmail\/","url_meta":{"origin":29094,"position":1},"title":"A better world with multiple inboxes in Gmail","author":"Leonid Mamchenkov","date":"February 12, 2009","format":false,"excerpt":"Google has recently added a super mega cool feature to Gmail - multiple inboxes.\u00a0 For me, it was an instant boost in productivity and huge improvement in the way I handle email. However, while I was sharing my excitement with friends and co-workers, I've received quite a few cold looks\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\/2009\/02\/multiple_inboxes.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27671,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/06\/08\/git-commit-good-practice\/","url_meta":{"origin":29094,"position":2},"title":"Git Commit Good Practice","author":"Leonid Mamchenkov","date":"June 8, 2017","format":false,"excerpt":"Open Stack wiki has an excellent guide on how to create good commits. \u00a0In a few places it is too specific to Open Stack development practices, but overall it's one of the best guides I've seen for any project using git. It is basically split into two sections. \u00a0One on\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\/2017\/06\/git_commit.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":26955,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/11\/25\/never-judge-a-programmer-by-their-commit-history\/","url_meta":{"origin":29094,"position":3},"title":"Never judge a programmer by their commit history","author":"Leonid Mamchenkov","date":"November 25, 2016","format":false,"excerpt":"In a comment to another post, Andrey sent in a link to this blog post, titled \"Never judge a programmer by their commit history\". \u00a0It's very similar to something that I wanted to write for quite some time now. It\u2019s been a very long time since I judged any programmer\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":27845,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/14\/pre-commit-a-framework-for-managingmulti-language-git-pre-commit-hooks\/","url_meta":{"origin":29094,"position":4},"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":27374,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/27\/moving-files-with-commit-history-from-one-git-repository-to-another\/","url_meta":{"origin":29094,"position":5},"title":"Moving files with commit history from one git repository to another","author":"Leonid Mamchenkov","date":"February 27, 2017","format":false,"excerpt":"I've searched for this before, and I'm sure I'll do that again (although the need is not that frequent), so here it goes. \u00a0It is possible to move files from one git repository to another, preserving commit history. \u00a0The following links provide a few examples of how to do 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":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/29094","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=29094"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/29094\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=29094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=29094"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=29094"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=29094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}