Re: How to add folder NON RECURSIVELY ?

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

 



Am 03.04.2012 14:22 schrieb J. Bakshi:
> On Tue, 03 Apr 2012 14:08:38 +0200
> Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> wrote:
> 
>> "J. Bakshi" <joydeep.bakshi@xxxxxxxxxxxxxxx> writes:
>>
>>> I like to add the folder structure in a way that only foo/dir1/file1 is added to
>>> the git. foo/dir2 and foo/dir3 should be added to the git also to show
>>> the directory
>>> structure and not the contents of those folder.
>>
>> Git doesn't record the existance of directories. For Git, a directory
>> exists if and only if it has some files in it. So, "foo/dir2 and
>> foo/dir3 should be added to the git" cannot be done in Git.
>>
>> A common workaround is to create a dummy file, typically .gitignore,
>> within the directories you want to add. Depending on the intended use of
>> the directory, you may want this file to be empty (to tell your
>> collaborators "there's nothing here for now, but there will be later"),
>> or to contain '*' to mean "there will never be any tracked files in this
>> directory".
>>
>> IOW,
>>
>> touch foo/dir2/.gitignore foo/dir3/.gitignore
>> git add foo/dir2/.gitignore foo/dir3/.gitignore
>>
> 
> Thanks for your suggestion.
> So .gitignore for foo/dir2/  and  foo/dir3/ should add those directories non recursively.
> 
> Could you please suggest how can I add foo/dir1/file1 ?
> 
> guess
> 
> touch foo/dir1/.gitignore
> git add foo/dir1/
> git add foo/dir1/file1
> 

Almost ;-)

Since foo/dir1 already contains file1 there's no need to add a
.gitignore in dir1 (except, of course, you really want to ignore sth. in
that directory).

If this is your directory structure:

foo/dir1/file1
foo/dir2
foo/dir3

foo/dir1/ is automatically added when you "git add foo/dir1/file1".
To add the (empty) directories dir2 and dir3 you need some placeholder
file in them because git does not track directories, only files
(together with their path).

Thus:

touch foo/dir2/.gitignore
touch foo/dir3/.gitignore
git add foo/dir2/.gitignore
git add foo/dir3/.gitignore

If you add a directory (like "git add foo/dir1/) git will add all files
in that directory (recursively), again, except for empty directories.


HTH,
	Dirk











--
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]