Страницы

Поиск по вопросам

воскресенье, 29 марта 2020 г.

git-push для отдельной директории

#git #github #git_push


Resourse:

Структура проекта

.git
build/
fonts/
node_modules/
src/
.gitignore
gulpfile.js
package.json
package-lock.json


файл .gitignore
Это те файлы, которые мне не нужно отправлять в репо

node_modules/
.idea/
gulpfile.js
package.json
package-lock.json
src/
fonts/
.git/


Summary:
Когда произвожу git push origin push 
почему-то в  репозиторий появляются такая структура

build
fonts
src
.gitginore


Question:

Как же сделать, чтобы отправить только папку build(только содержимое этой папки,
а не саму папку)??
Заранее приношу извинения... Я не особо силен в git
    


Ответы

Ответ 1



Система контроля версий не предназначена для того, чтобы оперировать файлы. Она нужна только для того, чтобы хранить их историю. Всё остальное должны выполнять другие утилиты. Когда Вы делаете коммит, в репозиторий отправляется ровно та структура, которая сейчас есть рядом с .git-файлом, за исключением пустых папок (если в них нет .gitkeep и объектов из .gitignore). Поэтому Вы видите такую структуру. Таким образом, Ваша задача распадается на 2 несколькими способами. Способ 1: Перенести всё из build в основную репу Добавить в коммит только те файлы, которые Вам нужны Сделать коммит Способ 2: Перенести всё из build в основную репу Добавить все файлы, которые Вам НЕ нужны в .gitignore Сделать коммит Способ 3: Создать в build отдельный репозиторий Сделать коммит Как переносить файлы, это дело Ваше. Я предлагаю использовать утилиту make, сделав соответствующее правило. В таком случае, это будет выглядеть более технологично. Отдельно можно обсудить каждый из этих вариантов, но все они выглядят как костыли, поскольку пушить бинарные файлы в репу -- это плохо. Я бы сказал, что это антипаттерн. Бинарные файлы собираются под конкретную архитектуру. Кроме того, человек может легко собрать соответствующий файл сам или забрать из последнего релиза.

Комментариев нет:

Отправить комментарий