Hoe de lokale vertakking te rebasen op de externe master

Ik heb een gekloond project van een master branch van remote repository remote_repo. Ik maak een nieuwe branch aan en verbind me aan die branch. Andere programmeurs pushten naar remote_reponaar de master branch.

Ik moet nu mijn lokale branch RBopnieuw baseren op remote_repo‘s masterbranch.

Hoe doe je dit? Welke commando’s moet je naar een terminal typen?


Antwoord 1, autoriteit 100%

Haal eerst de nieuwe master op uit de upstream-repository en rebase vervolgens uw werkbranch daarop:

git fetch origin            # Updates origin/master
git rebase origin/master    # Rebases current branch onto origin/master

Update: zie Paul Draper’s antwoordvoor een beknoptere manier om hetzelfde te doen – recente Git-versies bieden een eenvoudigere manier om het equivalent van de bovenstaande twee opdrachten uit te voeren.


Antwoord 2, autoriteit 71%

git pull --rebase origin master

Antwoord 3, autoriteit 21%

Na het vastleggen van wijzigingen in uw branch, checkt u masteruit en haalt u het op om de laatste wijzigingen uit de repo te halen:

git checkout master
git pull origin master

Betaal dan je branch af en baseer je wijzigingen op master:

git checkout RB
git rebase master

…of laatste twee commando’s op één regel:

git rebase master RB

Als je probeert terug te gaan naar origin/RB, krijg je waarschijnlijk een foutmelding; als je de enige bent die aan RBwerkt, kun je push forceren:

git push --force origin RB

…of als volgt als je git correct hebt geconfigureerd:

git push -f

4, Autoriteit 9%

Opmerking: Als u al een brede kennis hebt over de terugbrenging en gebruik dan onder één voering voor snelle rebase.
Oplossing:
Ervan uitgaande dat je op je werktak bent en jij bent de enige persoon die eraan werkt.

git fetch && git rebase origin/master

Los alle conflicten op, test uw code, plegen en duwt nieuwe wijzigingen in de afstandsbediening.

                           ~:   For noobs   :~

De volgende stappen kunnen iedereen helpen die nieuw zijn op git rebaseen wilde het zonder gedoe

Stap 1: Ervan uitgaande dat er op dit punt geen commits en veranderingen in uw beurt zijn. We bezoeken uwBRANCH.

git checkout YourBranch
git pull --rebase

Wat is er gebeurd? Trekt alle wijzigingen door andere ontwikkelaars die aan uw filiaal werken en uw wijzigingen er bovenop rebaseren.

Stap 2: Ras alle conflicten op die presenteert.

Stap 3:

git checkout master
git pull --rebase

Wat is er gebeurd? Trekt alle nieuwste wijzigingen van Remote Master en rebases Local Master op Remote Master. Ik houd altijd op afstand master schoon en laat je klaar! En liever alleen om lokaal aan master of takken te werken. Ik raad aan om dit te doen totdat je een hand krijgt op gitwijzigingen of commits.
OPMERKING: deze stap is niet nodig als u geen lokale meester onderhoudt, in plaats daarvan kunt u direct rechtstreeks op de lokale branche ophalen en opnieuw opstart. Zoals ik in de start in één stap vermeldde.

Stap 4: Ras alle conflicten op die presenteert.

Stap 5:

git checkout YourBranch
git rebase master

Wat is er gebeurd?Rebase op master gebeurt

Stap 6:Los eventuele conflicten op, als die er zijn. Gebruik git rebase --continueom door te gaan met rebasen nadat de opgeloste conflicten zijn toegevoegd. Je kunt op elk moment git rebase --abortgebruiken om de rebase af te breken.

Stap 7:

git push --force-with-lease 

Wat is er gebeurd?Wijzigingen pushen in je remote YourBranch. --force-with-leasezorgt ervoor dat er andere inkomende wijzigingen voor YourBranch zijn van andere ontwikkelaars terwijl u rebast. Dit is super handig in plaats van forceren. Als er binnenkomende wijzigingen zijn, haal ze dan op om uw lokale YourBranch bij te werken voordat u wijzigingen doorgeeft.

Waarom moet ik wijzigingen doorvoeren?Om het vastleggingsbericht in YourBranch op afstand te herschrijven na de juiste rebase of als er conflicten zijn opgelost? Vervolgens moet u de wijzigingen die u in de lokale opslagplaats hebt opgelost, naar de externe opslagplaats van YourBranch pushen

Jaaa…! Je bent klaar met rebasen.

Misschien wil je ook het volgende doen:

git checkout master
git merge YourBranch

Wanneer en waarom?Voeg je branch samen met master als je klaar bent met wijzigingen door jou en andere mede-ontwikkelaars. Dat maakt YourBranch up-to-date met master wanneer je later aan dezelfde branch wilde werken.

                           ~:   (๑ơ ₃ ơ)♥ rebase   :~

Antwoord 5, autoriteit 3%

Stap 1:

git fetch origin

Stap 2:

git rebase origin/master

Stap 3: (Los eventuele conflicten op)

git add .

Stap 4:

git rebase --continue

Stap 5:

git push --force

6, Autoriteit 2%

1. Update Master First …

git checkout [master branch]
git pull [master branch]

2.Nu Rebase Source-Branch met Master Branch

git checkout [source branch]
git rebase [master branch]
git pull [source branch] (remote/source branch)
git push [source branch]

Als brontak nog niet op afstand bestaan, doe dan:

git push -u origin [source branch]

“et voila …”


7

Als de huidige tak veel commits heeft en ze moeten worden ingepakt, gefixeerd en herschreven voordat het rebasing is, is interactieve rebase het juiste antwoord. Wanneer software ingenieurs zeggen “Rebase op de top van Master”, wat ze gewoonlijk betekenen, is “Do Interactive Rebase Bovenop Origin / Master doen en ervoor zorgen dat het er goed uitziet en onnodige commits worden ingepakt, en berichten worden gecorrigeerd.

Controleer eerst
git statusen zorg ervoor dat u begint in Feature Branch.

Zo niet in functie Brach, probeer git checkout feature
Dan

git fetch origin
git rebase -i origin/master

Zelden, een commit-geschiedenis is klaar om opnieuw te worden geresteerd als het is wanneer de rebase bovenop Master wordt aangevraagd. In de meeste gevallen worden de bestaande commits eerst herzien met behulp van de interactieve rebase.

Other episodes