From: konglu@minatec.inpg.fr Date: Mon, 11 Jun 2012 18:21:32 GMT Subject: Re: Help understanding git checkout behavior Message-ID: <20120611202132.Horde.dPo1XHwdC4BP1jcsTvSBaFA@webmail.minatec.grenoble-inp.fr> In-Reply-To: Cláudio Lourenço a écrit : > The project was going pretty fine, till we start modeling the checkout > operation. We are with some problems finding useful information about > the properties that have to be satisfied when the "git checkout" is > performed. We have concluded that if everything that is on index is > commited then we have no problems making checkout. > The problem is when we have something on index that is not updated > with the last commit. We cannot find a general property that says when > checkout can be performed. We have even found some files that are > lost, like in this case: > > smooke  teste $ git init > Initialized empty Git repository in /home/smooke/Dropbox/teste/.git/ > smooke  teste $ touch f > smooke  teste $ echo a > f > smooke  teste $ git add f > smooke  teste $ git commit -m 'first commit' > [master (root-commit) dab04b9] first commit >  1 files changed, 1 insertions(+), 0 deletions(-) >  create mode 100644 f > smooke  teste $ git branch b > smooke  teste $ touch something > smooke  teste $ echo b > something > smooke  teste $ git add something > smooke  teste $ git commit -m 'something added' > [master 9f2b8ad] something added >  1 files changed, 1 insertions(+), 0 deletions(-) >  create mode 100644 something > smooke  teste $ git rm something > rm 'something' > smooke  teste $ mkdir something > smooke  teste $ cd something/ > smooke  something $ touch f1 > smooke  something $ echo c > f1 > smooke  something $ cd .. > smooke  teste $ git add something/f1 > smooke  teste $ git checkout b > Switched to branch 'b' > smooke  teste $ ls > f > smooke  teste $ git checkout master > Switched to branch 'master' > smooke  teste $ ls > f  something > smooke  teste $ cat something > b What do you mean by "lost files" ? Are you talking about "something" that doesn't appear on branch 'b' ?