GitHub: fork vs. vlastní branch

zemla

GitHub: fork vs. vlastní branch
« kdy: 05. 06. 2019, 22:40:42 »
Dobrý den,

mám v plánu založit si novou odnož produktu, který je pod MIT na githubu.

Jejich produkt se už nevyvíjí, ale sem tam se tam objeví nějaký ten bugfix.

Svoji odnož chci rozšířit o něké ty nové funkcionality.

K tomuto je tedy prosím určen fork? A pokud ano, půjde do něj namergovat nějaký ten bugfix z původní větve ?

Díky.
« Poslední změna: 05. 06. 2019, 23:13:57 od Petr Krčmář »


Re:GitHub: fork vs. vlastní branch
« Odpověď #1 kdy: 05. 06. 2019, 23:34:17 »
Fork se na github běžně používá k vlastní větvi vývoje a následnému vytvoření pull request. V zásadě je fork obyčejný clone do vlastního účtu.

Výše uvedené je samozřejmě možné, git nijak nerozlišuje, odkud branch pochází - zda jde o lokální branch nebo remote branch. Pokud budou repositáře a branch sdílenou historii, tak se dá libovolně merge-ovat tam a zpátky. Samozřejmě, čím víc budou repositáře diverge-ovat, tím bude víc práce s konflikty. V případě jednoduchých bugfixes se dá předpokládat spíš minimum. Viz například: https://help.github.com/en/articles/merging-an-upstream-repository-into-your-fork , konkrétně remote merge:

Kód: [Vybrat]
git pull remote-repo-URL BRANCH_NAME
Udělá merge do aktuálního lokálního branch. Může být případně zcela nový, aby se stáhla čistá historie z remote repositáře. A poté až třeba merge-ovat lokálně.

Re:GitHub: fork vs. vlastní branch
« Odpověď #2 kdy: 06. 06. 2019, 08:08:30 »
K tomuto je tedy prosím určen fork?
Mimo jiné je určen i k tomuto, na GitHubu takhle najdete spoustu projektů, které už se v původním repository nevyvíjí, ale pokračuje nějaký jejich fork.

Na GitHubu se fork používá i v případech, kdy chcete do jiného projektu jenom přispívat – uděláte si fork projektu u sebe, tam vyvíjíte a když to máte připravené, dáte pull request na přetažení vašich změn do původního repository.

A pokud ano, půjde do něj namergovat nějaký ten bugfix z původní větve ?
Ano, půjde. Forky na GitHubu jsou standardní klony repository. Takže ve svém lokálním repository můžete mít jako vzdálené repository připojený svůj fork i původní repository, a commity, patche, branche atd. mezi nimi přetahovat, jak chcete.

Zvážil bych ale domluvu s původním autorem, že vám dá práva zápisu do svého repository, abyste mohl správu jeho projektu postupně převzít. U toho projektu mohou být otevřená issue, wiki, vedou na něj odkazy – vždy je lepší pokračovat v tom původním projektu, než dělat fork. Fork se dělá v případě, kdy původního správce nejde kontaktovat, nebo když se s ním nedá domluvit.