1
1
Files
Szablon-pracy-dyplomowej/O Git/Instrukcja obsługi repozytorium Git.md

418 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.