{"id":240871,"date":"2025-05-14T05:43:31","date_gmt":"2025-05-14T05:43:31","guid":{"rendered":"https:\/\/peraltafinancing.com\/business\/internet-business\/trunk-based-development-workflow-in-wordpress-and-github\/"},"modified":"2025-05-14T05:43:31","modified_gmt":"2025-05-14T05:43:31","slug":"trunk-based-development-workflow-in-wordpress-and-github","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=240871","title":{"rendered":"Trunk-based development workflow in WordPress and GitHub"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<div id=\"thumbnail-image\" class=\"d-flex justify-content-center\">\n                            <img width=\"780\" height=\"454\" class=\"attachment-1110x454 size-1110x454 wp-post-image\" alt=\"Advanced trunk-based development workflow in WordPress and GitHub\" decoding=\"async\" fetchpriority=\"high\" srcset=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez.webp 1907w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez-300x175.webp 300w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez-1024x596.webp 1024w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez-768x447.webp 768w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez-1536x894.webp 1536w\" data-lazy-sizes=\"(max-width: 780px) 100vw, 780px\" src=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez.webp\"\/><img width=\"780\" height=\"454\" src=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez.webp\" class=\"attachment-1110x454 size-1110x454 wp-post-image\" alt=\"Advanced trunk-based development workflow in WordPress and GitHub\" decoding=\"async\" fetchpriority=\"high\" srcset=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez.webp 1907w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez-300x175.webp 300w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez-1024x596.webp 1024w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez-768x447.webp 768w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2024\/09\/WP-Expert_Featured-Image-David-Perez-1536x894.webp 1536w\" sizes=\"(max-width: 780px) 100vw, 780px\"\/>                        <\/div>\n<p>When you\u2019re developing in WordPress and creating your own custom plugin or theme, you need to use version control. It makes it easier to keep track of changes in your code and the evolution of your project.\u00a0<\/p>\n<p>To separate different offshoots of work in your code, you need development branches. How you manage those branches can really make or break your development process.<\/p>\n<p>This way of working with branches is called a <strong>workflow<\/strong>. It helps prevent inefficiencies, wasted time, or even broken code that might otherwise occur due to poor branch management or lack of coordination within your team.<\/p>\n<p>I\u2019ve worked with two types of workflow: Git Flow and trunk-based development. I will share my experience with each and how trunk-based development has emerged as a better solution in WordPress development.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-problems-with-git-flow\">Problems with Git Flow<\/h2>\n<p>For a long time, I\u2019ve worked with the Git Flow methodology \u2013 a setup designed so your main branch consists only of code for new versions, while a separate development branch consists of all the ongoing changes to different features.<\/p>\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/www.hostinger.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2025\\\/05\\\/image.png&quot;,&quot;figureClassNames&quot;:&quot;aligncenter size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-7768&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1129,&quot;targetHeight&quot;:761,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image: An example diagram of Git Flow methodology, which includes the main branch with multiple other types of branches: hotfix, release, develop, and feature.&quot;,&quot;alt&quot;:&quot;An example diagram of Git Flow methodology, which includes the main branch with multiple other types of branches: hotfix, release, develop, and feature.&quot;}\" data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1129\" height=\"761\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" alt=\"An example diagram of Git Flow methodology, which includes the main branch with multiple other types of branches: hotfix, release, develop, and feature.\" class=\"wp-image-7768\" srcset=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image.webp 1129w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-300x202.webp 300w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1024x690.webp 1024w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-768x518.webp 768w\" data-lazy-sizes=\"(max-width: 1129px) 100vw, 1129px\" src=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image.webp\"\/><img loading=\"lazy\" decoding=\"async\" width=\"1129\" height=\"761\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image.webp\" alt=\"An example diagram of Git Flow methodology, which includes the main branch with multiple other types of branches: hotfix, release, develop, and feature.\" class=\"wp-image-7768\" srcset=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image.webp 1129w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-300x202.webp 300w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1024x690.webp 1024w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-768x518.webp 768w\" sizes=\"auto, (max-width: 1129px) 100vw, 1129px\"\/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge image: An example diagram of Git Flow methodology, which includes the main branch with multiple other types of branches: hotfix, release, develop, and feature.\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"context.imageButtonRight\" data-wp-style--top=\"context.imageButtonTop\"><br \/>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"\/>\n\t\t\t<\/svg><br \/>\n\t\t<\/button><\/figure>\n<\/div>\n<p>This gets complicated when you want to spin off many new lines of work and features from the development branch, and things can get even messier when you create new versions, as this also involves new branches.<\/p>\n<p>As the project progresses, it becomes harder to keep track of where you are and how your plugin development is progressing. Plus, you end up doing more manual checks when merging in development branches.<\/p>\n<p>Also, development branches can sometimes have incomplete code that might accidentally get merged into the main branch.<\/p>\n<p>Typically, Git Flow includes five types of branches: <strong>main<\/strong>, <strong>develop<\/strong>, <strong>feature<\/strong>, <strong>release<\/strong>, and <strong>hotfix<\/strong>, each serving a different purpose:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Main:<\/strong> This is production-ready code. It should be clean, error-free, and only merged from tested branches.<\/li>\n<li><strong>Develop:<\/strong> Runs parallel to <strong>main<\/strong>, holding code from various branches. It may include unfinished code and should be thoroughly tested before merging into <strong>main<\/strong>.<\/li>\n<li><strong>Feature:<\/strong> Used when working on new features \u2013 probably the most common branch type.<\/li>\n<li><strong>Release:<\/strong> A pre-production branch. In simpler workflows, this can be skipped, and <strong>develop<\/strong> can be used to prep for production instead.<\/li>\n<li><strong>Hotfix:<\/strong> Created directly from <strong>main<\/strong> to fix bugs in production. Once fixed, it\u2019s merged back into both <strong>main<\/strong> and <strong>develop<\/strong> to prevent recurring issues.<\/li>\n<\/ul>\n<p>While Git Flow was one of the first structured methods out there, it brings its own complications:<\/p>\n<ul class=\"wp-block-list\">\n<li>It can get overly complex.<\/li>\n<li>Too many branches can cause confusion during development.<\/li>\n<li>Old feature branches might become outdated and harder to update.<\/li>\n<li>Merging feature branches into development can trigger conflicts due to incomplete code.<\/li>\n<li>Where do you run your automated tests \u2013 in <strong>develop<\/strong> or <strong>release<\/strong>?<\/li>\n<\/ul>\n<p>Ultimately, this workflow might make development more convoluted, leaving teams unsure of where to create new branches or how far along the project is.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-trunk-based-development\">Trunk-based development<\/h2>\n<p><strong>TBD<\/strong> (trunk-based development) is a workflow built around a single main branch with stable code. From it, subtasks are created in short-lived branches that are deleted after development, automated testing, and code review are complete.<\/p>\n<p>This method is super-efficient for branch management since old branches are deleted regularly. The idea is to integrate different developments more frequently, helping the project evolve with every merge.<\/p>\n<p><a href=\"https:\/\/wordpress.org\/plugins\/plugin-check\/\" data-wpel-link=\"external\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><strong>Plugin Check<\/strong><\/a> (PCP) is a great tool for building WordPress plugins that are standards-compliant. Contributing to it helped me discover the TBD version control workflow that significantly improves resulting plugin quality \u2013 it\u2019s more secure, more error-free, and better integrated with automated testing.<\/p>\n<p>Automated testing is mandatory in this workflow.<\/p>\n<p>TBD pairs perfectly with <strong>test-driven development<\/strong> (TDD), where tests are written <em>before<\/em> the code. This allows for early validation during development.<\/p>\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/www.hostinger.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2025\\\/05\\\/image-1.png&quot;,&quot;figureClassNames&quot;:&quot;aligncenter size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-7769&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1168,&quot;targetHeight&quot;:461,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image: An example diagram of trunk-based development, showing the main trunk and branches&quot;,&quot;alt&quot;:&quot;An example diagram of trunk-based development, showing the main trunk and branches&quot;}\" data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"404\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" alt=\"An example diagram of trunk-based development, showing the main trunk and branches\" class=\"wp-image-7769\" srcset=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1-1024x404.webp 1024w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1-300x118.webp 300w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1-768x303.webp 768w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1.webp 1168w\" data-lazy-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1-1024x404.webp\"\/><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"404\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1-1024x404.webp\" alt=\"An example diagram of trunk-based development, showing the main trunk and branches\" class=\"wp-image-7769\" srcset=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1-1024x404.webp 1024w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1-300x118.webp 300w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1-768x303.webp 768w,https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/image-1.webp 1168w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"\/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge image: An example diagram of trunk-based development, showing the main trunk and branches\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"context.imageButtonRight\" data-wp-style--top=\"context.imageButtonTop\"><br \/>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"\/>\n\t\t\t<\/svg><br \/>\n\t\t<\/button><\/figure>\n<\/div>\n<p><strong>Main benefits of writing tests before coding:<\/strong><\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Improved quality:<\/strong> You\u2019re forced to consider initial requirements and design before writing code.<\/li>\n<li><strong>Added safety layer:<\/strong> Ensures changes won\u2019t break existing features.<\/li>\n<li><strong>Less debugging time:<\/strong> Tests push your code to its limits, making it easier to spot issues.<\/li>\n<li><strong>Better plugin design:<\/strong> Tests highlight potential future issues.<\/li>\n<li><strong>Easier refactoring:<\/strong> Functionality is verified automatically.<\/li>\n<\/ul>\n<p>Once your code and tests are ready, it\u2019s time to make a <strong>pull request<\/strong> \u2013 this is where automated tests kick in to make your code more robust.<\/p>\n<p>In conclusion, TBD has greatly impacted the WordPress ecosystem by making it easier to test during development. This is super-important now that plugins and themes are getting increasingly complex and need automated testing more than ever. TBD is the workflow we use with the Plugin Check plugin, which lets us create a set of automated tests every time we develop something new. That way, our code is way more reliable with each new version.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-how-do-you-get-started\">How do you get started?<\/h2>\n<p>Just follow these steps to get it up and running!<\/p>\n<ol class=\"wp-block-list\">\n<li>Clean up any old development branches if you had a previous repo. If it\u2019s new, just create one main branch \u2013 you can call it <strong>trunk<\/strong> or <strong>main<\/strong>.<\/li>\n<li>Coordinate with your team so that for every task, they always create a well-documented <strong>issue<\/strong> first. From there, create a branch. GitHub makes it easy with the toolbar on the right. Try to keep tasks small and manageable.<\/li>\n<li>Set up automated tests for your repo. You can check out the <a href=\"https:\/\/github.com\/WordPress\/plugin-check\/tree\/trunk\/.github\/workflows\" data-wpel-link=\"external\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Plugin Check repo<\/a> for lots of automation examples.<\/li>\n<li>When you\u2019ve finished development on each branch, create a pull request. This enables you to review new code before it gets merged into the main branch. If you can make it so that at least one or two people review the code before merging it into the main branch, even better.<\/li>\n<\/ol>\n<p>And this becomes a continuous, repeatable process.<\/p>\n<p>Have you set this up in your plugin development? Do you think it improves your workflow? Let us know in the comments below.<\/p>\n<div id=\"the-author-section\" class=\"col-12 bg-ghost-white\">\n<div class=\"d-flex flex-column flex-sm-row ml-0 justify-content-center justify-content-sm-start\">\n<div class=\"author-avatar\">\n                          <img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" bad-src=\"data:image\/svg+xml,%3Csvg%20xmlns=\" http:=\"\" class=\"border-radius-50p\" alt=\"Author\" src=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/David-150x150.webp\"\/><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.hostinger.com\/blog\/wp-content\/uploads\/sites\/4\/2025\/05\/David-150x150.webp\" class=\"border-radius-50p\" alt=\"Author\"\/>\n                    <\/div>\n<\/p><\/div>\n<div class=\"description mt-15 mt-30-md\">\n<p class=\"text-center text-sm-start\">\n            David P\u00e9rez is a Hostinger-sponsored WordPress contributor. He has taken the role as Plugin Team contributor and developed the Plugin Check tool that helps thousands of plugin developers around the world.        <\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>When you\u2019re developing in WordPress and creating your own custom plugin or theme, you need to use version control. It makes it easier to keep track of changes in your code and the evolution of your project.\u00a0 To separate different offshoots of work in your code, you need development branches. How you manage those branches [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":240872,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[95],"tags":[2993,46717,88599,18117,17181],"dealstore":[],"offerexpiration":[],"class_list":["post-240871","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-internet-business","tag-development","tag-github","tag-trunkbased","tag-wordpress","tag-workflow"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Trunk-based development workflow in WordPress and GitHub - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=240871\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trunk-based development workflow in WordPress and GitHub - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"When you\u2019re developing in WordPress and creating your own custom plugin or theme, you need to use version control. It makes it easier to keep track of changes in your code and the evolution of your project.\u00a0 To separate different offshoots of work in your code, you need development branches. How you manage those branches [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=240871\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-14T05:43:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1907\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=240871#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=240871\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Trunk-based development workflow in WordPress and GitHub\",\"datePublished\":\"2025-05-14T05:43:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=240871\"},\"wordCount\":994,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=240871#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png\",\"keywords\":[\"Development\",\"GitHub\",\"Trunkbased\",\"wordpress\",\"Workflow\"],\"articleSection\":[\"Internet Business\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=240871#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=240871\",\"url\":\"https:\/\/fivemor.com\/?p=240871\",\"name\":\"Trunk-based development workflow in WordPress and GitHub - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=240871#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=240871#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png\",\"datePublished\":\"2025-05-14T05:43:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=240871#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=240871\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=240871#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png\",\"width\":1907,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=240871#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trunk-based development workflow in WordPress and GitHub\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Trunk-based development workflow in WordPress and GitHub - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fivemor.com\/?p=240871","og_locale":"en_US","og_type":"article","og_title":"Trunk-based development workflow in WordPress and GitHub - Som2ny Network","og_description":"When you\u2019re developing in WordPress and creating your own custom plugin or theme, you need to use version control. It makes it easier to keep track of changes in your code and the evolution of your project.\u00a0 To separate different offshoots of work in your code, you need development branches. How you manage those branches [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=240871","og_site_name":"Som2ny Network","article_published_time":"2025-05-14T05:43:31+00:00","og_image":[{"width":1907,"height":1110,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=240871#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=240871"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Trunk-based development workflow in WordPress and GitHub","datePublished":"2025-05-14T05:43:31+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=240871"},"wordCount":994,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=240871#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png","keywords":["Development","GitHub","Trunkbased","wordpress","Workflow"],"articleSection":["Internet Business"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=240871#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=240871","url":"https:\/\/fivemor.com\/?p=240871","name":"Trunk-based development workflow in WordPress and GitHub - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=240871#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=240871#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png","datePublished":"2025-05-14T05:43:31+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=240871#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=240871"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=240871#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/05\/WP-Expert_Featured-Image-David-Perez.png","width":1907,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=240871#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Trunk-based development workflow in WordPress and GitHub"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/240871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=240871"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/240871\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/240872"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=240871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=240871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=240871"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=240871"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=240871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}