{"id":3789,"date":"2023-04-04T15:25:34","date_gmt":"2023-04-04T13:25:34","guid":{"rendered":"http:\/\/www.verdaduras.com.pl\/wp\/?p=3789"},"modified":"2023-04-04T15:25:34","modified_gmt":"2023-04-04T13:25:34","slug":"1027-git-i-github-w-skrocie","status":"publish","type":"post","link":"https:\/\/verdaduras.com.pl\/index.php\/2023\/04\/04\/1027-git-i-github-w-skrocie\/","title":{"rendered":"#1117 &#8211; git i github w skr\u00f3cie"},"content":{"rendered":"\n<p>Dzisiaj, kr\u00f3tki poradnik, bardzo podstawowych poj\u0119\u0107 i komend zwi\u0105zanych z git i github. <br><strong>git <\/strong>&#8211; program do zarz\u0105dzania wersjami repozytori\u00f3w kodu<br><strong>github <\/strong>&#8211; strona tw\u00f3rcy <strong>git<\/strong>, gdzie dodatkowo mo\u017cna korzysta\u0107 z funkcji repozytorium na serwerze &#8211; przydatne przy pracy zespo\u0142\u00f3w oraz implementacji kodu do zewn\u0119trznych serwis\u00f3w i dzielenia si\u0119 nim<br>Pomoc opcji git:<br><code>git command -help <br>git help --all<\/code><br>Ustawienie globalne dla gita &#8211; u\u017cytkownik i email adres, je\u015bli nie chcesz globalnie, usu\u0144 s\u0142owo &#8211;global:<br><code>git config --global user.name \"nazwa_uzytkownika\"<br>git config --global user.email \"mail@server.ussr\"<\/code><br>stworz katalog i przejd\u017a do niego (tu b\u0119dziemy \u015bledzi\u0107 zmiany), nast\u0119pnie tworzymy w nim katalog, dla kt\u00f3rego nie \u015bledzimy zmian (bo np. trzymamy w nim obrazki, biblioteki inne pliki &#8230;):<br><code>mkdir zabawa<br>cd zabawa<br>mkdir obrazki<\/code><br>inicjalizacja repozytorium git w katalogu (w katalogu zabawa):<br><code>git init<\/code><br>domy\u015blna nazwa repo to <strong>master<\/strong><br>zmiana nazwy ga\u0142\u0119zi na <strong>main<\/strong><br><code>git branch -m main<\/code><br>W pliku README.md opisujemy po co jest to repozytorium, co zawiera itp.<br>Status repozytorium:<br><code>git status<\/code><br>stw\u00f3rzmy plik plik_01.txt, mo\u017cna wyedytowa\u0107 dowolnym edytorem, ale samo stworzenie:<br><code>touch plik_01.txt<\/code><br>Dodanie pliku do \u015bledzenia okre\u015blane jest jako &#8211; <strong>stage<\/strong><br><em>Staged files are files that are ready to be committed to the repository you are working on.<\/em><br><code>git add plik_01.txt<\/code> <br>lub aby doda\u0107 wszystko:<br><code>git add -A <\/code>lub<code>git add all<\/code><br>wy\u015bwietlenie plik\u00f3w w katalogu (wszystkie informacje) <code>ls -la <\/code><br>Do pliku <code>.gitignore<\/code> wrzucamy informacje o plikach, na kt\u00f3rych nie s\u0105 \u015bledzone zmiany:<br>wy\u015bwietlenie zawarto\u015bci pliku .gitignore:<br><code>cat .gitignore<\/code><br><code>obrazki\/<\/code><br>Teraz, potwierdzamy zmiany:<br><code>git commit -m \"pierwsza wersja\"<\/code><br>aby zobaczy\u0107 jakie by\u0142y komity wcze\u015bniej:<br><code>git log<\/code><br>dodanie ga\u0142\u0119zi<br><code>git branch poprawki<\/code><br>wylistowanie wszystkich ga\u0142\u0119zi, oznaczona * jest aktualnie u\u017cywana<br><code>git branch<\/code><br>(*)main<br>poprawki<br>aby wy\u015bwietli\u0107 wszystkie ga\u0142\u0119zie (lokalne i zdalne):<br><code>git branch -a<\/code><br>tylko zdalne:<br><code>git branch -r<\/code><br>prze\u0142\u0105czenie na ga\u0142\u0105\u017a poprawki:<br><code>git checkout poprawki<\/code><br>Switched to branch 'poprawki&#8217;<br>dodaj\u0119 pliki plik oraz poprawki.txt<br><code>touch plik poprawki.txt<\/code><br>dodaj\u0119 do stage<br><code>git add --all<\/code><br>commituj\u0119 zmiany w branchu<br><code>git commit -m \"poprawki dodane i plik.txt\"<\/code><br>Zasada jest taka, by w g\u0142\u00f3wnym branchu mie\u0107 aktualny i dzia\u0142aj\u0105cy kod.<br>Zmiany nanosimy na branchach innych<br>aby zmergowa\u0107 (po\u0142\u0105czy\u0107) branche:<br>przechodzimy na g\u0142\u00f3wny:<br><code>git checkout main<\/code><br>mergujemy z kt\u00f3rym chcemy<br><code>git merge poprawki<\/code><br>jak nie potrzebujemy ju\u017c ga\u0142\u0119zi, to mo\u017cemy j\u0105 usun\u0105\u0107<br><code>git branch -d poprawki<\/code><br>je\u015bli s\u0105 konflikty, nale\u017cy je poprawi\u0107, a nast\u0119pnie ponowi\u0107 faz\u0119 stage i commit<br>mo\u017cna te\u017c stworzy\u0107 now\u0105 ga\u0142\u0105\u017a i do niej od razu przej\u015b\u0107:<br><code>git checkout -b nowa_galaz<\/code><br>Switched to a new branch 'nowa_galaz&#8217;<br><strong>Github<\/strong><br>teraz pora na zdalne repo &#8211; github!!!<br>Najpierw za\u0142\u00f3\u017c se konto<br>A potem stw\u00f3rz repozytorium<br>uwaga, teraz (2023-04-03) nie dzia\u0142a wrzucanie repo po https, a jedynie go ssh.<br>a by logowa\u0107 si\u0119 po ssh do githuba, musisz wygenerowa\u0107 par\u0119 kluczy (<code>ssh-keygen -t rsa<\/code>): publiczny, do wrzucenia na github<br>i prywatny, kt\u00f3ry powiniene\u015b chroni\u0107. <strong>Kluczy prywatny powinien mie\u0107 uprawnienia tylko do odczytu, inaczej ssh go nie b\u0119dzie u\u017cywa\u0142! O czym uprzejmie nie poinformuje \ud83d\ude09<\/strong> . Klucz prywatny mo\u017cesz przenosi\u0107 mi\u0119dzy kompami, ale pami\u0119taj by go chroni\u0107 przed niepowo\u0142anymi oczami, r\u0105czkami i nnymi osobnikami. Jest Tw\u00f3j i tylko Tw\u00f3j!<br>Jak ju\u017c to masz, to jedziesz z koksem:<br><code>git remote add origin git@github.com:kryt121\/zabawa.git<\/code><br>ewentualnie mo\u017cna za\u0142o\u017cy\u0107 repo, z linii komend:<br><code>echo \" zabawa\" >> README.md<br>git init<br>git add README.md<br>git commit -m \"first commit\"<br>git branch -M main<br>git remote add origin git@github.com:kryt121\/zabawa.git<br>git push -u origin main<\/code><br>aby \u015bci\u0105gn\u0105\u0107 dane z serwera:<br><code>git fetch origin<br>git status<br>git log origin\/main<\/code><br>origin\/ to s\u0105 branche na serwerze<br>wy\u015bwietla r\u00f3\u017cnice:<br><code>git diff origin\/master<\/code><br>mergowanie:<br><code>git merge origin\/main<br>git status<\/code><br>mo\u017cna fetch i merge po\u0142\u0105czy\u0107 i zrobi\u0107 jedn\u0105 komend\u0105:<br><code>git pull origin<\/code><br>teraz zrobimy zmiany lokalnie i wypchniemy na serwer<br>dodali\u015bmy plik koleny_plik.txt, wyedytowali\u015bmy go i:<br>stage<br><code>git add kolejny_plik.txt<\/code><br>commicik<br><code>git commit -a -m \"dodalim plik kolejny_plik.txt\"<br>git status<\/code><br>On branch main<br>Your branch is ahead of 'origin\/main&#8217; by 1 commit.<br>(use &#8222;git push&#8221; to publish your local commits)<br><code>git push origin<\/code><br>wrzucamy nowa ga\u0142\u0105\u017a z lokalnego na serwer:<br>tworzymy galaz i przechodzimy do niej<br><code>git checkout -b nowa_galaz<\/code><br>edytujemy README.md<br>sprawdzamy status<br><code>git status<\/code><br>doda\u0107 do stage<br><code>git add README.md<br>git commit -m \"zmiany w README.md\"<\/code><br>wrzucenie na serwer<br><code>git push origin nowa_galaz<\/code><br>sprawd\u017a, na koncie github, czy si\u0119 pojawi\u0142o, tam te\u017c mo\u017cesz wykona\u0107 pull request i merge<br>merge wymaga zatwierdzenia, ja to zrobi\u0142em przez stron\u0119 www<br>lokalnie teraz \u015bci\u0105gn\u0105\u0107 mo\u017cemy zmiany:<br><code>git pull<\/code><\/p>\n\n\n\n<p>Sklonowanie repozytorium ze zdalnego na lokalny dysk:<\/p>\n\n\n\n<p><code>git clone git@github.com:kryt121\/zabawa.git<\/code><br><\/p>\n\n\n\n<p>p\u00f3ki co tyle do obycia si\u0119 \u2026 cdn.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dzisiaj, kr\u00f3tki poradnik, bardzo podstawowych poj\u0119\u0107 i komend zwi\u0105zanych z git i github. git &#8211; program do zarz\u0105dzania wersjami repozytori\u00f3w kodugithub &#8211; strona tw\u00f3rcy git, gdzie dodatkowo mo\u017cna korzysta\u0107 z funkcji repozytorium na serwerze &#8211; przydatne przy pracy zespo\u0142\u00f3w oraz implementacji kodu do zewn\u0119trznych serwis\u00f3w i dzielenia si\u0119 nimPomoc opcji git:git command -help git help &hellip; <a href=\"https:\/\/verdaduras.com.pl\/index.php\/2023\/04\/04\/1027-git-i-github-w-skrocie\/\" class=\"more-link\">Czytaj dalej<span class=\"screen-reader-text\"> \u201e#1117 &#8211; git i github w skr\u00f3cie\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3789","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/verdaduras.com.pl\/index.php\/wp-json\/wp\/v2\/posts\/3789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/verdaduras.com.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/verdaduras.com.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/verdaduras.com.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/verdaduras.com.pl\/index.php\/wp-json\/wp\/v2\/comments?post=3789"}],"version-history":[{"count":0,"href":"https:\/\/verdaduras.com.pl\/index.php\/wp-json\/wp\/v2\/posts\/3789\/revisions"}],"wp:attachment":[{"href":"https:\/\/verdaduras.com.pl\/index.php\/wp-json\/wp\/v2\/media?parent=3789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/verdaduras.com.pl\/index.php\/wp-json\/wp\/v2\/categories?post=3789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/verdaduras.com.pl\/index.php\/wp-json\/wp\/v2\/tags?post=3789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}