Re: Definition of working directory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]