Obecnie mam zdalną konfigurację Git, taką jak następująca:
[remote "upstream"]
url = <redacted>
fetch = +refs/heads/*:refs/remotes/upstream/*
Kiedy wysyłam git pull
na gałąź master, wszystkie zdalne głowice są pobierane do pilotów / nadrzędnych, a następnie zdalne / nadrzędne / główne są łączone w nadrzędne. Wszelkie tagi, do których można dotrzeć, są również pobierane w tym samym czasie, co jest bardzo wygodne.
Chciałbym git pull
dodatkowo pobrać wszystkie tagi z pilota, a nie tylko te, które są bezpośrednio osiągalne z głowic. Początkowo próbowałem to ustawić tagopt == --tags
, ale okazało się, że powoduje to pobieranie tylko tagów, a tym samym wszystko psuje. (Junio mówi nawet, że to straszna błędna konfiguracja ).
Czy istnieje sposób, aby git pull
domyślnie pobierać wszystkie zdalne tagi, oprócz zdalnych głowic?
git push origin <tag_name>
tagopt
rozwiązania nie jest już błędną konfiguracją; od 1.9 / 2.0 (Q1 2014) spowoduje to pobranie wszystkich tagów oprócz tego, co jest zwykle pobierane.Odpowiedzi:
Powinieneś być w stanie to osiągnąć, dodając refspec dla tagów do twojej lokalnej konfiguracji. Konkretnie:
źródło
Prosty
git fetch --tags
działał dla mnie.źródło
git ls-remote
.--force
Opcja jest przydatna do odświeżenia lokalne tagi. Głównie jeśli masz pływające tagi:Opcja git pull ma również
--force
opcje, a opis jest taki sam:ale zgodnie z dokumentem
--no-tags
:Jeśli to domyślne stwierdzenie nie jest ograniczeniem, możesz również spróbować
źródło
git pull --force
nie obejmujegit fetch --tags --force
Dla mnie wydawało się, że działa.
źródło
git fetch --tags
. Chciałem udzielić alternatywnej odpowiedzi. pull = pobierz + scal. Tak też się dzieje.To proste. Zrób
źródło
Używam tego z magitem na kernel.org
źródło