Re: Fwd: Re: git checkout -f branch doesn't remove extra files
From: Petr Baudis <hidden>
Date: 2016-06-15 22:42:04
Dear diary, on Sat, Aug 13, 2005 at 07:05:11AM CEST, I got a letter where Linus Torvalds [off-list ref] told me that...
If you really want a temporary tree, what you do is something like git-checkout-cache --prefix=tmp-dir/ -f -a and when you're done, you just do rm -rf tmp-dir and you're done. NOTE NOTE NOTE! In the above, the order of the parameters is really really important! "-a" takes effect when it is seen, so it needs to be last. Also, the "--prefix" thing really _really_ needs the slash at the end, because it's literally used to prefix the pathname. HOWEVER, if all you want to do is just a tar-file, then there's a better solution. It's called snap=git-snapshot-$(date +"%Y%m%d") git-tar-tree HEAD $snap | gzip -9 > $snap.tar.gz which is even easier, and a hell of a lot more efficient.
To put my two cents too, Cogito has cg-export for this: cg-export tmp-dir to export to a temporary directory and cg-export git-snapshot.tar.gz to export to a gzipped tarball (it can also do .tar, .tgz and .tar.bz2). -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ If you want the holes in your knowledge showing up try teaching someone. -- Alan Cox