On Tue, Nov 08, 2011 at 11:17:27AM -0300, Dario Rodriguez wrote: > On Tue, Nov 8, 2011 at 11:02 AM, Fredrik Gustafsson <iveqy@xxxxxxxxx> wrote: > > On Tue, Nov 08, 2011 at 10:58:05AM -0300, Dario Rodriguez wrote: > >> Hello, > >> > >> My "issue" comes with my usage of git at work. I work with lots of > >> applications, each of them part of each system. There are lots of > >> processes and lots of subsystems, so I never clone the entire repo > >> into GIT, since it could be painful and slow. Even if I do so, > >> everyone else is using ClearCase, and their changes cannot be included > >> into my git repo until they "chickin". Sometimes, I must update > >> sources from FTP because the changes are not up to date in > >> ClearCase... > >> > >> So, I clone every file that I will need to work into GIT, so i can > >> work with these files having a better control (With ClearCase it's a > >> foolish "checkout>>lots of changes>>checkin" flow). But sometimes I > >> don't know how many files I am going to change until I start coding > >> the requisites. > >> > >> In this cases, there is a situation that I don't know how to handle. > >> If I need to rollback every change made to every file I cannot just > >> checkout the initial commit, cause I've added files after that, and I > >> need their initial versions too. > >> > >> So, how can I checkout the first version of each file? (I know that > >> GIT tracks contents and not files, but the fact is that I need to keep > >> track on files, it's the real thing I work with) > >> > >> pd: Sorry about my Argentinian-English (if it sounds so) > >> > >> Thanks, > >> Dario > >> -- > >> To unsubscribe from this list: send the line "unsubscribe git" in > >> the body of a message to majordomo@xxxxxxxxxxxxxxx > >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > Is all files present in your latest commit? Or can there be deleted > > files that you also need to recover? > > > > -- > > Med vänliga hälsningar > > Fredrik Gustafsson > > > > E-post: iveqy@xxxxxxxxx > > Tel. nr.: 0733 60 82 74 > > > > Every file in the latest working tree is also a tracked file. The > files are being added to the git repo, but not removed from it. > > In other words, the biggest set of files is the latest working tree, > and the smallest one is the first commit. > > Dario I can't see a pure git way of doing this. However, you already seem to use git in a very hackish-way. So here's a quick n' dirty solution (that is not very efficient). (not tested example code, that should be runned from the root-gitdir.): #!/bin/sh git reset --hard HEAD for f in `find` do commit=`git log $f | grep commit | tail -1` git checkout $commit $f done -- Med vänliga hälsningar Fredrik Gustafsson E-post: iveqy@xxxxxxxxx Tel. nr.: 0733 60 82 74 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html