Нужно ли обновлять ветку до состояния мастера
Есть репозиторий, в котором хранятся разные python notebook. Cитуация, я работаю над notebook_1 в ветке analysis. Пришла срочная задача, я переключаюсь на работу с notebook_2 в ветке fix. Сделал необходимую работу с notebook_2, я делаю push на удаленный сервер. Так вот вопрос:
- Я возвращаюсь к работе в ветке analysis, соответсвенно она не имеет изменений в notebook_2, соответсвенно когда я сделаю push на удаленный сервер с ветки analysis, мои зменения в notebook_2 не сотрутся?
- Когда я в мастер сделаю git pull, мои локальные ветки обновляться в соответсвии с мастером?
- Если нет, то нужно ли делать такое обновление, или это необходимо только если в ветке чего то не хватает для работы. Спасибо!
Ответы (1 шт):
Есть репозиторий, в котором хранятся разные python notebook
Вопрос задан про git, так что было бы крайне полезно уточнять не связанные с git вещи в общеизвестных или git-специфичных терминах. Далее в ответах исхожу из того, что это соседние папки в одном репозитории.
Сделал необходимую работу с notebook_2, я делаю push на удаленный сервер.
Так как не указано иное, исхожу из того, что эти изменения так и остаются в ветку fix, но уже удалённой, и в master'е их нет.
- Я возвращаюсь к работе в ветке analysis, соответсвенно она не имеет изменений в notebook_2, соответсвенно когда я сделаю push на удаленный сервер с ветки analysis, мои зменения в notebook_2 не сотрутся?
Операция push (без указания специальных ключей) не может ничего стереть. Она лишь добавляет новые коммиты в удаленный репозиторий, беря их из вашей локальной копии.
Если речь идёт о последующем merge, то файлы, не затронутые в ветку не будут откатываться при слиянии (опять же, если об этом специально не попросить git специальными ключами в команде слияния)
- Когда я в мастер сделаю git pull, мои локальные ветки обновляться в соответсвии с мастером?
Крайне не советую использовать команду pull, пока не поймёте на 100% что и как она делает.
pull = fetch + merge.
fetch копирует вам в локальный репозиторий новые коммиты из удалённого, и сдвигает на них указатели remote-веток. Локальные ветки никак не затрагиваются.
merge всегда обрабатывает только одну ветку - текущую.
Таким образом pull не обновит ваши локальные ветки, он обновит одну вашу локальную ветку.
- Если нет, то нужно ли делать такое обновление, или это необходимо только если в ветке чего то не хватает для работы.
Не нужно делать то, что ни на что не повлияет.
PS. Если регулярное обновление ветки из master'а — это приказ начальства, то выполнение или невыполнение этого действия влияет на отношение к вам, а значит нельзя считать, что оно ни на что не влияет.