hoe te duwen van een kassa in github?

Bij het coderen, realiseerde ik me dat ik een fout had gemaakt. ik gebruikte

git checkout 7e57dbf5a7245...

om terug te keren naar een oudere commit. Nu, wanneer ik gebruik commit

git commit -a

er staat dat ik me aan een [vrijgezel HEAD f69ae14] commit. Wanneer ik gebruik

git push origin master

het zegt dat alles up-to-date is ... Wat typ ik om deze [losse hoofd] commit terug te sturen naar de meester?

0
waarom voeg je de tag rails (3) toe aan deze vraag?
toegevoegd de auteur ernd enson, de bron

3 antwoord

Je huidige log moet zoiets zijn als dit

*-*-*-*[7e57db]-*-*-*
       \
        *-*-*-*<head>

Nu moet u master terugzetten naar de huidige positie HEAD , de huidige branch van master maken en deze naar origin duwen:

git branch -f master HEAD
git checkout master
git push origin master

Merk op dat je alle commits tussen 7e57db en huidige master zult verliezen.

1
toegevoegd

Uitgaande van wat maximaal is gezegd, ziet je log in eerste instantie er als volgt uit:

*-*[7e57db]-*-*

Je checkt 7e57db en git commit en je krijgt uiteindelijk:

*-*[7e57db]-*-*
   \
    *<head>

Wat je echt zou willen doen, is de commit bij HEAD nemen en de wijzigingen die op 7e57db zijn geïntroduceerd, opnieuw spelen op de master. De opdracht die u hiervoor gebruikt, is git rebase . Specifiek, als je eenmaal de commit had gemaakt, zou je lopen:

git rebase master

Op dit punt zou uw geschiedenis zijn:

*-*[7e57db]-*-*-*

Vervolgens kunt u git push origin master gebruiken om de externe ref bij te werken.

1
toegevoegd

u kunt de kop opnieuw instellen op de losse kop door te gebruiken

git reset --hard 7e57dbf5a7245...
# and then 
git push origin master --force

hierdoor verlies je je veranderingen tussen oude en nieuwe kop.

Als je deze wijzigingen wilt behouden, kun je een nieuw filiaal maken vanuit je losse hoofd en het samenvoegen in je hoofd, en vervolgens je wijzigingen doorvoeren en de nieuwe tak pushen.

0
toegevoegd