{"id":5312,"date":"2020-10-08T20:58:15","date_gmt":"2020-10-08T18:58:15","guid":{"rendered":"https:\/\/www.almtoolbox.com\/blog\/?p=5312"},"modified":"2022-02-28T14:30:46","modified_gmt":"2022-02-28T12:30:46","slug":"learn-about-git-submodules","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/","title":{"rendered":"Learn More About Git Submodules"},"content":{"rendered":"<h5><em>Last update: 2\/27\/2022<\/em><\/h5>\n<p><span style=\"font-weight: 400;\">In this article, we want to tell you how to control versions of complex systems using <em><strong>git submodules<\/strong><\/em>.<br \/>\n<\/span><span style=\"font-weight: 400;\">Let&#8217;s have a look at the following imaginary example.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Our company has developed a system named Car, which consisted of 3 subsystems: Motor, Steering, and Transmission.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5313\" src=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg\" alt=\"vehicle git submodules by pixabay\" width=\"698\" height=\"465\" srcset=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2020\/10\/mercedes-3510327_1280.jpg 1280w, https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2020\/10\/mercedes-3510327_1280-300x200.jpg 300w, https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2020\/10\/mercedes-3510327_1280-1024x682.jpg 1024w, https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2020\/10\/mercedes-3510327_1280-150x100.jpg 150w, https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2020\/10\/mercedes-3510327_1280-768x512.jpg 768w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Each subsystem has been developed in a separate Git repo and progressed from one version to another.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Up to a certain stage, each subsystem could be tested independently, but in the end, we needed to assemble and test the whole Car. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">How could we know with what version of each subsystem would we test it? Where would it be recorded?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This is where <em>git submodules<\/em> came to our help. We created a fourth repo, <em>Car<\/em>, and included all three subsystem repos as submodules. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">We did not copy files to the Car repo. The Car repo contained only <span style=\"text-decoration: underline;\">pointers<\/span> to specific commits of each of the three subsystem repos.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To understand it better, let&#8217;s look at the following table:<\/span><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5341 size-full\" src=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/car-table1-2.jpg\" alt=\"table1\" width=\"664\" height=\"223\" srcset=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2020\/10\/car-table1-2.jpg 664w, https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2020\/10\/car-table1-2-300x101.jpg 300w, https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/2020\/10\/car-table1-2-150x50.jpg 150w\" sizes=\"auto, (max-width: 664px) 100vw, 664px\" \/><span style=\"font-weight: 400;\"> On July 1, 2020, we created commit 1.0 in repository Car, which contained links to commit 1.1 in Motor, commit 1.3 in Steering and commit 1.4 in Transmission, so when we tested version 1.0 of Car, we knew exactly what version of each subsystem was used.\u00a0<\/span><\/p>\n<h3>After two months&#8230;<\/h3>\n<p><span style=\"font-weight: 400;\">Two months had passed, and version 2.0 was developed for each subsystem. However, we didn\u2019t want to test all changes at once. We decided to start with Transmission. Thus we created a new commit in Car, 1.1, which had version 2.0 of Transmission and no changes in other subsystems.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">After successfully testing Car with version 2.0 of Transmission, we created commit 1.2 in Car, with version 2.0 of Motor, and tested it. And lastly, we created and tested commit 2.0 of Car, with all subsystems at version 2.0.<\/span><\/p>\n<h3>Using submodules for access control<\/h3>\n<p><span style=\"font-weight: 400;\">If you are using a web-based Git server like GitLab, GitHub, Bitbucket or Azure DevOps, you can use submodules to control access to your software. In the above example, if Motor, Steering and Transmission are being developed by subcontractors, you can limit access of each subcontractor to its repository, and give full access to all repositories to Car integrators only.<\/span><\/p>\n<h3>Conclusion<\/h3>\n<p><span style=\"font-weight: 400;\">Using Git submodules, at each test of Car we knew what versions of subsystems were used. Moreover, since all commits were saved in the Car repo, now we can replay any of the previous tests exactly as they were run originally.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Note: Those of you who have used or still are using ClearCase UCM may remember that it has similar functionality, named <em>composite baseline<\/em>. It also allows you to manage projects comprising multiple repositories.<\/span><\/p>\n<div class=\"alm-box\">We provide training of git, Advanced git, GitLab, GitLab CI, Bitbucket, GitHub, git + Kubernetes and software development workflows.<br \/>\nContact us for more information: <a href=\"mailto:git@almtoolbox.com\" target=\"_blank\" rel=\"noopener noreferrer\">git@almtoolbox.com<\/a> or call us +31 85 064 4633 (International) \/ 866-503-1471 (US &amp; Canada)<\/div>\n<h5><\/h5>\n<h3>Related Links:<\/h3>\n<ul>\n<li><a href=\"https:\/\/www.almtoolbox.com\/git\">Our git website<\/a><\/li>\n<li><a href=\"https:\/\/www.almtoolbox.com\/gitlab\">Learn more about GitLab<\/a><\/li>\n<li><a href=\"https:\/\/www.almtoolbox.com\/github\">GitHub website<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last update: 2\/27\/2022 In this article, we want to tell you how to control versions of complex systems using git submodules. Let&#8217;s have a look at the following imaginary example.\u00a0 Our company has developed a system named Car, which consisted of 3 subsystems: Motor, Steering, and Transmission. Each subsystem has been developed in a separate [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":5313,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,91,184,150],"tags":[265,264],"class_list":["post-5312","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices","category-devops","category-devsecops","category-git","tag-clearcase","tag-submodules"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Learn More About Git Submodules - ALMtoolbox News<\/title>\n<meta name=\"description\" content=\"In this article we want to tell you how to control versions of complex systems using git submodules and how it can help you\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learn More About Git Submodules - ALMtoolbox News\" \/>\n<meta property=\"og:description\" content=\"In this article we want to tell you how to control versions of complex systems using git submodules and how it can help you\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/\" \/>\n<meta property=\"og:site_name\" content=\"ALMtoolbox News\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/almtoolbox.israel\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-08T18:58:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-28T12:30:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"853\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Alex Karnovsky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Karnovsky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/\"},\"author\":{\"name\":\"Alex Karnovsky\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/5c8322af033db8cfc364047d469e7fc4\"},\"headline\":\"Learn More About Git Submodules\",\"datePublished\":\"2020-10-08T18:58:15+00:00\",\"dateModified\":\"2022-02-28T12:30:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/\"},\"wordCount\":480,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg\",\"keywords\":[\"clearcase\",\"submodules\"],\"articleSection\":[\"Best practices\",\"DevOps\",\"DevSecOps\",\"Git\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/\",\"name\":\"Learn More About Git Submodules - ALMtoolbox News\",\"isPartOf\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg\",\"datePublished\":\"2020-10-08T18:58:15+00:00\",\"dateModified\":\"2022-02-28T12:30:46+00:00\",\"description\":\"In this article we want to tell you how to control versions of complex systems using git submodules and how it can help you\",\"breadcrumb\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#primaryimage\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg\",\"contentUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg\",\"width\":1280,\"height\":853,\"caption\":\"vehicle git submodules\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.almtoolbox.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learn More About Git Submodules\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#website\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/\",\"name\":\"ALMtoolbox News\",\"description\":\"All the news of ALMtoolbox\",\"publisher\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.almtoolbox.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#organization\",\"name\":\"ALMtoolbox\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png\",\"contentUrl\":\"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png\",\"width\":410,\"height\":190,\"caption\":\"ALMtoolbox\"},\"image\":{\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/almtoolbox.israel\/\",\"https:\/\/www.linkedin.com\/company\/almtoolbox\/\",\"https:\/\/www.youtube.com\/user\/GoMidjets\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/5c8322af033db8cfc364047d469e7fc4\",\"name\":\"Alex Karnovsky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/51d8ba6ad319b3e0834a4cc2251348116232ee5cb712dc81279c64fc70c07af6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/51d8ba6ad319b3e0834a4cc2251348116232ee5cb712dc81279c64fc70c07af6?s=96&d=mm&r=g\",\"caption\":\"Alex Karnovsky\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Learn More About Git Submodules - ALMtoolbox News","description":"In this article we want to tell you how to control versions of complex systems using git submodules and how it can help you","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:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/","og_locale":"en_US","og_type":"article","og_title":"Learn More About Git Submodules - ALMtoolbox News","og_description":"In this article we want to tell you how to control versions of complex systems using git submodules and how it can help you","og_url":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/","og_site_name":"ALMtoolbox News","article_publisher":"https:\/\/www.facebook.com\/almtoolbox.israel\/","article_published_time":"2020-10-08T18:58:15+00:00","article_modified_time":"2022-02-28T12:30:46+00:00","og_image":[{"width":1280,"height":853,"url":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg","type":"image\/jpeg"}],"author":"Alex Karnovsky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Alex Karnovsky","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#article","isPartOf":{"@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/"},"author":{"name":"Alex Karnovsky","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/5c8322af033db8cfc364047d469e7fc4"},"headline":"Learn More About Git Submodules","datePublished":"2020-10-08T18:58:15+00:00","dateModified":"2022-02-28T12:30:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/"},"wordCount":480,"commentCount":0,"publisher":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#primaryimage"},"thumbnailUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg","keywords":["clearcase","submodules"],"articleSection":["Best practices","DevOps","DevSecOps","Git"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/","url":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/","name":"Learn More About Git Submodules - ALMtoolbox News","isPartOf":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#primaryimage"},"image":{"@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#primaryimage"},"thumbnailUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg","datePublished":"2020-10-08T18:58:15+00:00","dateModified":"2022-02-28T12:30:46+00:00","description":"In this article we want to tell you how to control versions of complex systems using git submodules and how it can help you","breadcrumb":{"@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#primaryimage","url":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg","contentUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2020\/10\/mercedes-3510327_1280.jpg","width":1280,"height":853,"caption":"vehicle git submodules"},{"@type":"BreadcrumbList","@id":"https:\/\/www.almtoolbox.com\/blog\/learn-about-git-submodules\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.almtoolbox.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Learn More About Git Submodules"}]},{"@type":"WebSite","@id":"https:\/\/www.almtoolbox.com\/blog\/#website","url":"https:\/\/www.almtoolbox.com\/blog\/","name":"ALMtoolbox News","description":"All the news of ALMtoolbox","publisher":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.almtoolbox.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.almtoolbox.com\/blog\/#organization","name":"ALMtoolbox","url":"https:\/\/www.almtoolbox.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png","contentUrl":"https:\/\/www.almtoolbox.com\/blog\/wp-content\/uploads\/\/2015\/10\/logo.png","width":410,"height":190,"caption":"ALMtoolbox"},"image":{"@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/almtoolbox.israel\/","https:\/\/www.linkedin.com\/company\/almtoolbox\/","https:\/\/www.youtube.com\/user\/GoMidjets"]},{"@type":"Person","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/5c8322af033db8cfc364047d469e7fc4","name":"Alex Karnovsky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.almtoolbox.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/51d8ba6ad319b3e0834a4cc2251348116232ee5cb712dc81279c64fc70c07af6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/51d8ba6ad319b3e0834a4cc2251348116232ee5cb712dc81279c64fc70c07af6?s=96&d=mm&r=g","caption":"Alex Karnovsky"}}]}},"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts\/5312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/comments?post=5312"}],"version-history":[{"count":19,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts\/5312\/revisions"}],"predecessor-version":[{"id":6069,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/posts\/5312\/revisions\/6069"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/media\/5313"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/media?parent=5312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/categories?post=5312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog\/wp-json\/wp\/v2\/tags?post=5312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}