Ik heb een lokale git-repository die een kloon is van een repository op github. Iemand heeft de repository gevorkt en wijzigingen aangebracht in een nieuwe branch op een nieuwe repository. Ik wil deze nieuwe branch naar mijn repository verplaatsen (lokaal om er eerst aan te werken voordat ik het met de master samenvoeg).
Ik heb geprobeerd een nieuwe branch te maken en vervolgens uit de gevorkte repository te halen, maar het klaagt omdat de nieuwe branch een kopie is van de master-branch en ook van de lokale bestandswijzigingen, dus er staat
error: Your local changes to the following files would be overwritten by merge
.
Dus hoe kan ik de branch in de andere repository naar een nieuwe branch in mijn lokale repository trekken?
Ik hoop dat dat logisch is. Zo niet, dan is dit mijn repository: https://github.com/MatthewLM/cbitcoin
Zoals je kunt zien, heeft iemand een nieuwe repository gemaakt met de branch “linuxBuild”: https: //github.com/austonst/cbitcoin/tree/linuxBuild
Ik wil die branch in mijn lokale repository voor MatthewLM/cbitcoin.
Hoe kan ik dit doen?
Antwoord 1, autoriteit 100%
Je moet ervoor zorgen dat git status
laat zien dat er geen niet-gefaseerde wijzigingen bestaan in je lokale repository.
U kunt dit doen door eerst uw lokale wijzigingen te stashen en vervolgens die branch te trekken. Daarna kun je je stash toepassen.
Als u de vertakkingsstructuur van de fork opnieuw wilt maken in uw lokale repository, kunt u het volgende doen:
git remote add fork <url of fork>
git fetch fork
git checkout -b fork_branch fork/<branch>
Hiermee wordt de lokale branch fork_branch
gemaakt met dezelfde geschiedenis als <branch>
in de fork, dwz fork_branch
zal zich vertakken van uw master
waar <branch>
doet in de fork.
Bovendien zal uw lokale vestiging nu die vestiging in de vork volgen, zodat u gemakkelijk nieuwe wijzigingen die in de vork zijn vastgelegd, kunt invoeren.
Ik denk dat je er van tevoren nog voor moet zorgen dat je werkkopie geen wijzigingen bevat.
Antwoord 2, autoriteit 37%
Methode zonder afstandsbediening toe te voegen.
git checkout --orphan fork_branch
git reset --hard
git pull <url of fork> <branch>
Antwoord 3
Ik heb iets soortgelijks kunnen doen met…
git switch -c new_branch
git pull https://github.com/<user>/<forked-repo>.git <branch>