meta data for this page
  •  

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
git [2020/08/03 14:04] – utworzono Paweł Grygorczukgit [2023/09/13 14:17] (aktualna) – [Git i Github] Paweł Grygorczuk
Linia 1: Linia 1:
 ====== Git i Github ====== ====== Git i Github ======
  
-Podstawy pracy z systemem kontroli wersji Git.+Podstawy pracy z systemem kontroli wersji Git. Pełną dokumentację znajdziesz na stronie https://git-scm.com/docs 
 +Zobacz także: [[GitLab]]. 
 + 
 +===== Podstawy ===== 
 + 
 +Instalujemy Gita. 
 + 
 +<code bash> 
 +apt-get update 
 +apt-get install git 
 +</code> 
 + 
 +Tworzymy katalog dla projektu i w tym katalogu wołamy: 
 + 
 +<code bash> 
 +git init 
 +</code> 
 + 
 +Oto najważniejsze polecenia, które umożliwiają rozpoczęcie pracy z Gitem: 
 +  * ''git pull'' - pobranie stanu projektu z Githuba. To samo co ''fetch'' i ''merge'' 
 +  * ''git add .'' - dodaje wszystkie pliki 
 +  * ''git commit -m "opis_zmiany"'' 
 +  * ''git checkout <branch>'' - zmiana brancha, na który "patrzy" Git 
 +  * ''git remote -v'' - pokazuje remote'y (zdalne repozytoria) 
 +  * ''git branch -r'' 
 + 
 +===== Własny serwer repozytoriów ===== 
 + 
 +Tworzymy użytkownika ''git''
 + 
 +<code bash> 
 +useradd --create-home --shell /bin/bash git 
 +su - git 
 +cd .ssh 
 +</code> 
 + 
 +Jeżeli chcemy uniemożliwić użytkownikowi korzystanie z konsoli, możemy później zmienić powłokę na ''/user/sbin/nologin''
 + 
 +Każdy z użytkowników musi wygenerować parę kluczy. W Windows klucz prywatny powinien się znaleźć w ''C:\Users\<username>\.ssh\id_rsa''
 + 
 +Jeżeli chcesz ustawić hasło, użyj opcji -o. Dzięki temu klucz prywatny będzie bardziej odporny na ataki [[brute-force]]. 
 + 
 +<code bash> 
 +ssh-keygen -o 
 +</code> 
 + 
 +Użytkownik musi przesłać klucz publiczny do administratora serwera. Klucz publiczny należy umieścić na serwerze w ''/home/git/.ssh/authorized_keys''
 + 
 +Tworzymy "gołe" (bare) repozytorium. 
 + 
 +<code bash> 
 +cd /srv/git 
 +mkdir project.git 
 +cd project.git 
 +git init --bare 
 +</code> 
 + 
 +Na komputerze użytkownika można zrobić ''clone'' w następujący sposób: 
 + 
 +<code bash> 
 +git clone git@gitserver:/srv/git/project.git 
 +</code> 
 + 
 +Notatki sporządzono na podstawie: https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server. 
 + 
 +===== Dodanie remote służącego tylko do fetchowania ===== 
 + 
 +<code bash> 
 +git remote add upstream git@github.com:usi-systems/easytrace.git 
 +git remote set-url --push upstream DISABLE 
 +</code> 
 + 
 +Przykładowy scenariusz użycia. 
 + 
 +<code bash> 
 +git checkout mybranch 
 +git add . 
 +git commit -m "My new feature" 
 +</code> 
 + 
 +Przesuwamy nasz commit na wierzch stosu commitow z upstream. 
 + 
 +<code bash> 
 +git rebase upstream/public/6.8.0 
 +</code> 
 + 
 +Ostatecznie wysyłamy na swój serwer. 
 + 
 +<code bash> 
 +git push origin 
 +</code> 
 + 
 +===== Prywatny fork publicznego repozytorium ===== 
 + 
 +https://gist.github.com/0xjac/85097472043b697ab57ba1b1c7530274 
 +