Finally!))

Git предоставляет мощные инструменты для совместной разработки, позволяя нескольким разработчикам работать над одним и тем же кодом. Для этого используются удаленные репозитории, обычно расположенные на серверах вроде GitHub, GitLab или Bitbucket.

Управление удаленными репозиториями (remotes)

Для начала нужно добавить удаленный репозиторий к своему локальному проекту:

git remote add origin <url>

Эта команда создает удаленную ссылку с сокращением "origin" на указанный URL-адрес. По соглашению origin используется как сокращение для основного репозитория проекта. Чтобы получить url адрес репозитория - создаём его, например, на github.

Команда git remote -v используется для вывода списка удаленных репозиториев, связанных с вашим локальным репозиторием, а также их URL-адресов.

Получение изменений из удаленного репозитория (git fetch/pull)

В процессе разработки, вероятно, другие разработчики также внесут изменения в тот же удаленный репозиторий. Получить эти изменения в локальный репозиторий можно двумя способами:

  1. git fetch - получить изменения с удаленного репозитория без их автоматического слияния с вашими локальными изменениями.

    # скачивает обновления для всех удалённых веток в связанные с ними локальные ветки
    git fetch
    
    # скачиваем обновления из удалённой ветки main в локальную ветку origin/main, при этом локальная ветка main остаётся без изменений
    git fetch origin main
    
    # скачиваем обновления из удалённой ветки - источника, в любую локальную ветку - получатель
    git fetch origin <источник>:<получатель>
    

    После этого вы можете просмотреть новые ветки или изменения в существующих.

  2. git pull - получить изменения с удаленного репозитория и автоматически слить их с вашими локальными изменениями.

    git pull origin foo 
    # это то же самое, что сделать:
    git fetch origin foo; git merge o/foo
    

Отправка изменений на удаленный репозиторий (git push)

После внесения коммитов в локальную ветку, их можно отправить на удаленный репозиторий:

git push

Эта команда определяет для текущей локальной ветки связанную с ней удалённую ветку и выгружает в неё изменения.

Однако, можно выгружать конкретные ветки без предварительного перехода в них.

git push origin master

# или даже так 
git push origin <источник>:<получатель> # при этом если ветка-получатель не существует, она будет создана!

Эта команда отправляет локальную ветку master в ветку master удаленного репозитория origin.