J'ai fait accidentellement 10 commits sur la branche "testing" quand j'ai eu l'intention de les commettre sur la branche "master". Les autres validations sur la branche "testing" sont garbage, donc je ne veux pas le fusionner avec "master". Au lieu de cela, je veux juste rejouer les 10 derniers commits sur le maître.Relire le dernier N commit sur une branche différente
Répondre
- git checkout maître
- git WhatChanged test
- git écrémer _________
?
Rebase devrait le faire.
git rebase -p --onto master testing~10 testing
Cela copiera les dix derniers commits sur les tests de maîtriser et de faire que le nouveau test (l'ancien test sera orphelin). Ensuite, vous pouvez fusionner maître à tester en tant que rapide-avant.
git checkout master
git merge testing
Utilisé la réponse de Ron avant que cela ne soit posté. –
Peut-être vaut-il la peine de noter que cela laisse le test au même point que le maître, laissant les commits "garbage" orphelins. Cela peut ou peut ne pas être une bonne chose. Une autre possibilité serait git checkout master; git reset - tests de résistance; git rebase --onto HEAD @ {1} HEAD ~ 10 –
@CharlesBailey Quel git flog avez-vous l'intention d'atteindre? – Fredrick
Comme dit dans les commentaires, la réponse rebase
-inspired est laissant le 'déchets' commits devenus orphelins.
Il suffit d'utiliser des outils simples:
git checkout master
git merge testing
git checkout testing
git reset --hard HEAD~10 # Go back 10 commits (*1)
git checkout master
(* 1) Vous ne serez "perdre" engage de la branche testing
, puisque vous aurez les commits en master
grâce à la merge
.
- 1. En quoi une branche annulée est-elle différente d'une branche normale?
- 2. Puis-je intégrer des fichiers extraits dans une branche différente sur la base
- 3. git-svn: comment copier les commit git d'une branche SVN à une autre?
- 4. CruiseControl.NET: lancer la construction sur le commit
- 5. Comment est-ce que je branche correctement post-commit et annule le tronc dans svn?
- 6. Outils pour relire la charge sur un serveur SQL
- 7. Construire sur commit avec subversion
- 8. Dernier mono sur centos
- 9. Comment obtenir le dernier index de "%" dans une chaîne?
- 10. Git: renommer un répertoire dans une branche
- 11. ASP.NET MVC: Redirection vers une action sur une application différente
- 12. Publication du HEAD d'une branche sans tous les objets commit précédents
- 13. Mercurial: multiline commit message sur la ligne de commande?
- 14. Git: patcher une autre branche
- 15. Meilleur moyen de casser une chaîne sur le dernier point sur C#
- 16. log4net/C# - Disposition différente basée sur le niveau
- 17. Android - image différente pour le survol sur ImageButton
- 18. Appeler un sproc d'un autre sproc sur une machine différente
- 19. Expérience de branche Git
- 20. mod_rewrite RewriteCond basé sur le dernier modifié? (.htaccess)
- 21. Comment envoyer de manière conditionnelle l'email svn commit, basé sur des mots-clés de commit?
- 22. SQL Server: Comment indexer au mieux une table N-N?
- 23. subversion merge - "a une racine de repository différente de"
- 24. git commit - paramétrer l'horodatage dans le futur
- 25. Lire le dernier lineof le fichier
- 26. Meilleure façon de construire un tronc ET une branche sur le même serveur CruiseControl.Net
- 27. Changer de nom de branche en git
- 28. Git-svn se confond sur une étiquette avec le même nom que précédemment supprimé un
- 29. A quoi sert le N dans varchar (N)
- 30. Comment supprimer une relation auto-référencée n: n dans Doctrine?
Juste un fyi-cherry-pick ne fera qu'un seul commit à la fois, donc vous devrez faire des tests de cerise ~ 9 puis tester ~ 8 puis ... tester. C'est pourquoi je préfère l'approche de rebasage proposée par Talljoe ... bien sûr, le résultat est le même. En fait, si vous faites le rebasage de façon interactive, git utilisera en fait la cueillette des cerises sous le capot. –
@PatNotz 'git cherry-pick' peut actuellement faire plusieurs commit à la fois (par exemple' 'git cherry-pick testing ~ 10..testing'). –
Vous ne devriez jamais utiliser 'cherry-pick'. Lisez [cet article] (http://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html) pour plus d'informations. – Tim