Якщо я розпрощаю проект, який розміщується на github. Я роздрібнюю всі гілки? Як я можу знати, на якій гілці базується моя вилка? Іншими словами, яку гілку буде завантажено на мій ПК?
Якщо я розпрощаю проект, який розміщується на github. Я роздрібнюю всі гілки? Як я можу знати, на якій гілці базується моя вилка? Іншими словами, яку гілку буде завантажено на мій ПК?
Відповіді:
Усі гілки на GitHub будуть скопійовані виделкою. (Очевидно, що сюди не входять гілки, які ніколи не були натиснуті на GitHub.)
Але вилка - це операція GitHub-to-GitHub; нічого не копіюється на ваш ПК. Це не зовсім так, як клон Git . Якщо ви хочете запитати "що копіюється, коли я клоную проект?", Див. Посібник для git-clone(1)
.
Подумайте про це так:
Репо [сітори] відповідає співпраці колективу в одній або багатьох галузях. Усі доповідачі мають свою копію.
Кожна вилка головного репо відповідає твору дописувача. Вилка - це справді конструкція Github (не Git) для зберігання клона репо в обліковому записі користувача. Як клон, він буде містити всі гілки в основному репо в той момент, коли ви робили вилку.
Кожна гілка в межах вилки та / або в основному репо може відповідати декільком видам речей, залежно від того, як ви хочете працювати. Кожна гілка може посилатися на версію проекту, але також може відповідати різним каналам розвитку, як виправлення або експериментальна робота.
Запит тягнути (в екосистемі GitHub) відповідає завданню. Кожен раз, коли я хочу внести ізольоване закінчене завдання до основного репо, я створюю запит на витяг, відповідний комісіям, зробленим у цьому завданні. Ці комітети витягуються з моєї вилки або з моєї гілки до головної репо .
Фіксації являє собою набір змін в коді. Це одна з найцікавіших речей про Git. Ви не передаєте файли, ви переносите журнали змін.
Fork - це клон на стороні GitHub (він клонує все).
Коли ви клонуєте репо, ви отримуєте всю історію згаданого репо з усіма його гілками.
Хоча теоретично ви можете змінити гілку за замовчуванням віддаленого репо , клон з репо GitHub в основному шукає головну гілку. Значення для зміни гілки "за замовчуванням" отримає клон GitHub, вам потрібно перейменувати головну гілку.
Якщо ви створюєте роздрібнення проекту з веб-сайту Github, ви отримуєте всі гілки проекту вище.
Якщо ви клонуєтесь із щойно вичавленої виделки на ваш локальний ПК, origin
пульт дистанційного керування на вашому ПК буде вказувати на головну гілку вашого вила на Github.
upstream
це те, що вам потрібно зробити; і вони говорять вам, як це зробити.
Це можна дуже добре пояснити. У вас є центральне сховище в GitHub. Щоразу, коли ви берете його на своєму персональному комп'ютері, щоб зробити якісь зміни, цей локальний клон основного сховища називається вилкою.
Гілка дещо інша і включена у форк / репо. Насправді галузь - це ваша робота на різних стадіях розвитку. Вони створюються як і коли потрібно для збереження набору функціональних можливостей, надання доступу різним користувачам, демонстрації сайту клієнту тощо.
Я хотів би поділитися прикладом із реального життя, коли ми використовуємо відділення та коли ми використовуємо Forks
У нас є GitLab у нашому магазині, і іноді нам доводиться працювати над пакетами проекту Laravel. Ми, як правило, створюємо гілку і підсилюємо зміни до гілки, яку ми тестували в нашому локальному середовищі розробників VM, працюючи з реальним проектом Laravel.
Скажімо, наш проект знаходиться за адресою
https://github.com/yardpenalty/mainproject.git
Використання філії:
Скажемо, гілка називається It_doesnt_matter
Після того, як у нас є філія так, як ми хочемо для виробництва, ми робимо остаточний поштовх до цієї гілки та створюємо запит на об'єднання, який потім переходить в UAT для тестування.
Злиття з It_doesnt_matter
гілки тепер штовхнув на майстер - проект
у https://github.com/yardpenalty/mainproject.git
Скажімо, проект пакета знаходиться за адресою
https://github.com/yardpenalty/mypackage.git
Майте на увазі, що mainproject використовує цей пакет у виробництві, тому ми не можемо вносити зміни, просто натиснувши їх на цей пакет (серед інших причин). Скажімо, веб-розробник повинен редагувати цей пакет, щоб внести зміни у виробництво.
Проста гілка не працює, тому що ми не можемо побачити наші зміни, не опублікувавши пакет тощо.
Використання виделки: Зараз нам належить зробити трохи хитрощів з нашим пакетом, щоб ми створили клон виробничого пакету за допомогою вилки. Файли 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"
}
]