Вот простой способ добавить пустые каталоги:
//create some empty, gitignore files.
touch ./someDir/.gitignore
touch ./someOtherDir/.gitignore
... и т.д .. * * 1004
git add ./someDir/.gitignore
git add ./someOtherDir/.gitignore
... и т.д ...
git commit -am " Add empty project directories."
Это потому, что, как упоминалось в других ответах, git отслеживает файлы в каталогах, но игнорирует каталоги самостоятельно. Это также может быть исправлено / решено в механизме git add в более современных версиях (я смутно помню, как они добавляли свои собственные файлы .gitignore в пустые каталоги), поэтому я действительно рекомендую попробовать обновить версию Git до максимально возможной. для этого и других преимуществ ваш дистрибутив может по умолчанию предоставить более старую версию, как это делают ubuntu и debian.
Изменить:
Вышеупомянутая методика разработана для минимального нарушения ваших рабочих каталогов, чтобы отслеживать пустые папки. -Каждый каталог в моих примерах получит свой собственный файл .gitignore (вы можете иметь столько файлов .gitignore, сколько вам нужно, они являются аддитивными).
Итак, в конце ваша структура папок будет выглядеть так:
/var/tmp/main
.. plugin1
.... mysource.c
.... .gitignore
.. plugin2
.... mysource.c
.... .gitignore
.. plugin3
.... mysource.c
.... .gitignore
И тогда вы добавите файлы .gitignore в качестве заполнителей!
Но давайте сделаем шаг назад и попробуем противоположную тактику:
Максимальная видимость.
Перейдите в любую папку, которую хотите добавить, например, plugin1
. Создайте файл в этой папке, назовите его placeholder
.
Теперь перейдите к этой папке из командной строки, например, cd /var/tmp/main/plugin1/
и git add
этот файл-заполнитель, например git add placeholder
. Вы сказали git, что хотите, чтобы этот файл отслеживался (если вы наберете git diff
, вы можете просмотреть «предложенные» изменения. Он скажет вам, что видит файл, но это просто пустой файл, что нормально) ,
Теперь зафиксируйте файл: git commit placeholder -m " Adding a Placeholder file."
Когда вы добавляете какой-либо файл, все папки, содержащие этот файл, вплоть до основной папки git, также добавляются, так что теперь у вас есть / plugin1 / tracked in git.
Просмотрите, используйте git add /path/to/file
на любом из этих (?) C исходных файлов, которые у вас есть, и затем зафиксируйте изменения с помощью git commit /path/to/file
. Как правило, все, что является чистым текстом, конечно, хорошо добавить в репозиторий.
Наконец: имейте в виду, что git status
предназначен только для того, чтобы сообщать вам об измененных, отслеживаемых файлах, включая недавно добавленные файлы. Если модификаций не будет, вы получите только пустой вывод.
Чтобы увидеть файлы, которые фактически отслеживаются git, используйте git ls-tree HEAD
, который покажет только отслеженные файлы!
Для чистого старта
Вот как я обычно запускаю git-репозиторий.
cd /path/to/project/
git init
echo "README" >> README
git add .
git commit -am " Initial Commit of readme and files."