From: David Jeske Date: Tue, 24 Jun 2008 08:16:15 GMT Subject: Re: why is git destructive by default? (i suggest it not be!) Message-ID: <47013.6552271017$1214295841@news.gmane.org> In-Reply-To: To re-ask the same question I asked in my last post, using your ascii pictures... Let's assume we're here.. .<---.<---.<---A<---X<---Y <--- master \ \--B<---C <--- customer_A_branch <=== HEAD And this person and everyone else moves their head pointers back to master without merging: .<---.<---.<---A<---X<---Y <--- master <=== HEAD \ \--B<---C <--- customer_A_branch Now, five years down the road, our tree looks like: .<---A<---X<---Y<---.<--.<--.(3 years of changes)<---ZZZ<--- master <=== HEAD \ \--B<---C <--- customer_A_branch And someone does: git-branch -f customer_A_branch ZZZ To bring us to: .<---A<---X<---Y<---.<--.(3 years of changes)<---ZZZ<--- master <=== HEAD \ \ \--B<---C \-- customer_A_branch ..at this point, will a GC keep "B<--C", or garbage collect the commits and throw them away?