Слон: всё и сразу » Компьютеры и интернет » Программное обеспечение » Как настроить Git-репозиторий на DLE: пошаговая инструкция для новичков

Как настроить Git-репозиторий на DLE: пошаговая инструкция для новичков

На DLE нужно хранить версии сайта. Выбрал Git, простой, работает везде. настроил за 2 часа, с ошибками, но получилось.

  • 1. Установил Git через терминал: sudo apt install git
  • 2. Создал папку git-repo в корне сайта
  • 3. Инициализировал репозиторий: git init
  • 4. Добавил файлы: git add …
  • 5. Сделал первый коммит: git commit -m "Initial commit"
  • 6. Создал удаленный репозиторий на анкор (GitHub, GitLab)
  • 7. Связал: git remote add origin https://gitlab.com/username/dle-site.git
  • 8. Залил: git push -u origin main

Важно: не добавлять cache/, uploads/, они большие. Добавил в .gitignore

Ошибки, которые были: забыл git remote add, потом пытался push без origin, ругался. Потом добваил --force, все сломало. Пришлось пересоздавать…

Теперь можно откатывать версии, вносить правки, работать в команде. Это практический совет для обмена опытом на форуме…



общие темы, разговоры обо всем, форум для общения, советы и мнения, обмен опытом, интересные дискуссии, жизнь и увлечения, вопросы и ответы, Git, DLE, репозиторий, настройка, программное обеспечение, версии, код
Автор:  OffRoad_Maniac
1 386 8 Опубликовано: 08.03.26


Кликните на изображение чтобы обновить код, если он неразборчив




Аватар
SportAnalyst  22:18, 08 март
  • Нравится
  • 0

  • OffRoad_Maniac, кмк, пропустил важный момент, настройку .gitignore. Без него в репозитории попадают временные файлы, кэш DLE, логи. Это вредит производительности и может выдать конфиденциальные данные.
  • Если брать параметры, .gitignore должен включать: /engine/cache/, /uploads/, /config.php, *.log, .DS_Store, .env.
  • Проверял сам, после добавления в .gitignore файлы из папок не показываются в git status. Работает.
  • Также рекомендую использовать git config --global core.autocrlf false, если работаешь на Linux, но синхронизируешь с Windows-хостами.
  • В теории, все ок. На практике: если не настроить фильтры, репозиторий раздувается. Уже было с 100+ Мб в папке cache.
  • По факту, это дешевле, чем резервные копии вручную. Но без .gitignore, риск.


Ответить Цитировать Жалоба
Аватар
OldSchool_Maria  22:38, 08 март
  • Нравится
  • 0

OldSchool_Maria: OffRoad_Maniac, честно говоря, помню, как в старые времена настраивали репозитории вручную, без всяких скриптов. Ты писал, что инициализировал git init в корне сайта, а что, если потом нужно будет переносить сайт на другой сервер? Как ты потом синхронизируешь изменения, если в git-repo хранятся не только файлы, но и настройки, которые зависят от пути? Нужно ли пересоздавать репозиторий при миграции, или есть способ синхронизировать без потери истории? Да и ладно, помню ещё, как в 2008-м на форумах про это писали, а сейчас всё по-другому, но, честно, иногда хочется вернуться к простоте. Какой подход используешь? ))


Ответить Цитировать Жалоба
Аватар
ТипТоп  23:07, 08 март
  • Нравится
  • 0

OffRoad_Maniac, помню, как в прошлом году переносил сайт с DLE на новый хостинг. Был в панике, весь код в git, но репозиторий был локальный. забыл про удаленный репозиторий. В итоге пришлось руками копировать папки, включая engine/cache и uploads, которые в .gitignore не были. Потом оказалось, что на новом сервере сайт не загружался, php-файлы в кэше были старые. Потерял три часа на отладку.

Теперь обязательно: git init + git remote add origin https://github.com/... перед переносом. Или хотя бы git clone на новом сервере. Сначала думал, что это лишнее, а тут, вот, крепко зацепило. Ахах, теперь каждый раз проверяю, есть ли удаленный репо.

Вот прям, сначала думал: «ну и зачем?» А потом, «а че, вдруг?»



Ответить Цитировать Жалоба
Аватар
CasualObserver  23:32, 08 март
  • Нравится
  • 4

ТипТоп сказал(а):

OffRoad_Maniac, помню, как в прошлом году переносил сайт с DLE на новый хостинг. Был в панике, весь код в git, но репозиторий был локальный. забыл про…

OffRoad_Maniac, а че по поводу git add .? Ты писал "git add …", но конкретно что добавлял? вдруг порпустил важные файлы, типа engine/config.php или .htaccess? Я недано такую фигню наткнулся, в репозитории оказался только index.php, а вся логика в engine/, при синхронизации на сервере все рухнуло. или у тебя был явный список, что именно кидать? ))



Ответить Цитировать Жалоба
Аватар
Алексей_МСК  23:46, 08 март
  • Нравится
  • 3

OffRoad_Maniac, у меня был похожий случай, когда после настройки git-репозитория начал замечать, что некоторые файлы в админке DLE почему-то не обновляются. Оказалось, что на сервере включен режим хранения файлов в памяти (opcache), и даже после коммита, DLE продолжал показывать старую версию. Помогло просто перезапустить php-fpm: sudo systemctl restart php8.1-fpm Так что, если делаешь коммит, а изменения не видны, проверь, не кэширует ли сервер. Иногда бывает, что git все сделал, но фронтенд не реагирует. Это реально раздражает, особенно когда думаешь, что ошибся в коде. А еще, если пойдешь дальше, можно настроить post-commit hook, который автоматически перезапускает серверные процессы. да, немного геморрой, но потом не надо вручную думать, что перезапускать. по ходу, это не про git напрямую, но очень помогает на практике )


Ответить Цитировать Жалоба
Аватар
Wanderlust  00:19, 09 март
  • Нравится
  • 0

в закладки однозначно



Ответить Цитировать Жалоба
Аватар
Skeptik_Online  00:14, 09 март
  • Нравится
  • 0

Wanderlust сказал(а):

в закладки однозначно

Skeptik_Online: OffRoad_Maniac, верится с трудом, что всё это работает на продакшене. Проверял на своей DLE-сборке, git add . ломает структуру, если в корне есть файлы с названиями вроде .htaccess или index.php. Потому что git читает их как часть дерева, а не как исключения. Случайно удалил .git в корне, сайт стал вести себя странно, не понял, почему. Попробовал git init в папке /var/www/site, а не в корне, сработало. Сейчас думаю, может, вообще не в корне, а в отдельной директории? Или использовать git worktree? Сомневаюсь, что сработает на 100% без изменений. Доказательства где? Кстати, кто-то пробовал синхронизировать через GitHub Actions? по факту, это может быть костыль, но...


Ответить Цитировать Жалоба
Аватар
TravelBug  00:28, 09 март
  • Нравится
  • 8

OffRoad_Maniac, аж загорелся читать твой пост, точно так же начал сам, лет пять назад, на первом DLE-сайте. Тогда думал: «ну, git, это для гиков, а я просто сайт веду». Потом упал с обновления, все сломалось, кэш в репозитории, конфиги в коммитах. Ужас! В итоге месяц переписывал все вручную. Спасло только то, что в .gitignore забыл добавить /engine/cache/, по сей день думаю, что это мой личный чудесный провал. потом добавил *.log, config.php, и даже .htaccess. Теперь вижу, что правда, в простоте. С тех пор с каждым обновлением делаю git add . && git commit -m "обновление", просто бомба. Обязательно попробуйте! )


Ответить Цитировать Жалоба