@anton_kP

Можно ли в гитхаб объединять код в одном файле при совместной работе, а не заменять версии?

Подскажите по трем вопросам, не могу разобраться:
1. Допустим два программиста с утра загружают обновления к себе, работают над одним файлом и как я прочитал - могут выкладывать в проект свои версии. Когда ты работаешь один - тут все просто, а допустим в команде непонятно как сохранятся и объединятся правки.
Я например, сильно изменил файл, часть кода выкинул, часть добавил, где то внес изменения. Загрузил в проект, а мой коллега, чуть позже тоже загружает в проект свои доработки. Получается, что он заменит мой файл своим. Можно ли сделать, чтобы код наших файлов объединился, а не заменялся.
Для примера: я разрабатываю html верстку и работаю над header, а коллега на footer. И мы не должны затирать правки друг друга.

2. Правильно ли я понимаю, чтобы на своем компьютере работать и выгружать изменения, я должен git установить на сервере, где крутится сайт, чтобы видеть файлы у себя на компьютере? Не совсем понимаю, как настроить синхронизацию папок именно с сайтом через гитхаб.

3. Нормально ли в гитхаб завести репозиторий типа песочницы, и хранить там разные куски кода (шаблоны верстки, примеры css) или гитхаб нужен именно для ведения проектов. Раньше всякую всячину хранил в сервисах, типа Кодепен.
  • Вопрос задан
  • 233 просмотра
Решения вопроса 3
Получается, что он заменит мой файл своим
Не заменит, потому что когда он попытается свои правки отправить, он получит сообщение о том, что есть конфликты, которые нужно руками разрешить.
Но поскольку резолвить конфликты - это та ещё канитель, разработчики заранее договариваются, что и где они делают, чтобы зоны работы максимально не пересекались, а файлы делаются небольшими (например, шапку и подвал выносят в свои отдельные шаблоны).

Правильно ли я понимаю
Гит на сервере никак не связан с вашим компьютером.

Нормально ли
Да делайте как хотите, полиции гита урезали финансирование и они теперь никого не арестовывают. Но вообще для "кусков кода" есть https://gist.github.com.
Ответ написан
Комментировать
sergey-kuznetsov
@sergey-kuznetsov Куратор тега GitHub
Автоматизатор
могут выкладывать в проект свои версии

Не могут. Гит это не какой-то FTP-сервер, куда можно выкладывать файлы. Ты можешь только синхронизировать свою локальную ветку и внешнюю на сервере.

в команде непонятно как сохранятся и объединятся правки

Почитай инструкцию к гиту и всё станет понятно. Если вышестоящая ветка (сервер) содержит коммиты, которых ты ещё не видел, то ты просто не сможешь отправить (push). Тебе придётся сначала скачать серверную версию ветки (fetch) и потом объединить на своём компьютере две версии кода (merge).
Если вы работали над разными фрагментами файла, то слияние произойдёт автоматически и ничего не затрётся.
Получится новый файл, который содержит общую работу. Потом ты сможешь отправить уже свою работу во внешний репозиторий (сервер).

Но вообще так не делают. Под каждую задачу нужно создавать отдельную ветку и потом коллеги должны давать рецензию на твой код и проверять на ошибки. Если всё хорошо, то только потом сливать в основную ветку.

Не совсем понимаю, как настроить синхронизацию папок именно с сайтом через гитхаб

Это называется CI/CD. Доставка файлов на собственно на сайт настраивается отдельно. Не надо ставить гит на сервер.

Нормально ли в гитхаб завести репозиторий типа песочницы, и хранить там разные куски кода

Репозиторий заводить для этого не очень удобно. Лучше храни куски кода на https://gist.github.com.
Ответ написан
Комментировать
ddv88
@ddv88
Binance Futures
в разные ветки каждый пушит свои изменения
мержите их в какой нибудь dev
ресолвите конфликты
если что то в деве пошло не так, откатываете изменения и ресолвите еще раз и так до нужного результата
мержите dev в мастер
готово
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev
software engineer
Файлы которые изменялись в разных местах автоматически объединят изменения.
Если вы правили одну и ту же строчку, тот кто будет отправлять свои изменения последним получит уведомление, получит файл со всеми изменениями и ему нужно будет решить конфликт руками.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы