Ich möchte sehen, welche Tags ich lokal habe, die auf einer bestimmten Fernbedienung nicht verfügbar sind. Wie kann ich das machen? Ich weiß, ich kann git push --tags
tun, um alle von ihnen zu schieben. Wenn es jedoch einige Tags gibt, die ich nicht gepusht haben möchte, wie stelle ich sicher, dass ich einige nicht verpasst habe?So listen Sie nicht gedrückte Git-Tags auf
17
A
Antwort
22
können Sie folgende verwenden die Tags, um zu sehen, die lokal vorhanden sind, aber nicht in den angegebenen Remote:
git show-ref --tags | grep -v -F "$(git ls-remote --tags <remote name> | grep -v '\^{}' | cut -f 2)"
Beachten Sie, dass git ls-remote
zeigt sowohl die kommentierten Tag und das Commit verweist er auf mit ^{}
, also brauchen wir um die Duplikate zu entfernen.
Eine Alternative ist die --dry-run
/-n
Flags git push
zu verwenden:
git push --tags --dry-run
Dies wird zeigen, was geschoben hätte verändert worden, aber nicht wirklich diese Änderungen vornehmen.
2
Für das Protokoll, ich bin mit einer Variante dieses mit dem ‚comm‘ Befehl:
comm -23 <(git show-ref --tags | cut -d ' ' -f 2) <(git ls-remote --tags origin | cut -f 2)
ich es als git alias in .gitconfig verwenden, mit dem richtigen bash wie folgt zitiert:
[alias]
unpushed-tags = "!bash -c \"comm -23 <(git show-ref --tags | cut -d ' ' -f 2) <(git ls-remote --tags origin | cut -f 2)\""
Verwandte Themen
- 1. So listen Sie meine Wände auf [Screeps]
- 2. So listen Sie alle Klasseneigenschaften auf
- 3. Holen Sie sich die zuletzt gedrückte Tastaturtaste
- 4. So listen Sie Eigenschaften auf, die mit Object.defineProperty definiert sind
- 5. Lange gedrückte Taste
- 6. So listen Sie SQL 2005 Express-Instanzen auf
- 7. So listen Sie Warteschlangen auf, einschließlich Warteschlangenname von AWS
- 8. So listen Sie alle Dateien aus dem Ressourcenverzeichnis auf
- 9. So verwenden Sie Listen in den Bedingungen
- 10. So listen Sie alle bereitgestellten Versionen in activiti explorer auf
- 11. So listen Sie alle Daten zwischen zwei Daten auf
- 12. So fügen Sie Bibliotheken zu Xamarin hinzu Verweise auf Listen
- 13. So listen Sie alle Autoload-Pfade in Rails 3 auf
- 14. So verwenden Sie Bedingungen mit Listen
- 15. So erkennen Sie die gedrückte Shift-Taste beim Bewegen der Maus
- 16. Jede gedrückte Taste auf Listview Öffnung gedrückt und 5. Position
- 17. Listen to child MenuItem Klicken Sie auf
- 18. So finden Sie ähnliche Muster in Listen/Arrays von Strings
- 19. Zählen Sie zwei Python-Listen gleichzeitig auf?
- 20. So listen Sie die Interface-Methoden auf, indem Sie die Eigenschaften-Accessoren weglassen
- 21. WPF Listenansicht Header Hover/gedrückte Farbe
- 22. So drucken Sie eine Liste von Listen in OCaml
- 23. Fixed: "Android: Erkennen von Fokus/gedrückte Farbe"
- 24. So finden Sie maximale Werte aus mehreren Listen in Python
- 25. R So entfernen Sie eine Liste von Listen aus einer Liste von Listen
- 26. So konvertieren Sie Dropdown-Listenereignis zu Listen Onclick-Ereignis
- 27. Finden Sie Indizes auf zwei Listen basierend auf Artikel Bedingung
- 28. So etwas wie expand.grid auf einer Liste von Listen
- 29. So erhalten Sie alle Kombinationen mehrerer Listen <int>
- 30. So entfernen Sie gemeinsame Werte aus zwei String-Listen
Da Sie die Ausgabe von 'git ls-remote' verwenden aus der' show-ref' heraus zu filtern, gibt es nicht viel Schaden in verlassen der '^ {}' Zeilen. das lässt uns mit einem leicht einfacher: 'git show-ref --tags | grep -v -F "$ (git ls-remote -tags -ursprung | cut -f 2)" ' – phinze
Dies ist derselbe Befehl, außer dass' 'durch' origin' ersetzt wurde. Verwenden Sie dies zum Kopieren/Einfügen: 'git show-ref --tags | grep -v -F "$ (git ls-remote -tags Ursprung | grep -v '\^{}' | cut -f 2)" ' –
funroll