it-swarm-ru.tech

разница между вилкой и веткой на github

Если я раскошелюсь над проектом, который размещен на github. Разветвляю ли я все ветви? Как узнать, на какой ветке основан мой форк? Другими словами, какая ветка будет загружена на мой компьютер?

117
Jonathan.

Все ветки на GitHub будут скопированы в форк. (Очевидно, что это не относится к веткам, которые никогда не передавались на GitHub.)

Но разветвление - это операция GitHub-to-GitHub; на ваш компьютер ничего не копируется. Это не совсем то же самое, что клон Git . Если вы хотите спросить "что копируется, когда я клонирую проект?", См. Руководство для git-clone(1) .

40
J. C. Salomon

Думайте об этом так:

Репозиторий [sitory] соответствует совместной работе команды в одном или нескольких филиалах. Все участники имеют свою собственную копию.

Каждый форк основного репо соответствует работе участника. Форк - это на самом деле конструкция Github (не Git) для хранения клона репо в вашей учетной записи пользователя. Как клон, он будет содержать все ветви основного репо в то время, когда вы сделали форк.

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

запрос на запрос (в экосистеме GitHub) соответствует задаче. Каждый раз, когда я хочу добавить изолированное законченное задание в основной репозиторий, я создаю запрос на извлечение, соответствующий commitits, выполненному в этой задаче. Эти коммиты переносятся либо из моего ветвь, либо из моего ответвления в основной репо.

A commit - это набор изменений в коде. Это одна из самых интересных вещей в Git. Вы не передаете файлы, вы передаете журналы изменений.

133
Adam Grant

Fork - это клон на стороне GitHub (он клонирует все).
Когда вы клонируете репо, вы получаете всю историю репо со всеми его ветвями.

Хотя теоретически вы можете изменить ветку по умолчанию для удаленного репо , клон из репозитория GitHub в основном ищет основную ветку. Чтобы изменить ветку "по умолчанию", которую получит клон GitHub, вам нужно переименовать основную ветку.

9
VonC

Если вы разветвляете проект, вы делаете копию всего проекта в свою учетную запись git hub. вы ничего не копируете на свой ПК

Чтобы сделать копию на вашем компьютере, вы должны клонировать ее и извлечь все, и вы получите все ветви и код этого проекта.

3
Hunt

Если вы создаете ответвление проекта с веб-сайта Github, вы получаете все ответвления из вышестоящего проекта.

Если вы клонируете свой недавно созданный форк на локальный ПК, на вашем ПК будет установлен пульт Origin, указывающий на главную ветвь вашего форка на Github.

2
bhamby

Это можно объяснить очень хорошо. У вас есть центральное хранилище на GitHub. Всякий раз, когда вы вносите клон этого на свой персональный компьютер для внесения некоторых изменений, этот локальный клон основного репозитория называется форком.

Ветка это нечто другое и входит в состав форка/репо. На самом деле отрасль - это ваша работа на разной стадии развития. Они создаются по мере необходимости для сохранения набора функций, предоставления доступа различным пользователям, демонстрации сайта клиенту и т.д.

1
Avinash Thombre

Я хотел бы поделиться реальным примером когда мы используем Ветви и когда мы используем Forks

У нас есть GitLab в нашем магазине, и иногда нам приходится работать над пакетами из проекта Laravel. Обычно мы создаем ветку и отправляем изменения в ветку, которую мы тестировали в нашей локальной среде VM dev при работе с реальным проектом Laravel.

Допустим, наш проект находится по адресу

https://github.com/yardpenalty/mainproject.git

Использование филиала:

Допустим, ветвь называется It_doesnt_matter

После того, как у нас есть ветвь, как мы хотим для производства, мы делаем окончательный Push в эту ветку и создаем запрос на слияние, который затем отправляется в UAT для тестирования. Как только тест пройден через QC, изменения объединены в производство.

объединение из It_doesnt_matterветка теперь передается в главный проект

по адресу https://github.com/yardpenalty/mainproject.git

Допустим, пакетный проект находится по адресу

https://github.com/yardpenalty/mypackage.git

Имейте в виду, что основной проект использует этот пакет в производстве, поэтому мы не можем вносить изменения, просто помещая их в этот пакет (среди прочих причин). Допустим, веб-разработчик должен отредактировать этот пакет, чтобы внести изменения в производство.

Простая ветвь не будет работать, потому что мы не можем увидеть наши изменения без публикации пакета и т.д.

Использование вилки: Теперь, когда нам нужно немного поработать с нашим пакетом, мы создаем клон производственного пакета с помощью вилки. Файлы composer.json могут быть обновлены, чтобы указывать на ветвь, которая теперь находится по адресу путь пользователя или группы

Итак, мы создадим форк в https://github.com/yardpenalty/mypackage.git

и назовите это https://github.com/yardpenalty/yards/mypackage.git

Теперь мы можем обновить наш файл composer.json, чтобы он указывал на этот пакет в наших "репозиториях": [массив такой, и мы поехали!

 {
            "type": "github",
            "url": "https://github.com/yardpenalty/yard/mypackage.git"
 }

]

0
yardpenalty