Rozdział 23 · Część V · Sprawdzamy i automatyzujemy
Zmiana samooceny i zaangażowanie dyscypliny
Git towarzyszył SafeSort od pierwszej linii kodu. Teraz przyzwyczaimy się do sprawdzania zmian przed każdym commitem.
SafeSort · Część 5 z 6Testy i CI
Git towarzyszył SafeSort od samego początku: każdy checkpoint w Części IV (strony od 23-08 do 23-22) oznaczał commit i Pull Request, zapisujący kolejną funkcję w historii. Tutaj nie otwieramy Git po raz pierwszy. Formalizujemy dyscyplinę samodzielnej kontroli przed commitem, zanim w następnym rozdziale kod przejdzie pełny cykl Issue → gałąź → Pull Request na GitHub. Między „plik zmieniony na dysku” a „zmiana zapisana w historii” są dwa kroki pośrednie, a zrozumienie różnicy między nimi oszczędza sporo zdumienia w przyszłości.
Terminal
git status
git diff
git add src/safesort/duplicates.py tests/test_duplicates.py
git commit -m "feat: add duplicate-file detection"
git diff pokazuje zawartość zmian
git status wymienia pliki, które zostały zmienione, ale nie pokazuje treści zmian. git diff pokazuje linia po linii, co dokładnie zostało dodane i co usunięte. Czytaj go przed każdym commitem, aby przypadkowo nie zatwierdzić czegoś niepotrzebnego: debugowanie print(), zapomniany plik z danymi osobowymi, tymczasowym kodem.commitów booleańskich
Pojedynczy commit powinien opisywać jedną pełną, znaczącą zmianę, a nie „koniec Dzień pracy”
| Dobrze | Zły |
|---|---|
| feat: add directory scanner | update |
| feat: add dry-run sort planning | fix |
| test: cover undo conflicts | stuff |
| docs: document safesort.toml options | final-final |
Kiedy nie używać git add.
git add . dodaje wszystkie zmiany w bieżącym katalogu do indeksu jednocześnie. To przydatne, gdy commit naprawdę musi zawierać wszystko, ale łatwo przypadkowo wciągnąć coś nieistotnego do commitu. git add путь/к/файлу dodaje tylko te pliki, których potrzebujesz, i nadaje commitom więcej sensu.Praktyka: czytamy git diff i grupujemy zmiany
Potrzebny Git- repozytorium. Wykonaj praktykę lokalnie w VS Code, PyCharm lub w terminalu
Praktyka kursuje lokalnie