meta data for this page
  •  

Różnice

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

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
git [2020/08/05 07:45] Paweł Grygorczukgit [2023/09/13 12:17] (aktualna) – [Git i Github] Paweł Grygorczuk
Linia 2: Linia 2:
  
 Podstawy pracy z systemem kontroli wersji Git. Pełną dokumentację znajdziesz na stronie https://git-scm.com/docs 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. Instalujemy Gita.
Linia 17: Linia 20:
  
 Oto najważniejsze polecenia, które umożliwiają rozpoczęcie pracy z Gitem: Oto najważniejsze polecenia, które umożliwiają rozpoczęcie pracy z Gitem:
-  * ''git pull'' - pobranie stanu projektu z Githuba +  * ''git pull'' - pobranie stanu projektu z Githuba. To samo co ''fetch'' i ''merge'' 
-  * ''git commit''+  * ''git add .'' - dodaje wszystkie pliki 
 +  * ''git commit -m "opis_zmiany"''
   * ''git checkout <branch>'' - zmiana brancha, na który "patrzy" Git   * ''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
 +
 +