Это нативная концепция git?
Я изучал это некоторое время и не могу понять? Все, что я получаю, это документация Github, и только этот master является начальной веткой по умолчанию.
Если возможно, может кто-нибудь объяснить, что означает эта концепция с точки зрения git.
Обновлено: Например, какая настройка или идея делает одну конкретную ветку веткой по умолчанию (не обязательно начальной, а на постоянной основе) и как ее изменить за пределами чего-то вроде Github.
Моя интуиция подсказывает мне, что это то место, на которое указывает HEAD (в репозиторий, который вы клонируете и сливаете обратно, как голый репозиторий на сервере) в более общем смысле, это близко?
Тай!





Ветки — это не концепция GitHub, а концепция репозитория исходного кода.
Ветка master (или в настоящее время опционально main) всегда является веткой по умолчанию в репозитории. Вы можете работать с копией ветки, чтобы создавать независимые функции, не нарушая и не затрагивая производственный код. Вы также можете клонировать определенную ветку из репозитория.
Я нашел этот Сообщение блога, безусловно, интересным для начинающих.
В Jenkins вы должны установить ветку по умолчанию, см. здесь:
Branch to be checked out in the workspace. Default is ' master '. Note that this must be a local branch name like 'master' or 'develop'. Remote branch names like 'origin/master' and 'origin/develop' are not supported as the branch argument.
Вы можете настроить сборки для одной или нескольких определенных веток, см. этот ТАК пост.
Хорошо, достаточно честно. Пытался включить как можно больше полезной информации, не перегружая/не путая OP/других читателей. В нашей компании мы используем master/main как производственную ветку. У нас нет веток разработки (по крайней мере, в моем проекте), а только ветки функций.
Извините, это поможет объяснить, что это такое, как вы его установили? Как установлена ветка по умолчанию, как она существует, это больше мой вопрос. Я понимаю, что это такое концептуально, но я не понимаю, что это такое в нативных терминах git. Кроме того, я тоже не минусовал тебя. Буквально, что делает что-то веткой по умолчанию в реальных терминах git и как вы ее меняете?
Вы хотите знать что-то вроде этого? stackoverflow.com/questions/51274430/…
@Christian не совсем так, но это полезно. Это просто настраивает начальную ветку по умолчанию. Я пытаюсь понять, что на самом деле делает ветку по умолчанию. Смотрите мои правки вверху. Есть какое-то состояние, говорящее, что это ветка по умолчанию, с точки зрения git и реализации, что это?
Хорошо, вы знаете намного больше, чем я думал изначально. Ваш вопрос кажется довольно конкретным. Филиал — это просто концепция. См. perforce.com/blog/vcs/…. Что касается HEAD: при работе с Git одновременно может быть извлечена только одна ветка — и это то, что называется веткой «HEAD». Часто это также называют «активной» или «текущей» ветвью. Однако голова не обязательно должна быть главной. У вас есть конкретный сценарий/проблема? Можете добавить/поделиться примером?
Итак, я задаю это, чтобы выяснить другой личный вопрос, но при этом хочу понять, что именно составляет ветку по умолчанию. Мой основной вопрос связан с Дженкинсом. Дженкинс запрашивает ссылку, чтобы указать, из какой ветки строить. Я хочу построить из ветки по умолчанию из моего репозитория Github (до сих пор не знаю, что добавить в это текстовое поле). Моя первоначальная цель состояла в том, чтобы добиться этого, но теперь я пытаюсь понять, что вообще является веткой по умолчанию с точки зрения git. Я ищу что-то более глубокое, чем то, как установить его в Github, если это имеет смысл.
Хорошо, круто, я обновил свой пост еще двумя ссылками, которые должны внести некоторую ясность. Возможно, вам следует добавить Дженкинса в заголовок вопроса.
Is this a native git concept?
Нет. Это концепция GitHub (и другого хоста). Это связано с запросами на вытягивание, которые также не являются концепцией Git.
Когда вы делаете запрос на включение в GitHub, вы отправляете ветку; какую ветку должен предложить GitHub, по умолчанию, для слияния ветки запроса на вытягивание? Это ветка по умолчанию.
Что касается клонирования, здесь должно быть какое-то совпадение. Когда я клонирую, он инициализирует мое локальное репо веткой по умолчанию. Это потому, что GitHub имеет HEAD, указывающий на эту ветку?
Так что это часть того, о чем я спрашивал stackoverflow.com/questions/18726037/…. Можно ли сказать, что эта ветка по умолчанию является перекрытием концепций Github и собственных концепций git? Если я установлю ветку по умолчанию в Github, она установит HEAD равным этой ветке по умолчанию, верно?
Конечно, в Git есть понятие удаленного HEAD, но оно не особенно интересно или важно; это довольно бессмысленно. Существует также понятие того, какую «начальную ветвь» Git создаст и извлечет в конце клонирования, и да, это понятие исходит из удаленного HEAD, но опять же, это не очень важно, так как вы можете изменить его как часть команда clone или сразу после клонирования; лично я часто предпочитаю, чтобы локальная ветвь нет создавалась и проверялась как часть клона.
Когда я клонирую свой репозиторий GitHub, он извлекает ссылку по умолчанию или HEAD ref в GitHub. Моя основная задача состоит в том, чтобы не указывать и заставить Дженкинса делать то же самое. Я решил понять, что делает что-то веткой по умолчанию, чтобы понять это. Это должен быть отдельный вопрос сейчас?
@rubixibuc: Git сам во время git clone читает HEAD другой стороны, чтобы выяснить, в какой ветке создать в клон, если вы не использовали -b. Если вы делал используете -b, это, конечно, имеет приоритет. Так что да, в некотором смысле HEAD репозитория, который вы клонируете, — это предлагаемое по умолчанию имя ветки. Здесь также есть некоторые странные исторические странности для очень старых серверов Git, но вы никогда не должны сталкиваться с этим.
Кажется, это был вопрос x-y? В общем, это хорошая идея, чтобы задать вопрос, на который вы хотите знать ответ, а не какой-то другой вопрос.
Я не минусовал, но, может быть, это потому, что мастер не означает производство. На самом деле я предпочитаю другое: master — это ваша dev-ветвь, а production безошибочно называется prod/production, как и staging, UAT и т. д. Там, где вы начинаете работать с нуля, не может быть prod/live, это должно быть dev. Затем вы создаете другие ветки по мере продвижения вашего проекта.