Задать вопрос

Вопросик по Git push?

Из книги по гиту
$ git checkout -b sf origin/serverfix
Branch sf set up to track remote branch refs/remotes/origin/serverfix.
Switched to a new branch "sf"
Теперь ваша локальная ветка sf будет автоматически отправлять (push) и получать (pull) изменения из origin/serverfix.

эм те если я сделаю ветку из master
$ git checkout -b sf origin/master
накомичу своих изменений и сделаю
$ git Push
то все это залью в ветку master на сервере ? и перетру там все другие изменения ?
  • Вопрос задан
  • 696 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 3
@springimport
Да, только при чем тут перетирание изменений?
Ответ написан
Комментировать
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
эм те если я сделаю ветку из master
$ git checkout -b sf origin/master
накомичу своих изменений и сделаю
$ git Push
то все это залью в ветку master на сервере ? и перетру там все другие изменения ?

Почему перетрёшь? Если ты накоммитил поверх текущего мастера, и никто до твоего push больше ничего в мастер не залил, твои изменения просто добавятся в мастер. Если master изменился -- получишь ошибку.
Ответ написан
Комментировать
monester
@monester
DevOps/Python engineer
Короткий ответ: нет

Развернутый ответ:
> git checkout -b sf origin/serverfix
сделает ответвление от бранчи serverfix на удаленном хосте

> git push
не отправит ничего, т.к. ничего не было изменено в ветке sf

> git push origin master
отправит все изменения в мастер, если они были сделаны поверх последнего коммита или выдаст ошибку если sf не включает все коммиты мастера

> git push --force origin master
отправит все изменения в мастер даже если были коммиты которых нет в sf

Для того, что бы не затереть ничего в мастере перед git push лучше сделать
> git fetch origin
> git rebase origin/master

Что бы посмотреть на дерево коммитов можно воспользоваться коммандой:
> git tree = log --oneline --decorate --all --graph
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽