wtorek, 22 maja 2018

MPLABX-IDE współpraca ze zdalnym repozytorium na GitHub.

W tym krótkim artykule zapoznamy się z możliwością współpracy ze zdalnym repozytorium na GitHub-ie. Funkcjonalność taka jest zaimplementowana w MPLAB-X IDE czyli w podstawowym środowisku do programowania MCU PIC firmy Microchip. Nie widzę powodu abyśmy z tej funkcjonalności nie skorzystali a w zasadzie z tego dobrodziejstwa.
Tym bardziej , że jest to bardzo fajne narzędzie i sympatycznie się z niego korzysta. Co to jest GitHub ? w sumie to już nawet nie wypada nie wiedzieć :)
W artykule pokażę jak  podpiąć dowolny projekt w MPLABX-IDE do zdalnego repozytorium, jak zatwierdzać zmiany i wysyłać je. Czyli takie podstawowe rzeczy na dobry początek.
Aby korzystać ze zdalnego repozytorium musimy w pierwszej kolejności założyć konto na GitHub  https://github.com/ Poradzi sobie z tym każdy przedszkolak więc pomijam tę czynność.
Zakładam , że mamy już konto na GitHub
Stworzymy sobie zatem na naszym koncie (po zalogowaniu) nowe repozytorium do którego będziemy chcieli zdalnie przesyłać zmiany zatwierdzone na lokalnych plikach projektu w MPLABX-IDE. Lokalnych znaczy na naszym PC :)
Nowe repozytorium na GitHub możemy utworzyć np rozwijając w górnej prawej części okna mały plusik (ikonka obok ikonki dzwoneczka) :

klikamy opcję New repository i otworzy nam się okienko jak na zdjęciu powyżej. Wpisujemy nazwę projektu ProjektTestowy i zaznaczamy "ptaszka" przy opcji Initialize this repository with a README


Klikamy na dole okienka Create repository i otwiera nam się główne okno stworzonego repozytorium. Będzie tam tylko jeden plik README.md.


Repozytorium zdalne mamy stworzone, teraz czas na projekt w MPLABX-IDE
Utworzymy w tym celu pusty projekt o nazwie ProjektTestowy, ale nie musi to być taka sama nazwa jak w utworzonym repozytorium w GitHub.

Jak stworzyć nowy projekt w MPLABX-IDE ? pokazywałem już to przy okazji tego artykułu : PIC32MM - SPI , szybka konfiguracja za pomocą MCC

Zakładam , że mamy stworzony w MPLABX-IDE projekt o nazwie ProjektTestowy.
Kolejną czynnością będzie inicjalizacja lokalnego repozytorium i robimy to w MPLABX-IDE, na zdjęciu poniżej pokazano gdzie jest ukryta opcja, którą trzeba wybrać i kliknąć :



W kolejnym okienku potwierdzamy tylko i nic nie zmieniamy :



Po chwili otrzymamy w okienku na dole informację z potwierdzeniem inicjalizacji lokalnego repozytorium  :




Ale jeszcze to nie koniec konfiguracji. Musimy zrobić jedną ważna rzecz. Klikamy w opcję Pull, którą znajdziemy na poniższym obrazku :


Wyskoczy nam okienko jak poniżej :


W okienku powyższym musimy podać adres naszego zdalnego repozytorium na GitHub-ie oraz login i hasło do GitHuba. Skąd tylko ten adres wziąć ? W tym celu otwieramy stronę GitHub, logujemy się do naszego konta i wchodzimy we wcześniej utworzone repozytorium o nazwie ProjektTestowy. W oknie głównym repozytorium wchodzimy w opcję Clone or download i tam mamy podany adres zdalnego repozytorium o nazwie ProjektTestowy
Kopiujemy ten adres i wklejamy do okienka (zdjęcie powyżej) w MPLABX-IDE.
Po podaniu hasła i nazwy użytkownika klikamy Next i pokazuje się okienko jak poniżej :



Zaznaczamy opcję i klikamy Finish.

Ponieważ lokalnie mamy stworzony projekt a na zdalnym GitHub-ie nie mamy nic oprócz piku README.md, musimy zatem  skopiować projekt lokalny z MPLABX-IDE do zdalnego repozytorium na GitHub-ie.

W tym celu szukamy opcji Commit, która zatwierdza zmiany w projekcie. Znajdziemy ją tutaj :



Po wybraniu opcji Commit otworzy nam się okienko  z wizualizacją plików w jakich dokonano zmian.


Zatwierdzamy przyciskiem Commit.
Teraz świeżo zatwierdzony projekt możemy przesłać do zdalnego repozytorium na GitHub. W tym celu szukamy opcji Push a znajdziemy ją tutaj :


Po kliknięciu opcji Push pojawi się okienko w którym podajemy link do naszego zdalnego repozytorium :



Po podaniu danych klikamy Next i otwiera się kolejne okienko na , którym zaznaczamy "ptaszka" w opcji na górze (jeśli nie zaznaczony) i klikamy Next :


Ostatnie okienko i tu również zaznaczamy "ptaszka" przy nazwie gałęzi i klikamy Finish
Po chwili nasz lokalny projekt zostanie przesłany do zdalnego repozytorium, aby to zobaczyć na własne oczy wchodzimy do GitHuba do repozytorium ProjektTestowy, jeśli już w przeglądarce mieliśmy wcześniejszy widok to odświeżamy okno i zobaczymy nasz projekt.

Może nas zdziwić trochę struktura plików bo nie odzwierciedla ona tego co widzimy w oknie MPLABX IDE, ale nie martwmy się jest to dokładnie postać katalogu naszego projektu na dysku. Struktura projektu jest przechowywana w plikach XML. Jeśli teraz np. projekt ściągniemy za pomoca opcji Pull ze zdalnego repozytorium na GitHub do MPLABX-IDE lokalnie to otrzymamy obraz i strukturę dokładnie taki jaki trzeba.

Mamy zatem projekt lokalnie w MPLABX-IDE i na zdalnym repozytorium GitHub jego kopię. Teraz jak zrobimy jakieś zmiany po stronie lokalnej w projekcie to chcemy aby po zatwierdzeniu zmiany znalazły się w zdalnym repozytorium.

Utwórzmy sobie w lokalnym projekcie ProjektTestowy w zakładce Source Files, plik main.c Nie będę pisał jak to zrobić bo każdy przedszkolak wie jak :)

Zakładam zatem , że  main.c mamy utworzony. Teraz chcemy ten plik przenieść do zdalnego repozytorium na GitHub, żeby to zrobić musimy zatwierdzić zmiany a robimy to tak :



Po wybraniu i kliknięciu opcji Commit pojawi nam się okienko w którym widzimy co jest zatwierdzane , możemy do tego dodać komentarz do zatwierdzonej zmiany czyli w naszym przypadku utworzenia pliku main.c :




klikamy Commit na dole okienka , zmiany zostały zatwierdzone. Teraz jak przesłać zatwierdzone zmiany do zdalnego repozytorium na GitHub.
Wchodzimy w opcję Push , którą znajdziemy na poniższym zdjęciu :



otworzy nam się okienko :



Parametry w okienku są przechwycone z tego co już wcześniej podawaliśmy przy okazji wykonania opcji Pull. Więc nic tu nie musimy podawać klikamy tylko Next , otworzą się kolejne dwa okienka i tam również Next, w ostatnim okienku klikamy Finish
Plik main.c powinien nam się pojawić w zdalnym repozytorium na GitHub-ie

Podsumowanie podstawowych komend do współpracy z GitHub:

Clone - sklonowanie zdalnego projektu w GitHub do lokalnego repozytorium 
Commit - zatwierdzanie zmian
Push - wysłanie zatwierdzonych zmian do zdalnego repozytorium w GitHub
Pull - pobranie danych ze zdalnego repozytorium w GitHub do lokalnego repozytorium.

Generalnie współpraca MPLABX IDE z GitHub jest zrobiona bardzo fajnie i trzeba przyznać, że jest to bardzo pomocne narzędzie, które znacząco ułatwia monitorowanie pisanych programów .Szczególnie ma to ogromne znaczenie jeśli nad programem pracuje kilka osób.



Pozdrawiam
picmajster.blog@gmail.com


Linki :
Przydatny tutorial o GIT

5 komentarzy:

  1. Wreszcie się ktoś wziął porządnie za PIC32mm

    OdpowiedzUsuń
  2. Bardzo fajny i przydatny opis githuba. Dzięki!
    Czy instalowałeś/próbowałeś jakiegoś lokalnego githuba - tak, żeby nie trzeba było mieć dostępu do Internetu podczas pracy?

    OdpowiedzUsuń
  3. Dziękuję za dziękuję :) Gita lokalnie nie ćwiczyłem jeszcze, nie miałem takiej potrzeby. Ale to w przypadku Linuxa nie powinno byc trudne, instalacja za pomocą apt get i tyle, potem pewnie jakaś delikatna konfiguracja. Z punktu widzenia MPLABX-IDE nie ma znaczenia czy lokalnie czy zdalnie bo tu operujemy tylko ścieżkami dostępu. Może w przypływie weny rozpracuję ten temat i uzupełnię artykuł o ten aspekt.

    Pozdrawiam
    PICmajster

    OdpowiedzUsuń
  4. szczególnie na dobre wychodzi jak się robi "odchylenia" programu , tworzy się nową gałąź ,potem push zamiast robić tysiąc katalogów. Bez gita wymarła w latach 90-tych programistów elita ;-) przy większych projektach


    OdpowiedzUsuń