{"id":354389,"date":"2021-10-18T14:39:20","date_gmt":"2021-10-18T11:39:20","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-completely-reset-a-git-repository-including-untracked-files-cloudsavvy-it\/"},"modified":"2021-10-18T14:39:20","modified_gmt":"2021-10-18T11:39:20","slug":"how-to-completely-reset-a-git-repository-including-untracked-files-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-completely-reset-a-git-repository-including-untracked-files-cloudsavvy-it\/","title":{"rendered":"#How To Completely Reset a Git Repository (Including Untracked Files) \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a28bb4c916dd\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a28bb4c916dd\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-completely-reset-a-git-repository-including-untracked-files-cloudsavvy-it\/#Saving_Your_Changes_Git_Stash\" >Saving Your Changes (Git Stash)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-completely-reset-a-git-repository-including-untracked-files-cloudsavvy-it\/#Performing_a_Reset_Git_Reset\" >Performing a Reset\u00a0(Git Reset)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-completely-reset-a-git-repository-including-untracked-files-cloudsavvy-it\/#Resetting_Untracked_Files_Git_Clean\" >Resetting Untracked Files (Git Clean)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-completely-reset-a-git-repository-including-untracked-files-cloudsavvy-it\/#Giving_Up_Instead_Cloning_A_New_Repo\" >Giving Up Instead: Cloning A New Repo<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#How To Completely Reset a Git Repository (Including Untracked Files) \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage alignnone size-full wp-image-14468\" srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/10\/d5f314a9.png?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/10\/d5f314a9.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/10\/d5f314a9.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"1200\" height=\"675\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/>Git commands are complicated, and you may often find yourself thinking,<em>\u201cscrew this, I\u2019ll just start over!\u201d<\/em> Luckily, Git is built to track every version of your changes, and if you messed up, it provides tools for resetting your repository back to its old working state.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Saving_Your_Changes_Git_Stash\"><\/span>Saving Your Changes (Git Stash)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Before you fire off a command to reset your repository, you should make sure you\u2019re not losing data you want to save.<\/p>\n<p>Git provides a few different kinds of resets. Soft and Mixed resets will reset the repository back to the state it was in at a certain commit (often the HEAD of a branch), but will keep your local changes that you haven\u2019t yet committed. Hard resets, on the other hand, are destructive, and will throw away changes that haven\u2019t been committed yet.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12969\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/07\/f5026f58.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"700\" height=\"408\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Often a hard reset is needed to properly clean the repository. If you want though, you can \u201cstash\u201d your changes, which will take all uncommitted changes and store them locally. You can pop the stash open with \u201cstash <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>ly\u201d at a later time.<\/p>\n<pre>git stash&#13;\ngit stash apply<\/pre>\n<p>You can also make a new branch, commit the changes, and then reset back to master. This would keep your changes in the commit history forever, and could also be sent to remote source control to be shared with your coworkers.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Performing_a_Reset_Git_Reset\"><\/span>Performing a Reset\u00a0(Git Reset)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>First, you\u2019ll need to fetch the latest state of the remote repository, usually \u201corigin,\u201d and then checkout the master branch (or whichever one you\u2019re resetting to).<\/p>\n<pre>git fetch origin&#13;\ngit checkout master<\/pre>\n<p>You can also check out and reset to an individual commit using its ID, e.g., <code>git checkout 342c47a4<\/code>.<\/p>\n<p>Then, perform a hard reset (unless you want to keep changes with a soft reset). Keep in mind this operation is\u00a0<strong>destructive<\/strong> to any unsaved changes.<\/p>\n<pre>git reset --hard origin\/master<\/pre>\n<p>You can reset to a local commit instead of <code>origin\/master<\/code>, but most of the time you\u2019ll be resetting to the state of the remote.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Resetting_Untracked_Files_Git_Clean\"><\/span>Resetting Untracked Files (Git Clean)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>However, <code>git reset<\/code>\u00a0is usually not enough. Resetting in Git only resets files that are actually tracked by Git. This includes code and resources that receive changes.<\/p>\n<p>However, there are also files like packages, local config, build artifacts\/output, log files, and other transitory items that aren\u2019t stored in the Git repository (and ignored in <code>.gitignore<\/code>). To clean these up, and bring your local repo to 100% parity with the state of the remote, you can run <code>git clean<\/code>:<\/p>\n<pre>git clean -d --force<\/pre>\n<p>You can actually run this command\u00a0<strong>without running git reset,<\/strong> which may actually be what you want. If you don\u2019t want to effect your code files, but want to clear up your builds, logs, and packages to start over, <code>git clean<\/code>\u00a0may be all you need.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Giving_Up_Instead_Cloning_A_New_Repo\"><\/span>Giving Up Instead: Cloning A New Repo<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>While the above is the \u201cclean way\u201d to do it with official Git commands, doing a complete reset isn\u2019t very far off from just nuking your local repository folder and cloning a brand new one. There\u2019s no shame in doing that if you plan to reset everything anyway:<\/p>\n<pre>sudo rm -r git-repository&#13;\ngit clone https:\/\/github.com\/user\/git-repository.git&#13;\ncd git-repository<\/pre>\n<p>Keep in mind that this can only reset back to the state of your remote repository, not to a local commit. This will clone the master branch by default, but you can switch to the branch of your choise with <code>git switch<\/code>\u00a0or clone it from the start with <code>git clone -b &lt;branchname&gt;<\/code>.\n<\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/14460\/how-to-completely-reset-a-git-repository-including-untracked-files\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#How To Completely Reset a Git Repository (Including Untracked Files) \u2013 CloudSavvy IT&#8221; Git commands are complicated, and you may often find yourself thinking,\u201cscrew this, I\u2019ll just start over!\u201d Luckily, Git is built to track every version of your changes, and if you messed up, it provides tools for resetting your repository back to its&#8230;<\/p>\n","protected":false},"author":1,"featured_media":354390,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/10\/d5f314a9.png","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-354389","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/354389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=354389"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/354389\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/354390"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=354389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=354389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=354389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}