Вопросик по 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 на сервере ? и перетру там все другие изменения ?
  • Вопрос задан
  • 614 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы