Webdevkin
Онлайн-курсы, статьи по веб-разработке и интернет-магазинам, уроки vue.js

Git для начинающих. Урок 8.
Ветки на сервере

Урок, в котором мы научимся работать с удаленными ветками и узнаем, зачем нужна команда git fetch

Видеоурок

Конспект урока

Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.

Просмотр веток на сервере

  • git branch выводит список локальных веток
  • git branch -r (remote) - список веток на сервере
  • git branch -a (all) - список всех веток, локальных и удаленных

Удаленные ветки начинаются с remotes/origin/


    $ git branch 
      master
    * news
    
    $ git branch -a
      master
    * news
      remotes/origin/master
      remotes/origin/news
      remotes/origin/students

Как отслеживать новые ветки на сервере

Если мы в проекте не одни, то в нем будут постоянно появляться новые ветки. Но как их увидеть?

Допустим, у нас в проекте есть только ветка master. В это время кто-то добавил новую ветку news. Просто git branch -a удаленные ветки не покажет


    $ git branch -a
    * master
      remotes/origin/master

Чтобы их увидеть, сначала нужно выполнить команду git fetch, которая сходит на сервер и проверит, что там есть нового


    $ git fetch
    remote: Enumerating objects: 5, done.
    remote: Counting objects: 100% (5/5), done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), done.
    From github.com:Webdevkin/site-git
     * [new branch]      news       -> origin/news

Мы видим, что появилась новая ветка news, и команда git branch -a это подтверждает


     $ git branch -a
    * master
      remotes/origin/master
      remotes/origin/news

Обратите внимание, ветка news появилась только в списке удаленных, но не локальных. То есть команда git fetch не создает локальные ветки, она просто подтягивает информацию о них. Чтобы переключиться на новую ветку, нужно выполнить git checkout


    $ git checkout news 
    Branch news set up to track remote branch news from origin.
    Switched to a new branch 'news'

Вот теперь мы переключились на новую ветку


    $ git branch -a
      master
    * news
      remotes/origin/master
      remotes/origin/news

Как удалить ветку с сервера

Выполняем пуш ветки, только с флагом --delete


    $ git push origin --delete news
    To git@github.com:Webdevkin/site-git.git
     - [deleted]         news

Как работать с удаленными ветками в PhpStorm

Точно так же, как и с локальными, только в списке Remote Branches. Чтобы увидеть новые ветки, тоже нужно выполнить команду fetch. Правый клик - Git - Repository - Fetch. А уже потом можно переключаться на эту ветку: Remote Branches - branch_name - Checkout as...

Что могу посоветовать

  • регулярно просматривайте github - так вы будете лучше понимать, чем занимаются ваши коллеги
  • не забывайте делать git fetch перед переключением на удаленную ветку
  • обсудите с коллегами правила именования веток и соблюдайте их

Я не в первый раз упоминаю про именование коммитов и веток. Если вы работаете один, то как называть - ваше дело. Но если работаете в команде, то несоблюдение каких-то правил могут привести примерно к этому

Git naming

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

На этом все. В следующем уроке мы поговорим о слиянии или мерджах веток.

Спасибо за внимание и до встречи!

Понравилось? Поделись с другими :-)