Git: что такое ветка отслеживания?
может ли кто-нибудь объяснить "ветку отслеживания", как это относится к git?
вот определение от git-scm.com:
"ветка отслеживания" в Git является локальной
филиал, подключенный к удаленному устройству
отделение. Когда вы нажимаете и тянете на это
ответвление, оно автоматически нажимает и
тянет к удаленной ветке, что это
связано с этим.
используйте это, если вы всегда тянете из
та же ветка вверх по течению в новую
филиал и если вы не хотите использовать
"git pull" явно.
к сожалению, будучи новым для git и исходя из SVN, это определение не имеет абсолютно никакого смысла для меня.
Я читаю через "прагматическое руководство по Git" (отличная книга, кстати), и они, похоже, предполагают, что ветви отслеживания-это хорошая вещь, и что после создания вашего первого удаленного (в данном случае origin) вы должны настроить свою главную ветвь как ветвь отслеживания, но это к сожалению, не охватывает почему ветка слежения-это хорошо или Какие преимущества вы получаете, настроив свою главную ветвь как ветвь отслеживания вашего исходного репозитория.
может кто-нибудь просветить меня (на английском языке)?
4 ответов:
The книги ProGit и очень хорошее объяснение:
Отслеживание Веток
проверка локальной ветви из удаленной ветви автоматически создает то, что называется ветвью отслеживания. Ветви отслеживания-это локальные ветви, имеющие прямое отношение к удаленной ветви. Если вы находитесь в ветке отслеживания и набираете git push, Git автоматически знает, на какой сервер и ветку нужно нажать. Кроме того, запуск git pull в то время как на одном из этих ветвей извлекает все удаленные ссылки и затем автоматически сливается в соответствующую удаленную ветвь.
когда вы клонируете репозиторий, он обычно автоматически создает главную ветвь, которая отслеживает origin / master. Вот почему git push и git pull работают из коробки без каких-либо других аргументов. Однако вы можете настроить другие ветви отслеживания, если хотите - те, которые не отслеживают ветви в origin и не отслеживают главную ветвь. Простой пример, как это просто увидел, бежит
git checkout -b [branch] [remotename]/[branch]. Если у вас есть Git версии 1.6.2 или более поздней, вы также можете использовать--trackсокращенное:$ git checkout --track origin/serverfix Branch serverfix set up to track remote branch refs/remotes/origin/serverfix. Switched to a new branch "serverfix"чтобы Настроить локальную ветвь с другим именем, чем удаленная ветвь, вы можете легко использовать первую версию с другим именем локальной ветви:
$ git checkout -b sf origin/serverfix Branch sf set up to track remote branch refs/remotes/origin/serverfix. Switched to a new branch "sf"теперь, ваш местный филиал
sfбудет автоматически нажимать и тянуть отorigin/serverfix.
в Progit книге указаны:
ветви отслеживания-это локальные ветви, которые имеют прямое отношение к удаленной ветви
не совсем. так вопрос"имея трудное время понимание
git-fetch" включает в себя:нет такого понятия местный поиск ветки, только удаленного слежения филиалы.
Так чтоorigin/masterдистанционное отслеживание ветка дляmasterнаoriginРЕПО.но на самом деле, как только вы создать связь ветвей вверх по течению между:
- местный филиал, как
master- и дистанционное отслеживание ветви, как
origin/masterтогда вы можете рассмотреть
masterкак местное отделение слежения: он отслеживает удаленного слежения филиалorigin/master, который, в повороты отслеживают главную ветвь вверх по течению РЕПОorigin.
вот как я добавил ветку отслеживания, чтобы я мог вытащить из нее в свою новую ветку:
git branch --set-upstream-to origin/Development new-branch










Comments