Git: что такое ветка отслеживания?



может ли кто-нибудь объяснить "ветку отслеживания", как это относится к git?



вот определение от git-scm.com:




"ветка отслеживания" в Git является локальной
филиал, подключенный к удаленному устройству
отделение. Когда вы нажимаете и тянете на это
ответвление, оно автоматически нажимает и
тянет к удаленной ветке, что это
связано с этим.



используйте это, если вы всегда тянете из
та же ветка вверх по течению в новую
филиал и если вы не хотите использовать
"git pull" явно.




к сожалению, будучи новым для git и исходя из SVN, это определение не имеет абсолютно никакого смысла для меня.



Я читаю через "прагматическое руководство по Git" (отличная книга, кстати), и они, похоже, предполагают, что ветви отслеживания-это хорошая вещь, и что после создания вашего первого удаленного (в данном случае origin) вы должны настроить свою главную ветвь как ветвь отслеживания, но это к сожалению, не охватывает почему ветка слежения-это хорошо или Какие преимущества вы получаете, настроив свою главную ветвь как ветвь отслеживания вашего исходного репозитория.



может кто-нибудь просветить меня (на английском языке)?

914   4  

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.

alt text

Ниже приведены мои личные учебные заметки о ветвях отслеживания GIT, надеюсь, это будет полезно для будущих посетителей:

enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here


отслеживание ветвей и "git fetch":

enter image description here enter image description here enter image description here

вот как я добавил ветку отслеживания, чтобы я мог вытащить из нее в свою новую ветку:

git branch --set-upstream-to origin/Development new-branch

Comments

    Ничего не найдено.