LINUX.ORG.RU

git fork vs branch

 


0

2

Короче, задали такой вопрос сегодня - какая разница между форками, ветками и клонами?

Я ответил так:

Fork - это копия репозитория, которая при этом находится удаленно

clone - это копия репозитория, которая находится локально

Ветка- способ внесения изменений в репозиторий

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

Ты можешь создать локальную ветку в клоне форка любимого проекта :)

Sahas ★★★★☆
()

Clone - это понятие уровня технологии git, fork - это понятие уровня гит-хостингов типа GitHub. Они живут на разных уровнях абстракции.

Технически форк можно реализовать через клон. Но у форка подразумевается наличие отягощения в виде инфраструктуры отдельного проекта.

Ветка - это указатель на коммит.

А «способ внесения изменений в репозиторий» - слишком неопределённая фраза, которую можно понимать по-разному. К примеру для репозитория на гитхабе способом внесения изменений является создание форка, потом создание ветки со своим коммитом, потом создание pr из этой ветки в основной реп.

alpha ★★★★★
()

Ты для себя разбираешься, или это нынче в вузах такие вопросы?

Форк — понятие, относящееся к жизненному циклу программного продукта, а не к контролю версий. Форк — это когда проект разделяется на два из-за несогласия разработчиков или из-за того, что прежняя команда перестала заниматься проектом.

Хотя на Гитхабе клонирование репозитория из одной учетной записи в другую называется именно fork, что наверное и вносит путаницу.

Клонирование в git — создание копии репозитория. Обычно командой git clone. Не важно, локально или удалённо. Вполне можно запустить git clone, указав локальный путь источника, всё сработает полностью аналогично.

wandrien ★★
()
Ответ на: комментарий от alpha

Технически форк можно реализовать через клон. Но у форка подразумевается наличие отягощения в виде инфраструктуры отдельного проекта.

На гитхабе (и прочих) рабочие копии, которые создаются порой ради единственного пул-реквеста, называются форками, что вносит путаницу в терминологию.

wandrien ★★
()
Ответ на: комментарий от wandrien

На гитхабе (и прочих) рабочие копии, которые создаются порой ради единственного пул-реквеста, называются форками, что вносит путаницу в терминологию.

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

Так что именование правильное.

Неправилен/неэффективен сам подход когда заслать патч на ревью можно только через создание форка. Но это уже другая дискуссия.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Неправилен/неэффективен сам подход когда заслать патч на ревью можно только через создание форка. Но это уже другая дискуссия.

Ну в общем да.

wandrien ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.