Git remote

Содержание
Введение
clone
remote -v: Проверить УР
remote add origin: Привязать УР
remote set-url: Изменить привязанный УР
push: Отправить данные на УР
pull: Загрузить данные из УР
ls-remote: Список веток на УР
GitHub
GitLab
Другие статьи про Git

Введение

В этой статье будет использоваться сокращение

УР - удалённый репозиторий.

Из этой статьи вы можете узнать об основных командах git, нужных для работы с удалёнными репозиториями.

Удалённый репозиторий в данном контексте это код, сохраненный на один из онлайн хостингов, основанных на git.

clone: Клонировать удалённый репозиторий

Существует минимум три способа клонировать репозиторий. По умолчанию клонируется main (master), пример клонирования другой ветки - здесь

По HTTPS

git clone https://github.com/company/repo_name.git

По SSH

git clone git@github.com:company/repo_name.git

С помощью GitHub CLI в GitHub

gh repo clone company/repo_name

Если репозиторий публичный эти команды должны работать сходу.

Если репозиторий частный - нужно настроить аутентификацию:

На всякий случай напомню, что авторизация паролем запрещена с 2021-го года

Клонировать определённую ветку можно с помощью опции --branch

git clone --branch test https://github.com/project/repo-name

remote -v

Проверить с каким удалённым репозиторием git связывает локальный репозиторий

git remote -v

origin https://github.com/Name/name.git (fetch)
origin https://github.com/Name/name.git (push)

add origin

Чтобы привязать свой локальный репозиторий к удалённому серверку нужна команда git remote add origin

В общем случае она выглядит следующим образом

git remote add origin https://example.com/repository-name.git

Чаще вид примерно следующий

git remote add origin https://git.company.com/user/projectName.git

Например, для моего репозитория demo на github команда будет выглядеть так

git remote add origin https://github.com/AndreiOlegovich/demo.git

Конечно, предварительно нужно создать проект на сайте сервиса + нужно заранее сделать git init .

remote set-url

Изменить привязанный удалённый репозиторий

git remote set-url origin https://github.com/YourAccount/your project name.git

Проверить изменился ли привязанный репозиторий

git remote -v

origin https://github.com/YourAccount/your project name.git (fetch) origin https://github.com/YourAccount/your project name.git (push)

push

Отправить новые данные на удалённый репозиторий

git push origin master

Enumerating objects: 83, done.
Counting objects: 100% (83/83), done.
Delta compression using up to 4 threads
Compressing objects: 100% (81/81), done.
Writing objects: 100% (83/83), 3.36 MiB | 3.19 MiB/s, done.
Total 83 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
To https://github.com/andreiolegovichru/travel-site.git
* [new branch] master -> master

Если нужно делать push из другой ветки - просто напишите её называние вместо master

git push origin some/other/branch_name

Enumerating objects: 30, done. Counting objects: 100% (30/30), done. Delta compression using up to 8 threads Compressing objects: 100% (26/26), done. Writing objects: 100% (26/26), 6.32 KiB | 6.32 MiB/s, done. Total 26 (delta 7), reused 0 (delta 0) remote: remote: To create a merge request for some/other/branch_name, visit: remote: https://gitlab.yourcompany.com/Project/Project/merge_requests/new?merge_request%5Bsource_branch%5D=some%2Fother%2Fbranch_name remote: To gitlab.ssh.com:IAM/IAM.git abcdefdc8..abcdef000 topic/qa/init_perf_test_controller -> topic/qa/init_perf_test_controller

В этом примере удалённый репозиторий находится на GitLab и сразу же после push в терминале появляется ссылка, перейдя по которой можно сделать Merge Request

https://gitlab.yourcompany.com/Project/Project/merge_requests/new?merge_request%5Bsource_branch%5D=some%2Fother%2Fbranch_name

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

pull

Если удалённый репозиторий ушёл вперед и вы хотите обновить свой локальный репозиторий данными с удалённого

git pull origin master

ls-remote

Чтобы получить список веток на удалённом репозитории нужно использовать команду ls-remote

git ls-remote --heads https://github.com/company/repo.git

1b35091f3de8f8c93cecc3b8fcfbdf192f0c34a1 refs/heads/PROJECT-123456-topic 6ba2f48f770ed7e3c7360d70d9b427e7e7a30f49 refs/heads/PROJECT-123457-topic …

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

git branch -r

origin/PROJECT-123456-topic origin/PROJECT-123457-topic …

git branch -r | grep and

origin/andrei/PROJECT-123458_load_test

Подтянуть удалённую ветку

Допустим, что клонирован репозиторий у которого несколько веток .

Клонирование с GitHub по умолчанию получает ветку main (master) можно указать и другую ветку но в обоих случаях после клонирования будет доступна одна ветка.

GitHub использую как собирательное название для все сервисов удаленного хранения репозиториев.

git branch

main

Если создать локально другие ветки, они тоже будут видны. Но ветки, созданные коллегами на других машинах, даже если они запушены в github доступны не будут.

Их можно увидеть командой

git branch -r

origin/PROJECT-123456-topic origin/PROJECT-123457-topic …

Чтобы сделать такую ветку доступной локально нужно выполнить

git checkout -b local_name origin/remote_name

local_name может быть любым, но обычно делают таким же как и на github

git checkout -b PROJECT-123456-topic origin/PROJECT-123456-topic

Ветка PROJECT-123456-topic будет скачана с GitHub и станет активной.

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

GitHub
Создать бесплатный репозиторий на GitHub
Быстрая настройка
Доступ к GitHub по ssh
GitHub Tokens (classic)
GitLab
Создать бесплатный репозиторий на GitLab
Доступ к GitLab по ssh

Автор статьи: Андрей Олегович

Похожие статьи
Git remote
Git
GitHub
Переход с https аутентификации на ssh
GitLab

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: