{"id":158,"date":"2021-01-19T13:52:20","date_gmt":"2021-01-19T05:52:20","guid":{"rendered":"https:\/\/www.tonghin.com.my\/blog\/?p=158"},"modified":"2021-01-19T13:52:21","modified_gmt":"2021-01-19T05:52:21","slug":"remove-file-from-git-repository-history","status":"publish","type":"post","link":"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/","title":{"rendered":"Remove File from Git Repository History"},"content":{"rendered":"\n<p>As I my implementation goes on, I push few commit upon my progress to bitbucket origin\/develop branch. However, there is files\/class that I want to remove from previous commits. After search up the internet, I get to know that git  <code><sup><sub>rm \"filesname\"<\/sub><\/sup><\/code> command in new commit will not completely remove it from previous commits. Thus, after referring to my supervisor, I get to known there is a way to remove those files, which is by <a href=\"https:\/\/dev.to\/moshe\/remove-accidentally-pushed-file-from-a-git-repository-history-in-4-simple-steps-18cg\">rebase <\/a>and rewrite history of commit.<br><br>Beside, fix <sub><sup><code>IsReady<\/code><\/sup><\/sub> happens to have bug when I close and reopen the form. Given that I faced this situation quite often, I know that the bug is due to event aggregator is not unsubscribed during <code><sub><sup>OnCloseDialog()<\/sup><\/sub><\/code>. Thus, I just add a unsubscribe function and dispose the event for <code><sub><sup>IsReady<\/sup><\/sub><\/code>&#8216;s view model class. <br><br>Lastly, I also add try catch statement and dialog when updating\/creating data. This, is to notify user if there is error when updating changes onto database. I also add in  new logic for <sub><sup><code>IsCancelled <\/code><\/sup><\/sub>in my repository class.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I my implementation goes on, I push few commit upon my progress to bitbucket origin\/develop branch. However, there is files\/class that I want to remove from previous commits. After search up the internet, I get to know that git rm &#8220;filesname&#8221; command in new commit will not completely remove it from previous commits. Thus, &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Remove File from Git Repository History&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[4],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Remove File from Git Repository History | Tong Hin&#039;s Blog<\/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:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Remove File from Git Repository History | Tong Hin&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"As I my implementation goes on, I push few commit upon my progress to bitbucket origin\/develop branch. However, there is files\/class that I want to remove from previous commits. After search up the internet, I get to know that git rm &quot;filesname&quot; command in new commit will not completely remove it from previous commits. Thus, &hellip; Continue reading &quot;Remove File from Git Repository History&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/\" \/>\n<meta property=\"og:site_name\" content=\"Tong Hin&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-19T05:52:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-19T05:52:21+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"1 minute\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#organization\",\"name\":\"TONG HIN MACHINERY\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/\",\"sameAs\":[\"https:\/\/www.youtube.com\/channel\/UC60EoxJMNbu8mV0LuEGfrBg\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/wp-content\/uploads\/2020\/10\/web_logo_180_180.jpg\",\"width\":180,\"height\":180,\"caption\":\"TONG HIN MACHINERY\"},\"image\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#website\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/\",\"name\":\"Tong Hin&#039;s Blog\",\"description\":\"Sharing About Technology\",\"publisher\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.tonghin.com.my\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/#webpage\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/\",\"name\":\"Remove File from Git Repository History | Tong Hin&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#website\"},\"datePublished\":\"2021-01-19T05:52:20+00:00\",\"dateModified\":\"2021-01-19T05:52:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/\",\"url\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/\",\"name\":\"Remove File from Git Repository History\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#\/schema\/person\/5c3ea1c3869fc5aace6be92e60cb5daa\"},\"headline\":\"Remove File from Git Repository History\",\"datePublished\":\"2021-01-19T05:52:20+00:00\",\"dateModified\":\"2021-01-19T05:52:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#organization\"},\"keywords\":\"git\",\"articleSection\":\"Experiential\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.tonghin.com.my\/blog\/2021\/01\/19\/remove-file-from-git-repository-history\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#\/schema\/person\/5c3ea1c3869fc5aace6be92e60cb5daa\",\"name\":\"Ng Ching Onn\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.tonghin.com.my\/blog\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5124ba2323631ad4d512f46bd9c04829?s=96&d=mm&r=g\",\"caption\":\"Ng Ching Onn\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/posts\/158"}],"collection":[{"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/comments?post=158"}],"version-history":[{"count":2,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/posts\/158\/revisions"}],"predecessor-version":[{"id":161,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/posts\/158\/revisions\/161"}],"wp:attachment":[{"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/media?parent=158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/categories?post=158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tonghin.com.my\/blog\/wp-json\/wp\/v2\/tags?post=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}