Ich benutze git bisect, um einen fehlerinduzierenden Commit zu finden. Viele der Commits in diesem Bereich sind jedoch absolut irrelevant (weil sie der Dokumentation oder Unit-Tests unterliegen). Ich möchte git bisect machen, um automatisch Commits zu überspringen, die Dateien in bestimmten Verzeichnissen betreffen. Ist das irgendwie möglich?Wie kann ich einen Git-Halbierungslauf mit Dateipfaden reduzieren?
Antwort
Sie haben mehrere Möglichkeiten:
Ignorieren spezifische verpflichtet
git bisect
enthält Funktionalität des Überspringens Commits. Sie können angeben, verpflichtet, Tags, reicht man nicht mitgit bisect skip 0dae5f ff049ab ...
Tun Sie dies, bevor Sie
git bisect run
, testen wollen, und es sollte überspringen was Sie angegeben haben.Angeben von Ordnern mit gebrochenen Quellen
Sie auch nach unten schneiden verpflichtet
bisect
Tests durch die Angabe, welche Ordner für Probleme in aussehen soll. Diese zu Beginn desbisect
Prozesses durch supllying zusätzliche Argumente zugit bisect start
erfolgt (Zitat aus dem Standardhandbuch):git bisect start -- arch/i386 include/asm-i386
Bisect berücksichtigt nur Commits, die die angegebenen Ordner berühren.
Wenn Sie Commits automatisch zu sammeln, die bestimmte Dateien oder Ordner berühren, können Sie git log
dafür. Zum Beispiel wird der folgende Befehl geben Sie Namen verpflichten, die Dateien in bestimmten Ordnern ändern:
git log --pretty=format:%H tests/ docs/
Und Sie können das Ergebnis git bisect skip
mit Verwendung von Shell-Funktionen liefern:
git bisect skip `git log --pretty=format:%H tests/ docs/`
- 1. Jenkins löscht einen Brief aus Dateipfaden
- 2. Umgang mit Dateipfaden über Plattform
- 3. Wie kann ich meine EBS Volumenkapazität reduzieren
- 4. Wie kann ich Doppelungen in Konstanten reduzieren?
- 5. Wie kann man Abhängigkeitsgraphen reduzieren?
- 6. Android: Disambiguierung von Dateipfaden
- 7. Arbeiten mit relativen Dateipfaden in .Net
- 8. CMake kann keine statische Bibliothek mit relativen Dateipfaden finden
- 9. Wie kann ich syntaktisches Durcheinander reduzieren, wenn ich in Haskell einen polymorphen Baum markiere?
- 10. Kann nicht herausfinden, wie zu beheben, reduzieren/reduzieren Konflikt
- 11. Wie kann ich diese Code-Duplizierung reduzieren in NodeJS/Mongoose
- 12. Wie kann ich diesen Baum in Haskell parallel reduzieren?
- 13. Zu viel Vortex, wie kann ich meine POJO-Builder reduzieren?
- 14. Wie kann ich den Speicherbedarf eines minimalen Prozesses Linux reduzieren
- 15. Kann ich den Speicherverbrauch von Ghci reduzieren?
- 16. Wie kann ich diesen sehr repetitiven Ruby/Rails Code reduzieren?
- 17. Wie kann ich Bootstrap Multiselect optgroups standardmäßig reduzieren?
- 18. Wie kann ich meinen RDS-Speicher reduzieren (herunterskalieren)?
- 19. Wie kann ich die Bundle-Größe meiner iOS-App reduzieren?
- 20. Wie kann ich meine App „Idle Wake Ups“ reduzieren?
- 21. Wie kann ich die Eingangslatenz in einer VirtualBox-VM reduzieren?
- 22. wie ich die Menge der if-Anweisungen reduzieren kann
- 23. Wie kann ich die Redundanzen in meinem Code reduzieren? [JS]
- 24. Wie kann ich die Höhe von glänzenden Input-Widgets reduzieren?
- 25. Größte Ansicht aller Zeiten! Wie kann ich dieses Monster reduzieren?
- 26. Wie kann ich den freien Speicher in Linux absichtlich um einen bestimmten Betrag reduzieren?
- 27. Wie schreibe ich Map reduzieren in R?
- 28. Wie kann ich die Größe eines Subversion-Repositorys reduzieren?
- 29. Wie kann ich die Größe eines Bildes reduzieren?
- 30. Wie kann ich alle #Regionen und Methoden in C# reduzieren?
ich über die erste wusste zwei Optionen bereits, aber das manuelle Überspringen von Commits war zu viel Arbeit (es gibt Hunderte von ihnen) und ich weiß auch nicht, welche Ordner die kaputten Quellen enthält. Der Vorschlag, 'git log' zu verwenden, ist großartig! Leider bin ich auf Windows, so ausgefallene Shell-Funktionen werden für mich nicht funktionieren. Ich kann jedoch leicht eine geeignete "git bisect skip" -Befehlszeile von Hand konstruieren. Vielen Dank! –
@FrelichRaabe: Was, dein git kam nicht mit einer Kopie von bash? – SamB
hmmm das Hinzufügen von 2 Ordnern zu 'git bisect start' sieht nur Commits an, die BEIDE Ordner berühren. Gibt es eine Möglichkeit, Commits zu betrachten, die ENTWEDER Ordner berühren? – EoghanM