{"id":16631,"date":"2016-12-15T14:08:47","date_gmt":"2016-12-15T19:08:47","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=16631"},"modified":"2016-12-21T08:40:15","modified_gmt":"2016-12-21T13:40:15","slug":"another-git-catastrophe-cleaned-up","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2016\/12\/15\/another-git-catastrophe-cleaned-up\/","title":{"rendered":"Another Git Catastrophe Cleaned Up"},"content":{"rendered":"<p><a href=\"http:\/\/blog.plover.com\/prog\/git-tastrophe.html\">Mark Dominus<\/a>:<\/p>\n<blockquote cite=\"http:\/\/blog.plover.com\/prog\/git-tastrophe.html\">\n<p>At that point I realized that <code>git-filter-branch<\/code> also provided a less\npeculiar way out of the pickle once we were in: Instead of using my\nmerge driver approach, I could have filtered the original topic branch\nto produce just branch <em>B<\/em>, which would have rebased onto <code>master<\/code>\njust fine.<\/p>\n<p>I was aware that <code>git-filter-branch<\/code> was not part of my personal\ntoolkit, but I was unaware of the extent of my unawareness.  I would\nhave hoped that even if I hadn't known exactly how to use it, I would\nat least have been able to <em>think<\/em> of using it.  I plan to\nset aside an hour or two soon to do nothing but mess around with\n<code>git-filter-branch<\/code> so that next time something like this happens I\ncan at least consider using it.<\/p>\n<\/blockquote>\n<p>Update (2016-12-21): See also: <a href=\"https:\/\/news.ycombinator.com\/item?id=13228490\">Hacker News<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Mark Dominus: At that point I realized that git-filter-branch also provided a less peculiar way out of the pickle once we were in: Instead of using my merge driver approach, I could have filtered the original topic branch to produce just branch B, which would have rebased onto master just fine. I was aware that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[377],"class_list":["post-16631","post","type-post","status-publish","format-standard","hentry","category-technology","tag-git"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/16631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=16631"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/16631\/revisions"}],"predecessor-version":[{"id":16686,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/16631\/revisions\/16686"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=16631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=16631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=16631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}