Merge één lokale tak in een andere lokale tak

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%

  1. git checkout [branchYouWantToReceiveBranch]– Checkout Branch U wilt filiaal ontvangen
  2. git 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>

Other episodes