Anjib Mulepati <anjibcs@xxxxxxxxxxx> writes: > I was reading Git Community Book and came across following definition > for working directory > > The Working Directory > > The Git 'working directory' is the directory that holds the current > checkout of the files you are working on. Files in this directory are > often removed or replaced by Git as you switch branches - this is > normal. All your history is stored in the Git Directory; the working > directory is simply a temporary checkout place where you can modify > the files until your next commit. > > What does it mean by this " Files in this directory are often removed > or replaced by Git as you switch branches"? I think the common terminology for the concept the above describes is "the working tree". > And does working directory is just a directory we get with $pwd ? After you clone, you have one directory that contains all the files from one specific version in it. The files may be organized into directory hierarchy, but there is a single top-level directory. That is the "working tree". When we want to be absolutely clear, we may even say "the top of the working tree", even though it may be redundant. If you are at such a directory, $(pwd) may match it. If you chdir to a subdirectory from there, e.g. "cd Documentation", $(pwd) and the top of the working tree will of course disagree. The files checked out in the working tree represent the contents of the version that was checked out, plus modifications you make locally. When you check out a different branch (people coming from svn background may say "switch branch", but it is the same thing), the working tree will need to represent the contents of the version at the tip of that different branch. If you have a file in the current branch but not in that different branch you are checking out, that file has to go away. If you do not have a file in the current branch but not in that different branch you are checking out, that file needs to be created in the working tree. If the contents of a file is different between your current branch and the branch you are checking out, the file in the working tree needs to be updated to match that of the branch you are checking out. That is what the "... are often removed or replaced" part is talking about. -- 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