Jak zmigrować istniejący projekt do usługi GitHub?
W tym miejscu omówimy ważne zagadnienia dotyczące migrowania projektu do usługi GitHub ze starszego systemu kontroli wersji.
Dlaczego warto zacząć korzystać z usługi GitHub?
Powstały już całe tomy literatury na temat zalet usługi GitHub. Jest poza zakresem tego modułu, aby przekonać Cię do przeniesienia. Możemy jednak podsumować niektóre kluczowe korzyści w kontekście tematów, które należy wziąć pod uwagę podczas planowania migracji.
Kontrola wersji
Usługa GitHub korzysta wyłącznie z usługi Git, prawdopodobnie najlepszego systemu kontroli wersji. Jednak usługa Git jest niezwykle zaawansowana i może przedstawić pewne złożone scenariusze pracy z kodem, z którym zespół może nie być doświadczony. Gałęzie i żądania ściągnięcia są podstawową częścią codziennego życia deweloperów korzystających z usługi Git, więc zrozumienie, kiedy i jak efektywnie ich używać, jest niezbędne do pomyślnego osiągnięcia sukcesu w usłudze GitHub. Warto, aby twój zespół najpierw zapoznał się z przepływem usługi GitHub, aby można było przejść na ziemię.
Przechowywanie kodu w chmurze
Duża ilość kodu projektu jest nadal przechowywana w starszych systemach kontroli wersji za zaporami firmowymi. Podczas migracji do usługi GitHub przenosisz kod na platformę w chmurze usługi GitHub, gdzie członkowie zespołu mogą łatwo uzyskiwać do niego dostęp z dowolnego miejsca. To dobra okazja do zrewidowania zasad dotyczących przechowywania różnych plików i danych w systemie kontroli wersji. Najlepszym rozwiązaniem jest założenie, że bezpieczeństwo wszystkich elementów zatwierdzonych w usłudze GitHub zostało naruszone. Pamiętaj, aby nie uwzględniać poufnych danych, takich jak klucze interfejsu API, hasła lub inne pliki zawierające porównywalne informacje.
Uwaga
Usługa GitHub udostępnia zarówno publiczne, jak i prywatne repozytoria, a także mechanizmy szczegółowej kontroli dostępu do różnych części repozytorium. Dzięki temu możesz kontrolować, kim są widoczne projekty, a także jakie akcje może wykonać dany użytkownik.
Współpraca
Usługa GitHub zapewnia doskonałą obsługę współpracy zespołowej dzięki takim funkcjom, jak problemy, żądania ściągnięcia i przeglądy kodu. Jednak przepływ usługi GitHub może się różnić od praktyk, do których zespół jest obecnie przyzwyczajony. Warto rozważyć, czy zespół planuje dostosować się do usługi GitHub, zachować swój proces lub spotkać się gdzieś w środku przed ukończeniem migracji.
Jeśli projekt jest projektem typu open source, który umożliwia współautorom zewnętrznym, nie ma lepszej opcji niż usługa GitHub umożliwiająca maksymalizację korzyści.
Migrowanie do usługi GitHub
Kwestie dotyczące planowania
Najważniejszą kwestią przed wykonaniem migracji do usługi GitHub jest to, czy należy zachować jakiekolwiek elementy poza bieżącym stanem źródła. Jeśli jesteś zadowolony z rozpoczęcia nowego projektu tylko z bieżącym źródłem, jak to jest, najlepszym rozwiązaniem jest traktowanie go jak nowy projekt i przekazanie źródła do repozytorium.
Jeśli jednak chcesz zachować historię kontroli wersji, musisz zaimportować je przy użyciu narzędzia GitHub Migrator. Aby uzyskać więcej informacji na temat obsługi importu dla różnych platform kontroli wersji, zobacz Importowanie danych z systemów kontroli wersji innych firm.
Poza danymi usługi Git możesz również zachować problemy, żądania ściągnięcia lub inne dane. Obsługa tych elementów różni się w zależności od platformy i jest ogólnie dostępna w projektach społeczności. Ten moduł nie obejmuje migrowania danych innych niż Git.
Obsługa plików binarnych, które aktualnie znajdują się w projekcie
Najlepiej jest, gdy w repozytoriach GitHub znajdują się tylko pliki potrzebne do kompilowania projektów. Unikaj zatwierdzania dużych plików binarnych, takich jak artefakty kompilacji. Pliki binarne, takie jak arkusze kalkulacyjne i prezentacje, można łatwiej śledzić w portalach, które zapewniają prawidłową obsługę tych plików (w tym mechanizmów wersjonowania). Jeśli potrzebujesz wersji dużych plików binarnych, rozważ użycie rozszerzenia Git LFS (large File Storage).
Tworzenie ważnych plików Git, takich jak .gitignore
Usługa Git obsługuje .gitignore
pliki ułatwiające wymuszanie zasad plików kontroli wersji. Te pliki definiują wzorce wyszukiwania używane do wykluczania plików i folderów ze śledzenia kontroli źródła. Poniższy prosty przykład rekursywnie wyklucza wszystkie foldery o nazwie Bin lub bin oraz ich zawartość ze śledzenia kontroli źródła:
[Bb]in/
Możesz dowiedzieć się więcej na temat ignorowania plików. Możesz również zapoznać się z kolekcją plików startowych .gitignore
oferowanych dla różnych platform w repozytorium gitignore.
W projektach GitHub często używa się kilku innych plików, które umożliwiają wyjaśnianie różnych zasad użytkownikom i współautorom repozytorium. Nawet w przypadku projektów, które są prywatne, a liczba ich odbiorców jest ograniczona, możliwość jawnego przedstawienia tych zasad może być przydatna. Chociaż żaden z tych plików nie jest wymagany, wymieniono kilka typowych plików w tym miejscu.
Plik | Purpose |
---|---|
README.md |
Strona docelowa w katalogu. Strona ta jest renderowana, gdy jej katalog jest wyświetlany w usłudze GitHub. |
LICENSE.md |
Licencja podana w ramach kodu. |
CONTRIBUTING.md |
Wyjaśnia, jak użytkownicy powinni współtworzyć projekt, na przykład oczekiwania dotyczące żądań ściągnięcia. |
SECURITY.md |
Objaśnia zasady zabezpieczeń dla projektu. Zawiera wskazówki dla użytkowników, którzy chcą przesyłać poufny kod lub opinie dotyczące zabezpieczeń, które nie powinny być ujawniane publicznie przed rozwiązaniem problemu. |
Aby dowiedzieć się więcej, zapoznaj się z artykułem Setting up your project for healthy contributions (Konfigurowanie prawidłowego współtworzenia w projekcie).
Importowanie projektu do usługi GitHub
Po przygotowaniu repozytorium do migracji przejdź do karty Kod repozytorium GitHub. Określ repozytorium źródłowe za pomocą opcji Import code (Zaimportuj kod).
Narzędzie GitHub Migrator zajmuje się resztą.