GitHub používám už nějakou dobu a obvykle jsem tlačil své větve funkcí a poté spustil Pull Request, který jsem sám spojil. Zjistil jsem, že mi to pomohlo sledovat, kde jsem sloučil větve.

Ale nedávno jsem četl stále více o tom, jak funguje Git, a uvědomil jsem si, že při sloučení mohu použít odkaz na sloučení větve.

Co tedy mám dělat při sloučení větve funkcí do hlavní:
Proveďte sloučení-potvrzení na hlavní a poté ji posuňte proti proudu NEBO Zatlačit na místní pobočku a spustit požadavek na vyžádání?

Přečetl jsem Představuji žádosti o natažení týmu pro 2 osoby – sloučit mé vlastní požadavky? a Jaký je průběh práce se 2 lidmi na projektu a Mám otevřít žádosti o stažení z pobočky v oficiálním repo nebo na mé vidlici? ale zdá se, že žádný z nich neodpovídá na to, co hledám.

Komentáře

  • Co přesně podle vás těmto odpovědím chybí?
  • První o tom hovoří z toho smyslu, že žádosti o stažení mají být recenzovány peer. Druhá nabízí pracovní postup. Třetí není ' ani příbuzný.
  • Dívám se na to z Osvědčených postupů nebo Jak udržovat dobrá historie gitů .
  • Když sloučím PR, udělám to lokálním sloučením pobočky. To mi umožňuje zajistit, aby sloučení platilo čistě, a před publikováním výsledku znovu spustit testy. GitHub ' s Pull Requests jsou jen formalizací tohoto pracovního postupu, samotný Git nemá koncept PR.
  • Když se PR spojí, vytvoří sloučení odevzdat na master, takže si ' nemyslím, že by to v historii gitů mělo nějaký rozdíl. Proto si ' nemyslím, že existuje nějaký důvod používat jeden nebo druhý kromě vašich osobních preferencí mezi příkazovým řádkem a uživatelským rozhraním Github.

Odpověď

mechanismus git-merge:
Použití git merge feature na hlavní sloučí větev feature do master a vytvoří merge-commit (pokud větev nelze rychle přeposlat) v historii git. Chcete-li vynutit vytvoření merge-commit, použijte možnost --no-ff s merge.

Mechanismus sloučení požadavku na vytažení:
Když spustíme požadavek na vytažení na GitHubu, vytvoří GitHub Issue kde mohou lidé mluvit a diskutovat o závazcích v PR před jejich sloučením. Když je PR sloučen na GitHubu, dělá přesně to samé jako git merge feature.

Co mám dělat ?
Takže pokud jde o historii, není mezi nimi žádný rozdíl.
A pokud jde o příspěvek, vaši přispěvatelé nebudou mít udělat pro tyto dvě situace něco jiného. Jsou stejné (minus pěkný malý chat).

Doporučené postupy:
A nebyl jsem schopen najít osvědčené postupy, ale logika říká, že PR nejsou moc užitečné, pokud do úložiště existuje pouze jediný přispěvatel.

@lxrec a @amon mi pomohly dosáhnout tohoto závěru.

Komentáře

  • Tip: git merge nemusí zaznamenat sloučení, pokud dokáže provést „rychlý posun vpřed“. Chcete-li vynutit sloučení, můžete přidat možnost --no-ff.
  • Dávám přednost git-merge na místní místo na githuib.com, pokud musel bych něco takového na github.com raději nedělat přímo na hlavní větvi, raději bych si vzal jinou než hlavní větev, kterou lze nejprve nastavit v pracovním režimu, než ji zpřístupním pro produkci.

Odpověď

Jak řekl Ashhar , technicky a historicky neexistuje žádný rozdíl. U projektů s malý tým upřednostňuji přímé sloučení namísto dalšího kroku vytváření PR. Pokud však funkce vyžaduje kontrolu / zpětnou vazbu nebo když je WIP a bude na ní pracovat více než jedna osoba, mám tendenci otevřít PR a přidat seznam úkolů k popisu PR.

Všimněte si, že git merge může použít rychlý posun vpřed, pokud u master nejsou žádné změny, takže možná budete chtít použít git merge --no-ff. Obvykle ne.

Takže v souhrnu používejte pouze PR když potřebujete diskusi. Jinak stačí sloučit přímo.

Komentáře

  • Za ' stojí také za zmínku, že diskuse a zpětná vazba k žádosti o stažení pocházejí z automatizovaných zdrojů i od členů týmu. Pokud máte nastavený server CI, může poskytnout výsledky sestavení a testování, abyste nikdy nesloučili něco, co by přerušilo sestavení na hlavní.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *