Hoe kan ik een GitHub gevorkte repository updaten?
Ik heb onlangs een project gevorkt en een aantal fixes toegepast. Ik heb toen een pull request aangemaakt die toen geaccepteerd werd.
Een paar dagen later werd een andere wijziging gemaakt door een andere medewerker. Dus mijn fork bevat die wijziging niet.
Hoe kan ik die wijziging in mijn vork krijgen? Moet ik mijn vork verwijderen en opnieuw aanmaken als ik verdere wijzigingen heb om bij te dragen? Of is er een update knop?
3364
3
In je lokale kloon van je gevorkte repository, kun je de originele GitHub repository toevoegen als een "remote" ("Remotes" zijn een soort bijnamen voor de URLs van repositories -
origin
is er een, bijvoorbeeld). Dan kun je alle branches van die upstream repository ophalen, en je werk rebasen om verder te werken aan de upstream versie. In termen van commando's zou dat er zo uit kunnen zien:Als je de geschiedenis van je master branch niet wilt herschrijven, (bijvoorbeeld omdat andere mensen hem misschien gekloond hebben) dan zou je het laatste commando moeten vervangen door
git merge upstream/master
. Echter, om verdere pull requests te maken die zo schoon mogelijk zijn, is het's waarschijnlijk beter om te rebasen.Als je je branch gerebased hebt op
upstream/master
, moet je misschien de push forceren om het naar je eigen gevorkte repository op GitHub te pushen. Je zou dat kunnen doen met:Je hoeft de
-f
alleen de eerste keer te gebruiken nadat je ge-rebased hebt.Vanaf mei 2014 is het mogelijk om een fork direct vanaf GitHub te updaten. Dit werkt nog steeds vanaf september 2017, MAR het zal leiden tot een vuile commit geschiedenis.
Update from original
).Nu heb je drie opties, maar elke zal leiden tot een minder-dan-schone commit geschiedenis.
This branch is X commits ahead, Y commits behind
weergeven.Dus ja, je kunt je repo up to date houden met zijn upstream door de GitHub web UI te gebruiken, maar als je dat doet zal je je commit geschiedenis bezoedelen. Blijf in plaats daarvan bij de commandoregel - het'is gemakkelijk.
Hier is het officiële document van GitHub's over Een vork synchroniseren: