Konwencja nazw gałęzi
feature/blog-markdown-preview
fix/login-redirect-loop
chore/update-symfony-7.2
release/2.1.0
hotfix/critical-xss-vulnerability
Zasady:
- małe litery, słowa oddzielone
- - prefix opisuje typ pracy
- krótkie, ale opisowe
Conventional Commits
Format: typ(zakres): opis
git commit -m "feat(blog): add markdown live preview"
git commit -m "fix(auth): redirect loop on logout fixed"
git commit -m "chore(deps): bump symfony/framework-bundle to 7.2"
git commit -m "docs(readme): update installation steps"
git commit -m "refactor(api): extract ArticleSerializer service"
git commit -m "test(blog): add unit tests for MarkdownExtension"
Typy: feat, fix, chore, docs, refactor, test, style, perf
Typowy workflow
# 1. Pobierz aktualizacje z main
git fetch origin
git checkout main
git pull origin main
# 2. Utwórz nową gałąź
git checkout -b feature/blog-search
# 3. Pracuj... commit po commicie
git add src/Controller/BlogController.php
git commit -m "feat(blog): add full-text search endpoint"
# 4. Przed merge — rebase na main
git fetch origin
git rebase origin/main
# 5. Push i otwórz Pull Request
git push origin feature/blog-search
Interaktywny rebase — porządkuj historię
Przed merge warto posprzątać commity:
git rebase -i HEAD~5
Możliwe akcje:
pick— zostaw commitsquash/s— połącz z poprzednimreword/r— zmień opis commitadrop/d— usuń commit
Rozwiązywanie konfliktów
git fetch origin
git merge origin/main
# Git wskaże pliki z konfliktami:
# CONFLICT (content): Merge conflict in src/Controller/BlogController.php
# Edytuj plik, usuń markery <<< === >>>
# Następnie:
git add src/Controller/BlogController.php
git commit
.gitignore dla Symfony
/vendor/
/var/
/.env.local
/.env.*.local
/public/bundles/
/node_modules/
/.idea/
/.vscode/
*.swp
Przydatne aliasy
git config --global alias.lg "log --oneline --graph --all --decorate"
git config --global alias.st "status -sb"
git config --global alias.co "checkout"
git config --global alias.br "branch -vva"
Efekt git lg:
* a1b2c3d (HEAD → feature/blog) feat(blog): add search
* e4f5g6h (origin/main) fix(auth): token expiry
* i7j8k9l Merge pull request #42
|\
| * l0m1n2o feat(api): add pagination
* | o3p4q5r chore: update dependencies
|/