Git: Задать upstream-ветку
Последнее обновление
Upstream ветки - это удалённая ветка, которую она отслеживает. После того как он задан, простые git push и git pull знают, куда отправлять и откуда получать коммиты, без указания удалённого репозитория и ветки каждый раз. Обычно его задают при первом push с помощью -u или позже с помощью git branch --set-upstream-to.
Попробуйте это в терминальном playground - настоящая оболочка в вашем браузере, ничего устанавливать не нужно.
Синтаксис
| Command | What it does |
|---|---|
git push -u origin feature | Выполняет push и задаёт upstream за один шаг |
git branch --set-upstream-to=origin/feature | Задаёт upstream для текущей ветки |
git branch -u origin/feature feature | Задаёт upstream для указанной ветки |
git branch -vv | Показывает каждую ветку и её upstream |
Типичные случаи
| Goal | Command |
|---|---|
| Задать upstream при первом push | git push -u origin feature |
| Задать upstream для существующей ветки | git branch --set-upstream-to=origin/feature |
| Проверить, какой upstream задан | git branch -vv |
Частые вопросы о git set upstream
Что даёт установка upstream-ветки?
Она связывает вашу локальную ветку с конкретной удалённой веткой. После этого
git push и git pull на этой ветке знают, какой удалённый репозиторий и ветку использовать, поэтому вы можете запускать их без аргументов. Git также показывает, насколько вы опережаете или отстаёте от upstream в git status.Как задать upstream-ветку?
Проще всего сделать это при первом push:
git push -u origin <branch> выполняет push и задаёт upstream одновременно. Для ветки, которая уже существует в удалённом репозитории, используйте git branch --set-upstream-to=origin/<branch>, находясь на этой ветке.Как посмотреть upstream ветки?
Выполните
git branch -vv. Команда выводит ваши локальные ветки, каждая из которых помечена своим upstream (например, [origin/feature]) и тем, опережает она его или отстаёт. Ветки без upstream ничего не показывают в скобках.Почему git push просит меня задать upstream?
Потому что для текущей ветки не настроен upstream, поэтому Git не знает, куда делать push. Выполните
git push -u origin <branch> один раз, чтобы задать его; последующие push требуют только git push.Могу ли я попрактиковаться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнять эти команды в настоящей оболочке в вашем браузере - ничего устанавливать не нужно. Бесплатный интерактивный курс Git от Coddy также пошагово охватывает работу с удалёнными репозиториями.