* How to add folder NON RECURSIVELY ?
@ 2012-04-03 12:01 J. Bakshi
2012-04-03 12:08 ` Matthieu Moy
0 siblings, 1 reply; 6+ messages in thread
From: J. Bakshi @ 2012-04-03 12:01 UTC (permalink / raw)
To: git
Hello,
Please consider the following folder structure
` ` ` `
foo/
foo/dir1/file1
foo/dir2/file2
foo/dir2/file3
` ` ` ` ` ` `
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.
It is easy in SVN by --non-recursive switch, but how can I do this in git with .gitignore ?
Thanks
BTW: Please CC to me
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to add folder NON RECURSIVELY ?
2012-04-03 12:01 How to add folder NON RECURSIVELY ? J. Bakshi
@ 2012-04-03 12:08 ` Matthieu Moy
2012-04-03 12:22 ` J. Bakshi
0 siblings, 1 reply; 6+ messages in thread
From: Matthieu Moy @ 2012-04-03 12:08 UTC (permalink / raw)
To: J. Bakshi; +Cc: git
"J. Bakshi" <joydeep.bakshi@infoservices.in> 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
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to add folder NON RECURSIVELY ?
2012-04-03 12:08 ` Matthieu Moy
@ 2012-04-03 12:22 ` J. Bakshi
2012-04-03 13:12 ` Dirk Süsserott
2012-04-03 13:15 ` Matthieu Moy
0 siblings, 2 replies; 6+ messages in thread
From: J. Bakshi @ 2012-04-03 12:22 UTC (permalink / raw)
To: Matthieu Moy; +Cc: git
On Tue, 03 Apr 2012 14:08:38 +0200
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:
> "J. Bakshi" <joydeep.bakshi@infoservices.in> 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
??
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to add folder NON RECURSIVELY ?
2012-04-03 12:22 ` J. Bakshi
@ 2012-04-03 13:12 ` Dirk Süsserott
2012-04-03 13:15 ` Matthieu Moy
1 sibling, 0 replies; 6+ messages in thread
From: Dirk Süsserott @ 2012-04-03 13:12 UTC (permalink / raw)
To: J. Bakshi; +Cc: Matthieu Moy, git
Am 03.04.2012 14:22 schrieb J. Bakshi:
> On Tue, 03 Apr 2012 14:08:38 +0200
> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:
>
>> "J. Bakshi" <joydeep.bakshi@infoservices.in> 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to add folder NON RECURSIVELY ?
2012-04-03 12:22 ` J. Bakshi
2012-04-03 13:12 ` Dirk Süsserott
@ 2012-04-03 13:15 ` Matthieu Moy
2012-04-04 6:52 ` J. Bakshi
1 sibling, 1 reply; 6+ messages in thread
From: Matthieu Moy @ 2012-04-03 13:15 UTC (permalink / raw)
To: J. Bakshi; +Cc: git
"J. Bakshi" <joydeep.bakshi@infoservices.in> writes:
> Could you please suggest how can I add foo/dir1/file1 ?
>
> guess
>
> touch foo/dir1/.gitignore
> git add foo/dir1/
Not if you want only "file1" to be added. As I said, Git doesn't know
and doesn't want to know about directories. So "git add directory/" is
just a shorthand that adds all (non-ignored) files in this directory.
> git add foo/dir1/file1
This last line alone will do it.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to add folder NON RECURSIVELY ?
2012-04-03 13:15 ` Matthieu Moy
@ 2012-04-04 6:52 ` J. Bakshi
0 siblings, 0 replies; 6+ messages in thread
From: J. Bakshi @ 2012-04-04 6:52 UTC (permalink / raw)
To: Matthieu Moy; +Cc: git
On Tue, 03 Apr 2012 15:15:37 +0200
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:
> "J. Bakshi" <joydeep.bakshi@infoservices.in> writes:
>
> > Could you please suggest how can I add foo/dir1/file1 ?
> >
> > guess
> >
> > touch foo/dir1/.gitignore
> > git add foo/dir1/
>
> Not if you want only "file1" to be added. As I said, Git doesn't know
> and doesn't want to know about directories. So "git add directory/" is
> just a shorthand that adds all (non-ignored) files in this directory.
>
> > git add foo/dir1/file1
>
> This last line alone will do it.
>
Thanks a lot to all of you for your valuable suggestion.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-04-04 6:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-03 12:01 How to add folder NON RECURSIVELY ? J. Bakshi
2012-04-03 12:08 ` Matthieu Moy
2012-04-03 12:22 ` J. Bakshi
2012-04-03 13:12 ` Dirk Süsserott
2012-04-03 13:15 ` Matthieu Moy
2012-04-04 6:52 ` J. Bakshi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).