git init
git add .
git commit -m "main"
git branch -M main
git remote add origin https://github.com/Vasy0K/project.git
git push -u origin main
Потом вношу какие-то изменения и создаю новую ветку с ними.
git add .
git commit -m "some changes"
git push -u origin some_changes
Уже на сервере в папке сайта клонирую файлы с ветки гита.
git clone -b some_changes https://github.com/Vasy0K/project.git .
Все конечно работает, но в папке сайта может быть много файлов, которых нет в последней ветке и которые больше не нужны.
Что с этим делать?
rm -rf весь проект а потом снова git clone? Та не бред...
Комментарии
На продакшене у тебя всегда должна использоваться только одна ветка. И соответственно должна выполняться только одна команда:
git pull origin название-ветки-продакшена-обычно-это-main
У Никлана есть хорошая статья/видео про деплой.
Там он еще гитлабом пользовался, но сути не меняет.
Другие ветки, если один разраб, и не особо нужны по моему мнению, на простых проектах. Но это не точно
https://www.youtube.com/watch?v=vOO-5QGhZgs - видео это вот. Но оно для сверхчеловеков.
Хорошо вношу коррективы в процесс. Значит если ветка одна, работаю так (?):
Попытка процесса.
У себя на ПК.
git add .
git commit -m "Начало проекта"
git branch -M main
git remote add origin https://github.com/Vasy0K/project.git
git push -u origin main
На сервере
Потом у себя внес изменения и вношу их в эту же ветку:
git add .
git commit -m "some changes"
git push -u origin main
На сервере
А если несколько веток то как?
Новую ветку в репозиторий закинуть это:
А на сервере как из нее?
После того, как ты запушил свою ветку в репозиторий, попроси кого-нибудь из взрослых поревьювить её и смерджить. А потом на продакшене просто git pull. Сервер всегда работает только с одной веткой.
Взрослых нет. Я один. До мерджа я не дошел еще. Пока что просто хочу иметь несколько веток в репозитории. Как на продакшн правильно или определенную ветку закидывать или в репозитории делать определенную ветку дефолтовой (из командной строки)?
Если ты один работаешь на проекте, и кроме локалки сайт крутится только на продакшене, то тебе можно всё делать в одной ветке. Единственный случай, когда надо делать разные ветки при работе в одиночку - это когда тебе приходится постоянно переключаться между разными задачами. Ну например, надо на сайте переделать все вьюхи с обычных на search api. Такая задача может занять несколько дней или даже недель. Но при этом у клиента постоянно есть какие-то мелкие срочные правки. В таком случае логично делать большую задачу в отдельной ветке.
Но потом, когда это будет готово, эту ветку надо будет влить в мастер и уже тогда тянуть на продакшн
Кстати, аргумент -u у команд push и pull, делает ветку дефолтной. Если ты работаешь в одной ветке, то первый раз делаешь git push -u origin master, а в последующие разы просто git push