Подскажите: как вносить изменения из github проекта?

Главные вкладки

Аватар пользователя VasyOK VasyOK 15 июня 2023 в 15:17
Допустим создаю проект у себя на ПК и отправляю его на github.
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 branch -M some_changes
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? Та не бред...

Комментарии

Аватар пользователя gun_dose gun_dose 15 июня 2023 в 16:00

На продакшене у тебя всегда должна использоваться только одна ветка. И соответственно должна выполняться только одна команда:
git pull origin название-ветки-продакшена-обычно-это-main

Аватар пользователя pselfin pselfin 15 июня 2023 в 16:20
1

У Никлана есть хорошая статья/видео про деплой.
Там он еще гитлабом пользовался, но сути не меняет.
Другие ветки, если один разраб, и не особо нужны по моему мнению, на простых проектах. Но это не точно

Аватар пользователя VasyOK VasyOK 17 июня 2023 в 10:32

https://www.youtube.com/watch?v=vOO-5QGhZgs - видео это вот. Но оно для сверхчеловеков.

Хорошо вношу коррективы в процесс. Значит если ветка одна, работаю так (?):
Попытка процесса.
У себя на ПК.

git init
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 clone https://github.com/Vasy0K/project.git .

Потом у себя внес изменения и вношу их в эту же ветку:

git branch -M some_changes
git add .
git commit -m "some changes"
git push -u origin main

На сервере

git fetch && git pull

А если несколько веток то как?
Новую ветку в репозиторий закинуть это:

git push -u origin some_changes

А на сервере как из нее?

Аватар пользователя gun_dose gun_dose 17 июня 2023 в 12:35

После того, как ты запушил свою ветку в репозиторий, попроси кого-нибудь из взрослых поревьювить её и смерджить. А потом на продакшене просто git pull. Сервер всегда работает только с одной веткой.

Аватар пользователя VasyOK VasyOK 17 июня 2023 в 15:13

Взрослых нет. Я один. До мерджа я не дошел еще. Пока что просто хочу иметь несколько веток в репозитории. Как на продакшн правильно или определенную ветку закидывать или в репозитории делать определенную ветку дефолтовой (из командной строки)?

Аватар пользователя gun_dose gun_dose 17 июня 2023 в 15:31

Если ты один работаешь на проекте, и кроме локалки сайт крутится только на продакшене, то тебе можно всё делать в одной ветке. Единственный случай, когда надо делать разные ветки при работе в одиночку - это когда тебе приходится постоянно переключаться между разными задачами. Ну например, надо на сайте переделать все вьюхи с обычных на search api. Такая задача может занять несколько дней или даже недель. Но при этом у клиента постоянно есть какие-то мелкие срочные правки. В таком случае логично делать большую задачу в отдельной ветке.

Но потом, когда это будет готово, эту ветку надо будет влить в мастер и уже тогда тянуть на продакшн

Аватар пользователя gun_dose gun_dose 17 июня 2023 в 15:33

Кстати, аргумент -u у команд push и pull, делает ветку дефолтной. Если ты работаешь в одной ветке, то первый раз делаешь git push -u origin master, а в последующие разы просто git push