2017-01-13 6 views
0

J'ai effectué de nombreux changements dans mon référentiel local, mais je ne veux en pousser que quelques-uns. C'est possible? J'ai une liste (avant de pousser) avec tous mes changements, mais je n'ai besoin de pousser que peu. Je voudrais annuler tous ces changements de mon dépôt local. J'ai créé des patches avec seulement des changements que je veux pousser mais maintenant je ne peux pas enlever les changements de mon repo local. J'ai essayé d'utiliser git reset hard mais cela ne fonctionne pas comme je le veux.Git - annuler les modifications validées à partir du dépôt local

+0

double possible de [comment voulez-vous pousser seulement une partie de votre git locale engage?] (Http://stackoverflow.com/ questions/604399/how-do-you-push-only-of-your-local-git-commits) – sigy

+0

Egalement en relation: [git - push spécifique commit] (https://stackoverflow.com/questions/3230074/ git-pushing-specific-commit) – sigy

+0

@sigy Je pense que le problème d'OP est différent car ils veulent aussi changer leur histoire locale – Dunno

Répondre

2

Si vous avez vraiment, vraiment voulez simplement supprimer commits indésirables, puis faire

git rebase -i <sha_of_commit_before_those_that_are_unwanted> 

puis supprimer des lignes avec vous commits voulez vous débarrasser.

Cependant, gardez à l'esprit que les commettras vont et disparaître les récupérer pourrait ne pas être possible. Peut-être d'abord pousser ces commits vers une branche distante temporaire, ou faire une branche locale avec eux?

Maintenant que vous avez réussi à se débarrasser de vos commits, vous pouvez faire un simple git push origin branch

+0

Eh bien, si je crée une branche temporaire et que je mets des changements de repo local à cette branche, cela devrait résoudre mon problème, ai-je raison? C'est un moyen sûr, je pense. – allocer

+1

@allocer oui, faire une branche locale permettra également de préserver vos commits. Je préfère simplement pousser à distance pour plus de sécurité – Dunno

+0

J'ai créé une nouvelle branche locale, j'y ai poussé tous mes changements, je suis retourné à la branche principale et j'ai ouvert la fenêtre Push. Les changements locaux sont toujours là comme avant. Comment résoudre ceci? – allocer