2017-07-20 5 views
0

Je suis très nouveau avec git et je n'arrive pas à trouver la solution exacte de google ou stackoverflow. J'ai essayé Undo git pull, how to bring repos to old state bien, mais pas de succès. Je possède essentiellement "initial" et "pre_dev" branche. Généralement, je fusionne mon code de branche initial dans la branche pre_dev.revert git pull de la branche sélectionnée

Mais aujourd'hui, j'ai tiré pre_dev dans initial par erreur. Maintenant, l'arborescence source affiche la notification push en initiale. Alors s'il vous plaît laissez-moi savoir comment inverser cela. Alors que je n'ai pas besoin de pousser ces changements.

Je peux voir dans l'arbre source après tant d'essais:

enter image description here

Je ne veux pas que cela pousser dans initiale. Alors s'il vous plaît aidez-moi dans ceci. Et désolé de poser cette question à nouveau, si déjà résolu par quelqu'un dans une autre question de stackoverflow. S'il vous plaît aidez-moi en tant que débutant. Merci

+0

À quoi ressemble votre arbre? – Liam

Répondre

3

Si vous voulez vous débarrasser de tous les commits de pre_dev de initial que je suppose accidentellement fait, alors vous pouvez facilement le faire en utilisant git reset, comme suit:

git reset --hard origin/initial 

Note importante: Vous perdrez également tous vos changements (le cas échéant) de initial branche que vous avez fait avant de tirer de pre_dev.

1

Généralement, vous souhaitez utiliser git reset --hard pour ramener le pointeur de la branche à l'endroit où il se trouvait. Comme le note Arpit, ce pourrait être origin/initial; mais si vous avez des changements non-poussés que vous voulez garder sur initial (en dehors de la fusion involontaire que vous voulez jeter) alors vous voudriez quelque chose d'autre.

Par défaut, un pull crée un seul commit de fusion sur la branche courante. Donc, dans ce cas, vous pourriez

git reset --hard HEAD^ 

Si la traction a fait quelque chose d'autre, il pourrait être plus facile d'utiliser le reflog.

git reflog initial 

va vous montrer où votre initial ref a récemment pointé; identifier le commit qui représente l'état désiré de initial. Ce serait probablement le commit le plus récent dans la liste, ce qui signifierait

git reset --hard [email protected]{1}