Введение в удалённые репозитории
Удалённые репозитории — это версии вашего проекта, хранящиеся в интернете или другой сети. Они позволяют вносить вклад в проект, обмениваться изменениями с другими разработчиками и управлять версиями. Вы можете работать с несколькими удалёнными репозиториями, которые могут быть доступны для чтения или чтения-записи. В этой статье мы рассмотрим, как добавлять, удалять и управлять удалёнными репозиториями, а также получать и отправлять изменения.
Примечание: Удалённый репозиторий не обязательно находится в интернете — он может быть на вашем локальном компьютере. Работа с ним всё равно включает стандартные операции, такие как получение и отправка данных.
Просмотр удалённых репозиториев
Чтобы увидеть список настроенных удалённых репозиториев, используйте команду git remote. Например, после клонирования репозитория вы увидите как минимум origin — имя по умолчанию для сервера, с которого клонировали:
git clone https://github.com/schacon/ticgit
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
cd ticgit
git remote
origin Для просмотра URL репозиториев используйте ключ -v:
git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push) Если у вас несколько удалённых репозиториев, команда покажет их все. Например:
cd grit
git remote -v
bakkdoor https://github.com/bakkdoor/grit (fetch)
bakkdoor https://github.com/bakkdoor/grit (push)
cho45 https://github.com/cho45/grit (fetch)
cho45 https://github.com/cho45/grit (push)
defunkt https://github.com/defunkt/grit (fetch)
defunkt https://github.com/defunkt/grit (push)
koke git://github.com/koke/grit.git (fetch)
koke git://github.com/koke/grit.git (push)
origin git@github.com:mojombo/grit.git (fetch)
origin git@github.com:mojombo/grit.git (push) Это позволяет легко получать изменения от разных пользователей. Обратите внимание на разные протоколы (https, git) в URL.
Добавление удалённых репозиториев
Чтобы добавить новый удалённый репозиторий, используйте git remote add с указанием имени и URL:
git remote
origin
git remote add pb https://github.com/paulboone/ticgit
git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
pb https://github.com/paulboone/ticgit (fetch)
pb https://github.com/paulboone/ticgit (push) Теперь вместо полного URL можно использовать имя pb. Например, чтобы получить изменения от Пола:
git fetch pb
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 43 (delta 10), reused 31 (delta 5)
Unpacking objects: 100% (43/43), done.
From https://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit Ветка master Пола теперь доступна как pb/master. Вы можете слить её или переключиться на неё для просмотра.
Получение изменений из удалённого репозитория — Fetch и Pull
Для получения данных из удалённого репозитория используйте git fetch:
git fetch [remote-name] Эта команда загружает данные, которых у вас ещё нет, но не сливает их с вашими изменениями. Например, git fetch origin получает все новые данные с сервера origin, добавленного при клонировании.
Для автоматического получения и слияния изменений используйте git pull, если ветка настроена на отслеживание удалённой ветки:
git pull По умолчанию git clone настраивает локальную ветку master для отслеживания удалённой master. Примечание: С Git 2.27 git pull требует настройки pull.rebase. Установите её так:
git config --global pull.rebase "false" # Простое смещение или слияние
git config --global pull.rebase "true" # Перебазирование Отправка изменений в удалённый репозиторий (Push)
Для отправки изменений в удалённый репозиторий используйте git push:
git push origin master Эта команда работает, если у вас есть права на запись и никто другой не отправил изменения раньше. Если ваш push отклонён, сначала получите и слейте изменения с помощью git pull.
Просмотр удалённого репозитория
Для получения подробной информации об удалённом репозитории используйте git remote show:
git remote show origin
* remote origin
Fetch URL: https://github.com/schacon/ticgit
Push URL: https://github.com/schacon/ticgit
HEAD branch: master
Remote branches:
master tracked
dev-branch tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date) Для более сложного проекта вывод может быть таким:
git remote show origin
* remote origin
URL: https://github.com/my-org/complex-project
Fetch URL: https://github.com/my-org/complex-project
Push URL: https://github.com/my-org/complex-project
HEAD branch: master
Remote branches:
master tracked
dev-branch tracked
markdown-strip tracked
issue-43 new (next fetch will store in remotes/origin)
issue-45 new (next fetch will store in remotes/origin)
refs/remotes/origin/issue-11 stale (use 'git remote prune' to remove)
Local branches configured for 'git pull':
dev-branch merges with remote dev-branch
master merges with remote master
Local refs configured for 'git push':
dev-branch pushes to dev-branch (up to date)
markdown-strip pushes to markdown-strip (up to date)
master pushes to master (up to date) Эта команда показывает URL, отслеживаемые ветки, настройки для git pull и git push, а также ветки, которые отсутствуют локально или устарели.
Удаление и переименование удалённых репозиториев
Для переименования удалённого репозитория используйте git remote rename:
git remote rename pb paul
git remote
origin
paul Это также изменит имена веток, например, pb/master станет paul/master.
Для удаления удалённого репозитория используйте git remote remove:
git remote remove paul
git remote
origin Это удаляет все связанные с репозиторием ветки и настройки.
Отзывы