"J. Bakshi" [off-list ref] 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/
On Tue, 03 Apr 2012 14:08:38 +0200
Matthieu Moy [off-list ref] wrote:
"J. Bakshi" [off-list ref] writes:
quoted
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
??
Am 03.04.2012 14:22 schrieb J. Bakshi:
On Tue, 03 Apr 2012 14:08:38 +0200
Matthieu Moy [off-list ref] wrote:
quoted
"J. Bakshi" [off-list ref] writes:
quoted
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