Re: Definition of working directory

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

 



So if I have a project called MyProject and inside that I have two sub-directories dir1 and dir2. Does that mean working directory is *ALWAYS* MyProject.

Also if i create some file in dir1 and do git status without git add then it display untracked files as ../dir1/ It doesn't display the untracked file name but after I do git add when I did git status it does give me file under changes to be committed. Why didn't it shows file with name as untracked in first case?

On 3/27/2012 1:10 PM, Junio C Hamano wrote:
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]