Ik heb meerdere takken die van de master worden vertakt (elk in een afzonderlijke subdirectory).
- Branch1: Nieuwe ontwikkeling, nog niet volledig voltooid
- tak2: hotfix voor een probleem, maar nog steeds onder de test
- Branch3: rommel rond de tak, die ik niet zal herstellen
Voordat het testen van de hotfix is voltooid, wil ik de code al beschikbaar in Branch1, dus ik kan blijven ontwikkelen met de fix op zijn plaats.
(Maar aangezien mijn ervaring met Git niet zo veel is, begon ik voor het eerst te spelen met samenvoegen in een 3e tak, speciaal gemaakt om in de buurt te rommelen in, voordat ik de verpakking van tak1 of tak 2 verknoei)
In mijn 3e filiaal heb ik het volgende voor het eerst geprobeerd:
git merge feature/Branch1
Maar dit gaf de volgende fout:
fatal: 'feature/Branch1' does not point to a commit
Ik heb vervolgens een commit -A in mijn tak gewonnen en opnieuw geprobeerd, maar het blijft dezelfde fout geven.
Wat doe ik verkeerd? Wat moet ik doen om de code van – in dit geval te samenvoegen – Branch1 met Branch3?
Antwoord 1, Autoriteit 100%
eerst, afrekenen naar uw filiaal3:
git checkout Branch3
Verseer vervolgens de tak1:
git merge Branch1
En als u de bijgewerkte commits van Branch1 op Branch2 wilt, bent u waarschijnlijk op zoek naar git rebase
git checkout Branch2
git rebase Branch1
Hiermee wordt uw filiaal bijgewerkt met de nieuwste updates van Branch1.
Antwoord 2, Autoriteit 10%
git checkout [branchYouWantToReceiveBranch]
– Checkout Branch U wilt filiaal ontvangengit merge [branchYouWantToMergeIntoBranch]
Antwoord 3, Autoriteit 6%
Om één filiaal in een ander samen te voegen, zoals het samenvoegen van “Feature_x” -tak in “Master” -tak:
git checkout master
git merge feature_x
Deze pagina is het eerste resultaat voor verschillende zoekmachines wanneer u op zoek bent naar “Git Merge één tak in een ander”. De oorspronkelijke vraag is echter specifieker en speciaal geval dan de titel zou willen suggereren.
Het is ook complexer dan zowel het onderwerp als de zoekexpressie. Als zodanig is dit een minimaal maar toelichtend antwoord ten behoeve van de meeste bezoekers.
Antwoord 4, Autoriteit 2%
Voor het geval u hier aankwam omdat u een filiaalnaam van GitHub hebt gekopieerd, merk op dat een afstandsbediening niet automatisch een lokale branche is, dus een samenvoeging werkt niet en geef het “niet iets dat we kunnen samenvoegen”.
In dat geval hebt u twee opties:
git checkout [branchYouWantToMergeInto]
git merge origin/[branchYouWantToMerge]
of
# this creates a local branch
git checkout [branchYouWantToMerge]
git checkout [branchYouWantToMergeInto]
git merge [branchYouWantToMerge]
Antwoord 5
U kunt deze commands
gebruiken
git checkout <the branch you you want to merge in to>
git merge <the branch you want contents from>