{"id":28607,"date":"2018-06-06T13:25:50","date_gmt":"2018-06-06T11:25:50","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=28607"},"modified":"2018-06-06T13:25:50","modified_gmt":"2018-06-06T11:25:50","slug":"git-worktree-a-better-way-for-git-stash-abusers","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/","title":{"rendered":"git worktree &#8211; a better way for git stash abusers"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"28608\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/git-5\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git.png?fit=2000%2C951&amp;ssl=1\" data-orig-size=\"2000,951\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"git\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git.png?fit=660%2C314&amp;ssl=1\" class=\"aligncenter size-medium wp-image-28608\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git-500x238.png?resize=500%2C238&#038;ssl=1\" alt=\"\" width=\"500\" height=\"238\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git.png?resize=500%2C238&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git.png?resize=768%2C365&amp;ssl=1 768w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git.png?resize=1024%2C487&amp;ssl=1 1024w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git.png?w=2000&amp;ssl=1 2000w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git.png?w=1320 1320w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>If you constantly find yourself using &#8220;<a href=\"https:\/\/git-scm.com\/docs\/git-stash\">git stash<\/a>&#8221; while working on a project, or, even worse &#8211; have multiple copies of the same project cloned on the same machine, &#8220;<a href=\"https:\/\/git-scm.com\/docs\/git-worktree\">git worktree<\/a>&#8221; might be a much better alternative for you.<\/p>\n<blockquote><p>Manage multiple working trees attached to the same repository.<\/p>\n<p>A git repository can support multiple working trees, allowing you to check out more than one branch at a time. With\u00a0<code>git worktree add<\/code>\u00a0a new working tree is associated with the repository. This new working tree is called a &#8220;linked working tree&#8221; as opposed to the &#8220;main working tree&#8221; prepared by &#8220;git init&#8221; or &#8220;git clone&#8221;. A repository has one main working tree (if it\u2019s not a bare repository) and zero or more linked working trees.<\/p>\n<p>When you are done with a linked working tree you can simply delete it.<\/p><\/blockquote>\n<p>Here are a few links to get you started:<\/p>\n<ul>\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/31935776\/what-would-i-use-git-worktree-for\">What would I use git-worktree for?<\/a><\/li>\n<li><a href=\"https:\/\/dzone.com\/articles\/a-2016-git-retrospective-worktrees\">The 2016 Git Retrospective: Worktrees<\/a><\/li>\n<li><a href=\"https:\/\/blog.github.com\/2015-07-29-git-2-5-including-multiple-worktrees-and-triangular-workflows\/\">Git 2.5, including multiple worktrees and triangular workflows<\/a><\/li>\n<li><a href=\"https:\/\/spin.atomicobject.com\/2016\/06\/26\/parallelize-development-git-worktrees\/\">Parallelize Development Using Git Worktrees<\/a><\/li>\n<li><a href=\"https:\/\/www.saltycrane.com\/blog\/2017\/05\/git-worktree-notes\/\">git worktree notes<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>If you constantly find yourself using &#8220;git stash&#8221; while working on a project, or, even worse &#8211; have multiple copies of the same project cloned on the same machine, &#8220;git worktree&#8221; might be a much better alternative for you. Manage multiple working trees attached to the same repository. A git repository can support multiple working &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">git worktree &#8211; a better way for git stash abusers<\/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":"git worktree - a better way for git stash abusers #WebDev #git #VersionControl #productivity","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,133,62,1334],"tags":[2265,1079,1588,1330],"keyring_services":[],"class_list":["post-28607","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-sysadmin","category-technology","category-web-work","tag-git","tag-productivity","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=\"If you constantly find yourself using &quot;git stash&quot; while working on a project, or, even worse - have multiple copies of the same project cloned on the same machine, &quot;git worktree&quot; might be a much better alternative for you. Manage multiple working trees attached to the same repository. A git repository can support multiple working\" \/>\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\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/\" \/>\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=\"git worktree \u2013 a better way for git stash abusers - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"If you constantly find yourself using &quot;git stash&quot; while working on a project, or, even worse - have multiple copies of the same project cloned on the same machine, &quot;git worktree&quot; might be a much better alternative for you. Manage multiple working trees attached to the same repository. A git repository can support multiple working\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/\" \/>\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-06-06T11:25:50+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2018-06-06T11:25:50+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=\"git worktree \u2013 a better way for git stash abusers - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"If you constantly find yourself using &quot;git stash&quot; while working on a project, or, even worse - have multiple copies of the same project cloned on the same machine, &quot;git worktree&quot; might be a much better alternative for you. Manage multiple working trees attached to the same repository. A git repository can support multiple working\" \/>\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\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#blogposting\",\"name\":\"git worktree \\u2013 a better way for git stash abusers - Leonid Mamchenkov\",\"headline\":\"git worktree &#8211; a better way for git stash abusers\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/wp-content\\\/uploads\\\/2018\\\/06\\\/git-500x238.png\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#articleImage\"},\"datePublished\":\"2018-06-06T13:25:50+02:00\",\"dateModified\":\"2018-06-06T13:25:50+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#webpage\"},\"articleSection\":\"All, Programming, Sysadmin, Technology, Web work, git, productivity, version control, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#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\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#listItem\",\"name\":\"git worktree &#8211; a better way for git stash abusers\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#listItem\",\"position\":4,\"name\":\"git worktree &#8211; a better way for git stash abusers\",\"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\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#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\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#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\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/\",\"name\":\"git worktree \\u2013 a better way for git stash abusers - Leonid Mamchenkov\",\"description\":\"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 repository can support multiple working\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2018\\\/06\\\/06\\\/git-worktree-a-better-way-for-git-stash-abusers\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2018-06-06T13:25:50+02:00\",\"dateModified\":\"2018-06-06T13:25:50+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":"git worktree \u2013 a better way for git stash abusers - Leonid Mamchenkov","description":"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 repository can support multiple working","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/","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\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#blogposting","name":"git worktree \u2013 a better way for git stash abusers - Leonid Mamchenkov","headline":"git worktree &#8211; a better way for git stash abusers","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/06\/git-500x238.png","@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#articleImage"},"datePublished":"2018-06-06T13:25:50+02:00","dateModified":"2018-06-06T13:25:50+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#webpage"},"articleSection":"All, Programming, Sysadmin, Technology, Web work, git, productivity, version control, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#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\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#listItem","name":"git worktree &#8211; a better way for git stash abusers"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#listItem","position":4,"name":"git worktree &#8211; a better way for git stash abusers","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\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#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\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#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\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/","name":"git worktree \u2013 a better way for git stash abusers - Leonid Mamchenkov","description":"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 repository can support multiple working","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2018-06-06T13:25:50+02:00","dateModified":"2018-06-06T13:25:50+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":"git worktree \u2013 a better way for git stash abusers - Leonid Mamchenkov","og:description":"If you constantly find yourself using &quot;git stash&quot; while working on a project, or, even worse - have multiple copies of the same project cloned on the same machine, &quot;git worktree&quot; might be a much better alternative for you. Manage multiple working trees attached to the same repository. A git repository can support multiple working","og:url":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/","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-06-06T11:25:50+00:00","article:modified_time":"2018-06-06T11:25:50+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"git worktree \u2013 a better way for git stash abusers - Leonid Mamchenkov","twitter:description":"If you constantly find yourself using &quot;git stash&quot; while working on a project, or, even worse - have multiple copies of the same project cloned on the same machine, &quot;git worktree&quot; might be a much better alternative for you. Manage multiple working trees attached to the same repository. A git repository can support multiple working","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"28607","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":"BlogPosting","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-19 09:43:03","updated":"2026-01-15 13:42:54","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\tgit worktree \u2013 a better way for git stash abusers\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":"git worktree &#8211; a better way for git stash abusers","link":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/06\/git-worktree-a-better-way-for-git-stash-abusers\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":17655,"url":"https:\/\/mamchenkov.net\/wordpress\/2013\/01\/09\/git-separating-folder-into-different-repository-with-history\/","url_meta":{"origin":28607,"position":0},"title":"Git : separating folder into different repository, with history","author":"Leonid Mamchenkov","date":"January 9, 2013","format":false,"excerpt":"First things first. \u00a0If you don't use git for version control yet, stop right now and go plan your migration. \u00a0You'll thank me later. \u00a0Now. \u00a0A few days ago I had a tricky problem. \u00a0A chunk of code that was initially all over the project has been refactored into a\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":28607,"position":1},"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":[]},{"id":23822,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/04\/07\/10-years-of-git-an-interview-with-git-creator-linus-torvalds\/","url_meta":{"origin":28607,"position":2},"title":"10 Years of Git: An Interview with Git Creator Linus Torvalds","author":"Leonid Mamchenkov","date":"April 7, 2015","format":false,"excerpt":"Linux.com reminds us that git is celebrating its 10th birthday this year. \u00a0An interview with git creator Linus Torvalds sheds some light on to how and why it happened, and how long it took. You can actually see how it all took shape in the git source code repository, except\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"AtlassianGit10year","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/04\/AtlassianGit10year-500x295.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28399,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/19\/grv-git-repository-viewer\/","url_meta":{"origin":28607,"position":3},"title":"GRV &#8211; Git Repository Viewer","author":"Leonid Mamchenkov","date":"February 19, 2018","format":false,"excerpt":"GRV is a text-based Git repository viewer for the console, much like tig, but with a few extra features: Commits and refs can be filtered using a query language. Changes to the repository are captured by monitoring the filesystem allowing the UI to be updated automatically. Organised as tabs and\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\/02\/grv-500x265.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":18111,"url":"https:\/\/mamchenkov.net\/wordpress\/2013\/04\/29\/dandelion-incremental-git-repository-deployment\/","url_meta":{"origin":28607,"position":4},"title":"dandelion &#8211; Incremental Git repository deployment","author":"Leonid Mamchenkov","date":"April 29, 2013","format":"link","excerpt":"dandelion - Incremental Git repository deployment This might be really handy for those times when you need to push from Git to FTP\/SFTP or cloud services directly.","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":25203,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/02\/29\/git-rebase-and-the-golden-rule-explained\/","url_meta":{"origin":28607,"position":5},"title":"Git rebase and the golden rule explained","author":"Leonid Mamchenkov","date":"February 29, 2016","format":false,"excerpt":"\"Git rebase and the golden rule explained\" - is an excellent explanation of what happens when you do rebase in git repository. \u00a0If you know already, or don't care, at least remember the golden rule: Never, NEVER, NEVER, rebase a shared branch. By shared branch I mean a branch that\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\/28607","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=28607"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28607\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=28607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=28607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=28607"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=28607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}