uzupełnienie repo o różne pomoce
This commit is contained in:
@@ -0,0 +1,417 @@
|
||||
# Instrukcja pracy z Git i Gitea
|
||||
|
||||
Ten dokument zawiera kompletną instrukcję pracy z systemem kontroli wersji Git oraz platformą Gitea dla studentów seminarium. Instrukcja jest zorganizowana od podstaw do bardziej zaawansowanych operacji.
|
||||
|
||||
---
|
||||
|
||||
## Spis treści
|
||||
|
||||
1. [Co to jest Git?](#1-co-to-jest-git)
|
||||
2. [Instalacja Git](#2-instalacja-git)
|
||||
3. [Pierwsze logowanie do Gitea](#3-pierwsze-logowanie-do-gitea)
|
||||
4. [Konfiguracja Git na komputerze](#4-konfiguracja-git-na-komputerze)
|
||||
5. [Pierwsze pobieranie repozytorium](#5-pierwsze-pobieranie-repozytorium)
|
||||
6. [Codzienna praca z Git](#6-codzienna-praca-z-git)
|
||||
7. [Sprawdzanie statusu pracy](#7-sprawdzanie-statusu-pracy)
|
||||
8. [Rozwiązywanie problemów](#8-rozwiązywanie-problemów)
|
||||
9. [Zaawansowane operacje](#9-zaawansowane-operacje)
|
||||
10. [Dobre praktyki](#10-dobre-praktyki)
|
||||
|
||||
---
|
||||
|
||||
## 1. Co to jest Git?
|
||||
|
||||
Git to narzędzie do **kontroli wersji** plików, które umożliwia:
|
||||
|
||||
- Śledzenie historii zmian w plikach
|
||||
- Współpracę wielu osób nad tym samym projektem
|
||||
- Przywracanie poprzednich wersji plików
|
||||
- Równoległą pracę nad różnymi wersjami projektu (gałęzie)
|
||||
|
||||
**Gitea** to platforma webowa (podobna do GitHub), która pozwala na wygodne przeglądanie repozytoriów przez przeglądarkę internetową.
|
||||
|
||||
---
|
||||
|
||||
## 2. Instalacja Git
|
||||
|
||||
Przed rozpoczęciem pracy musisz zainstalować Git na swoim komputerze.
|
||||
|
||||
### Windows
|
||||
|
||||
1. Pobierz instalator ze strony: **https://git-scm.com/download/windows**
|
||||
2. Uruchom pobrany plik i postępuj zgodnie z instrukcjami instalatora
|
||||
3. Podczas instalacji pozostaw domyślne ustawienia (klikaj „Next")
|
||||
4. Po instalacji otwórz **Git Bash** lub **PowerShell** i sprawdź instalację:
|
||||
|
||||
```bash
|
||||
git --version
|
||||
```
|
||||
|
||||
Alternatywnie możesz zainstalować Git przez winget (w PowerShell):
|
||||
|
||||
```bash
|
||||
winget install --id Git.Git -e --source winget
|
||||
```
|
||||
|
||||
### macOS
|
||||
|
||||
**Opcja 1 – Xcode Command Line Tools** (najprostsza):
|
||||
|
||||
```bash
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
**Opcja 2 – Homebrew** (zalecana dla aktualnej wersji):
|
||||
|
||||
```bash
|
||||
brew install git
|
||||
```
|
||||
|
||||
Po instalacji sprawdź wersję:
|
||||
|
||||
```bash
|
||||
git --version
|
||||
```
|
||||
|
||||
### Linux (Ubuntu/Debian)
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install git
|
||||
```
|
||||
|
||||
### Linux (Fedora)
|
||||
|
||||
```bash
|
||||
sudo dnf install git
|
||||
```
|
||||
|
||||
Po instalacji sprawdź wersję:
|
||||
|
||||
```bash
|
||||
git --version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Pierwsze logowanie do Gitea
|
||||
|
||||
1. Otwórz przeglądarkę internetową i przejdź na adres:
|
||||
**http://150.254.88.90:3000**
|
||||
|
||||
2. Zaloguj się używając:
|
||||
- **Login**: Twój adres uczelniany (np. `pawkle1@st.amu.edu.pl`)
|
||||
- **Hasło początkowe**: `HakerzyZnają` (zmień je przy pierwszym logowaniu!)
|
||||
|
||||
3. Po zalogowaniu przejdź do **Ustawień profilu** i uzupełnij:
|
||||
- Imię i nazwisko
|
||||
- Avatar (opcjonalnie)
|
||||
|
||||
1. Kliknij **Odkrywaj**, aby zobaczyć dostępne repozytoria.
|
||||
1. Otwórz repozytorium.
|
||||
2. Możesz edytować i przeglądać pliki, README, literaturę lub materiały przez stronę www.
|
||||
|
||||
---
|
||||
|
||||
## 4. Konfiguracja Git na komputerze
|
||||
|
||||
Po instalacji Git musisz skonfigurować swoje dane. Otwórz terminal (Git Bash na Windows) i wykonaj:
|
||||
|
||||
```bash
|
||||
git config --global user.name "Twoje Imię i Nazwisko" # zapisane w Gitea
|
||||
git config --global user.email "twoj.email@st.amu.edu.pl"
|
||||
```
|
||||
|
||||
Te dane będą widoczne przy każdej wprowadzonej przez Ciebie zmianie. Jeśli chcesz używać inne repozytoria, np. na GitHub od Microsoftu pomiń `--global` aby ustawienia były lokalne, tylko do danego repozytorium.
|
||||
|
||||
Sprawdź konfigurację:
|
||||
|
||||
```bash
|
||||
git config --list
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Pierwsze pobieranie repozytorium
|
||||
|
||||
### Przez terminal
|
||||
|
||||
1. Otwórz terminal (na windowsie PowerShell lub CMD) i przejdź do katalogu, w którym chcesz mieć repozytorium:
|
||||
|
||||
```bash
|
||||
cd /ścieżka/do/katalogu
|
||||
```
|
||||
|
||||
2. Sklonuj repozytorium:
|
||||
|
||||
```bash
|
||||
git clone http://150.254.88.90:3000/Seminaria-KLEKA/Seminarium-Psychologia-2027.git
|
||||
# jeśli pojawi sie info o braku uwierzytelnienia - zaloguj sie do repozytorium w przeglądarce
|
||||
# jesli nie masz programu git ściągnij go ze strony https://git-scm.com/install/
|
||||
```
|
||||
|
||||
3. Jeśli pojawi się prośba o uwierzytelnienie – podaj login i hasło z Gitea.
|
||||
|
||||
4. Wejdź do sklonowanego katalogu:
|
||||
|
||||
```bash
|
||||
cd Seminarium-Psychologia-2027
|
||||
```
|
||||
|
||||
### Przez aplikację graficzną
|
||||
|
||||
Możesz też używać aplikacji graficznych takich jak:
|
||||
- **GitHub Desktop** (https://desktop.github.com)
|
||||
- **Sourcetree** (https://www.sourcetreeapp.com)
|
||||
|
||||
---
|
||||
|
||||
## 6. Codzienna praca z Git
|
||||
|
||||
### Model 1: Praca na wspólnej gałęzi `main`
|
||||
|
||||
Ten model jest odpowiedni, gdy wszyscy pracują nad wspólnymi plikami. Tak np. jest w naszym seminarium na początku. W miarę rozrostu projektów możemy przenosić się na indywidualne gałęzie lub wręcze prywatne repozytoria.
|
||||
|
||||
#### Krok 1: Pobierz najnowsze zmiany (ZAWSZE na początku pracy!)
|
||||
|
||||
```bash
|
||||
git pull
|
||||
```
|
||||
|
||||
#### Krok 2: Wprowadź zmiany
|
||||
|
||||
Edytuj lub dodaj pliki w katalogu repozytorium (np. notatki w `.md`, skrypty R, dane).
|
||||
|
||||
#### Krok 3: Dodaj pliki do zapisu
|
||||
|
||||
Dodaj konkretny plik:
|
||||
|
||||
```bash
|
||||
git add NAZWA-PLIKU.md
|
||||
```
|
||||
|
||||
Lub dodaj wszystkie zmienione pliki:
|
||||
|
||||
```bash
|
||||
git add . # dodaje wszystkie pliki na listę do wysyłki
|
||||
```
|
||||
|
||||
#### Krok 4: Zatwierdź zmiany z opisem
|
||||
|
||||
```bash
|
||||
git commit -m "Opis zmiany, np. Dodano pomysł na badanie X"
|
||||
```
|
||||
|
||||
#### Krok 5: Wyślij zmiany na serwer
|
||||
|
||||
```bash
|
||||
git push origin main # wysyła pliki do repozytorium na główną gałąź
|
||||
```
|
||||
|
||||
#### Krok 6: Sprawdź na stronie Gitea
|
||||
|
||||
Zaloguj się do Gitea i sprawdź w zakładce **Code**, czy Twoje pliki się pojawiły.
|
||||
|
||||
---
|
||||
|
||||
### Model 2: Praca na własnej gałęzi
|
||||
|
||||
Ten model jest odpowiedni, gdy każdy pracuje nad własnymi danymi/plikami niezależnie od innych.
|
||||
|
||||
#### Tworzenie własnej gałęzi (jednorazowo)
|
||||
|
||||
```bash
|
||||
git checkout main
|
||||
git pull
|
||||
git checkout -b nazwa-twojej-galezi
|
||||
```
|
||||
|
||||
Na przykład: `dane-katarzyna`, `rozdzial-3`, `oliwia-wniosek`
|
||||
|
||||
#### Codzienna praca na swojej gałęzi
|
||||
|
||||
```bash
|
||||
# Upewnij się, że jesteś na swojej gałęzi
|
||||
git checkout nazwa-twojej-galezi
|
||||
|
||||
# Wprowadź zmiany w plikach...
|
||||
|
||||
# Dodaj i zatwierdź zmiany
|
||||
git add .
|
||||
git commit -m "Aktualizacja danych"
|
||||
|
||||
# Wyślij na serwer
|
||||
git push origin nazwa-twojej-galezi
|
||||
```
|
||||
|
||||
#### Przełączanie między gałęziami
|
||||
|
||||
```bash
|
||||
git checkout main # przejście na gałąź główną
|
||||
git checkout dane-katarzyna # przejście na gałąź Katarzyny
|
||||
```
|
||||
### Lista wszystkich gałęzi
|
||||
|
||||
```bash
|
||||
git branch -a
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. Sprawdzanie statusu pracy
|
||||
|
||||
### Sprawdź status zmian
|
||||
|
||||
Pokazuje zmodyfikowane pliki oraz pliki oczekujące na zatwierdzenie:
|
||||
|
||||
```bash
|
||||
git status
|
||||
```
|
||||
|
||||
### Historia commitów
|
||||
|
||||
Wyświetla listę ostatnich zmian:
|
||||
|
||||
```bash
|
||||
git log --oneline
|
||||
```
|
||||
|
||||
### Sprawdź aktualną gałąź
|
||||
|
||||
```bash
|
||||
git branch
|
||||
```
|
||||
|
||||
Gwiazdka (\*) oznacza gałąź, na której aktualnie pracujesz.
|
||||
|
||||
### Sprawdź zdalne repozytorium
|
||||
|
||||
```bash
|
||||
git remote -v
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. Rozwiązywanie problemów
|
||||
|
||||
### Merge conflict (konflikt scalania)
|
||||
|
||||
Pojawia się, gdy dwie osoby edytowały ten sam fragment pliku.
|
||||
|
||||
**Rozwiązanie:**
|
||||
1. Git oznaczy konfliktowe miejsca w pliku znacznikami `<<<<<<<`, `=======`, `>>>>>>>`
|
||||
2. Otwórz plik i ręcznie wybierz właściwą wersję
|
||||
3. Usuń znaczniki konfliktu
|
||||
4. Zapisz plik i wykonaj:
|
||||
|
||||
```bash
|
||||
git add nazwa-pliku
|
||||
git commit -m "Rozwiązano konflikt"
|
||||
git push
|
||||
```
|
||||
|
||||
### Brak zmian po `git push`
|
||||
|
||||
Sprawdź:
|
||||
- Czy jesteś w odpowiednim katalogu repozytorium?
|
||||
- Czy jesteś na właściwej gałęzi? (`git branch`)
|
||||
- Czy wykonałeś `git add` i `git commit` przed `git push`?
|
||||
|
||||
### Błąd uwierzytelnienia
|
||||
|
||||
Zaloguj się najpierw do Gitea przez przeglądarkę, a następnie spróbuj ponownie.
|
||||
|
||||
---
|
||||
|
||||
## 9. Zaawansowane operacje
|
||||
|
||||
### Ignorowanie plików (`.gitignore`)
|
||||
|
||||
Aby Git ignorował określone pliki, utwórz plik `.gitignore` w głównym katalogu repozytorium:
|
||||
|
||||
```
|
||||
# Pliki tymczasowe R
|
||||
.Rhistory
|
||||
.RData
|
||||
.Rproj.user/
|
||||
|
||||
# Katalog na pliki lokalne
|
||||
_lokalnie/
|
||||
```
|
||||
|
||||
Od tej pory GIt nie będzie zwracał uwagi co się dzieje w katalogu `_lokalnie`
|
||||
### Usunięcie pliku/katalogu z repozytorium (zachowując lokalnie)
|
||||
|
||||
```bash
|
||||
git rm -r --cached nazwa-katalogu
|
||||
git commit -m "Usunięto katalog z repozytorium"
|
||||
git push
|
||||
```
|
||||
|
||||
### Usunięcie katalogu z gałęzi main
|
||||
|
||||
Jeśli przez pomyłkę dodano prywatny katalog do `main`:
|
||||
|
||||
```bash
|
||||
git checkout main
|
||||
git rm -r NazwaKatalogu/
|
||||
git commit -m "Usunięto prywatny katalog"
|
||||
git push
|
||||
```
|
||||
|
||||
### Zmiana adresu zdalnego repozytorium
|
||||
|
||||
```bash
|
||||
git remote set-url origin http://150.254.88.90:3000/Seminaria-KLEKA/NazwaRepo.git
|
||||
```
|
||||
|
||||
### Nadpisanie zdalnej wersji lokalną (OSTROŻNIE!)
|
||||
|
||||
**Uwaga:** Ta operacja nadpisuje historię na serwerze!
|
||||
|
||||
```bash
|
||||
git push origin main --force
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 11. Dobre praktyki
|
||||
|
||||
1. **Zawsze wykonuj `git pull` przed rozpoczęciem pracy** – unikniesz konfliktów.
|
||||
|
||||
2. **Używaj opisowych wiadomości w commitach** – np. „Dodano analizę rzetelności skali X" zamiast „update".
|
||||
|
||||
3. **Nie wysyłaj plików tymczasowych** – dodaj do `.gitignore`:
|
||||
- `.Rhistory`
|
||||
- `.RData`
|
||||
- `.Rproj.user/`
|
||||
|
||||
4. **Nie wysyłaj dużych plików binarnych** – Git nie jest optymalny dla dużych plików (np. baz danych, filmów).
|
||||
|
||||
5. **Regularnie zapisuj postępy** – małe, częste commity są lepsze niż jeden duży.
|
||||
|
||||
6. **Pracując na własnej gałęzi** – nie dodawaj katalogów innych.
|
||||
|
||||
7. **W README zapisuj postępy i refleksje** – to ułatwia orientację w projekcie.
|
||||
|
||||
---
|
||||
|
||||
## Szybka ściągawka
|
||||
|
||||
| Polecenie | Opis |
|
||||
|-----------|------|
|
||||
| `git clone URL` | Pobierz repozytorium |
|
||||
| `git pull` | Pobierz najnowsze zmiany |
|
||||
| `git status` | Sprawdź status zmian |
|
||||
| `git add .` | Dodaj wszystkie pliki |
|
||||
| `git commit -m "opis"` | Zatwierdź zmiany |
|
||||
| `git push origin main` | Wyślij na serwer |
|
||||
| `git branch` | Pokaż gałęzie |
|
||||
| `git checkout nazwa` | Przełącz gałąź |
|
||||
| `git checkout -b nazwa` | Utwórz nową gałąź |
|
||||
| `git log --oneline` | Historia commitów |
|
||||
|
||||
---
|
||||
|
||||
**Wskazówka:**
|
||||
Jeśli zapomnisz hasła lub napotkasz problem techniczny, skontaktuj się z prowadzącym seminarium.
|
||||
Binary file not shown.
Reference in New Issue
Block a user