Jak już niejednokrotnie pisałem, że do pracy bardzo intensywnie wykorzystuję maszyny wirtualne. Każdy projekt ma swoją. Co za tym idzie – cały kod mam także schowany w wirtualkach, bo repozytorium hostuję na vipserv (lub na hostingu dostarczonym przez klienta). Ma to nieprzebrane wprost morze zalet. Ma też kilka wad, z których jedna dawała mi się czasami we znaki: aby dostać się do kodu, muszę odpalić wirtualkę, co nie zawsze jest możliwe.
Przyjemnie byłoby móc napisać “git backup” i mieć całe repozytorium przetransferowane w jakieś dodatkowe miejsce, w moim przypadku: na fizyczne PC. Na tyle przyjemnie, że któregoś razu postanowiłem zrobić mały risercz. Okazało się to dość banalne, ponieważ dokładnie tą funkcję spełnia instrukcja git push z przełącznikiem –mirror.
Wystarczyło utworzyć alias wskazujący na “remote” skojarzone z PCtowym repo gotowym do przyjęcia mojego kodu:
1: [alias] 2: backup = push --mirror pc
Uwaga: czasami trzeba operację wykonać dwukrotnie aby pchnięte zostały wszystkie zmiany, wraz ze zmianami organizacji gałęzi. Czytałem kiedyś jakieś wytłumaczenia dlaczego tak jest, ale potem doszedłem do wniosku że w sumie nie ma to dla mnie znaczenia (lub bardziej luzacko: teramietowali:)).