Первый день работаю с GIT (BitBucket).
Возник вопрос как создать и закоммитить директорию.
Добавил в основную папку проекта (на локале) директорию. Потом в терминале написал:
git add *
git push
и в итоге ничего не изменилось. Подскажите, что я делаю не так?
Ответ
Чтобы git сохранил директорию:
Она должна быть непустой.
Нужно добавить её содержимое и сделать коммит.
1. Директория должна быть непустой
Добавить пустую директорию нельзя. Команда git add «видит» только файлы и пути, в которых они лежат.
Чтобы сохранить пустую директорию, создайте в ней пустой файл .gitkeep и добавьте его в git.
Почему git так работает?
Потому что он хранит данные в виде следующих объектов:
Blob, блоб (от Binary Large OBject) — бинарный архив файла.
Tree, дерево — текстовый список содержимого директории: файлов (блобов) и других директорий (деревьев).
Дерево не может быть пустым — by design, так устроен алгоритм. Поэтому пустую директорию нельзя добавить. Чтобы её наполнить, достаточно создать в ней файл. Обычно такой файл называют .gitkeep, но допустимо любое имя.
Например, в директории есть файл и ещё пара директорий, одна из которых пуста. Вот что будет после команды git add .
на диске: в индексе git:
. tree
├── dir1 tree
│ └── file1 blob
├── dir2 (ничего)
└── file2 blob
Чтобы узнать про другие объекты и подробности, читайте Git from the bottom up
2. Нужно сделать коммит
Команда git add только добавляет файлы в индекс, после чего нужно сохранить их командой git commit
Для добавления используйте git add ., а не *
Комментариев нет:
Отправить комментарий