repos

Zakładając projekt Nocturno zdecydowałem się na repozytorium gita na Visual Studio Team Services (jeszcze do niedawna – Visual Studio Online). Jest to całkiem fajne środowisko, zwłaszcza do pracy zespołowej, choć nie tylko. Wymogiem konkursu Daj Się Poznać był warunek, że repozytorium z projektem musi być publiczne i musi znajdować się na GitHubie. Czy da się połączyć jedno z drugim? Jak najbardziej.

Pierwsza myśl jaka mi przyszła do głowy – skopiować projekt w inne miejsce i „pullnąć” go na GitHuba. Pomyślałem jednak, że szkoda by było stracić te wszystkie ficzery, które oferuje VS Team Services (a które opiszę w jednym z kolejnych postów). Pojawiło się pytanie: co zrobić, aby wilk był syty i owca cała? Odpowiedź brzmi: multiple remotes 😉

Jak wiadomo, git to system kontroli wersji rozproszony. Dzięki temu lokalne i zdalne repozytoria są od siebie niezależne – łączy je tylko mapowanie. Jak się okazuje, struktura mapowania jest bardzo elastyczna i można do jednego lokalnego repozytorium przypisać kilka repozytoriów zdalnych. Jak to zrobić? Wystarczy jedna prosta komenda:

git remote add [name] [url]

[name] to nazwa, pod jaką zostanie dodany nowy remote. W miejscu [url] należy wpisać adres repozytorium na GitHubie. Następnie należy użyć komendy git pull [name] master (zakładając że jest to „świeże” repozytorium i zawiera ewentualnie tylko opis i licencję). Nastąpi wtedy merge repo z GitHuba do naszego lokalnego. Teraz pozostaje tylko użyć komendy git push [name] master , aby wrzucić wszystkie zmiany na nowego remote’a. Od tej pory możemy używać 2 repozytoriów na raz 🙂 .

Jeśli korzystamy z narzędzi GUI do gita, również możemy dodać zdalne repo:

Visual Studio: z poziomu Team Explorera należy wybrać kolejno Settings > Repository Settings i na samym dole w kategorii Remotes kliknać Add.

SourceTree: w menu należy wybrać Repository > Add remote… a następnie kliknąć przycisk Add.

Share