Git haalt een branch uit een andere repository?

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 statuslaat 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_branchgemaakt met dezelfde geschiedenis als <branch>in de fork, dwz fork_branchzal zich vertakken van uw masterwaar <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>

Other episodes