Skip to content

Git Flow ​

🧠 Π‘ΡƒΡ‚ΡŒ ​

БтратСгия Π²Π΅Ρ‚ΠΎΠΊ для чистой истории: Ρ„ΠΈΡ‡ΠΈ β†’ staging β†’ preprod β†’ master.


πŸ’» Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π²Π΅Ρ‚ΠΎΠΊ ​

master          ← ΠΏΡ€ΠΎΠ΄, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· PR
preprod         ← Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠ΅Ρ€ΠΆΠ΅ΠΌ Π² master
staging         ← ΠΎΠ±Ρ‰ΠΈΠΉ тСст, сюда мСрТатся всС Ρ„ΠΈΡ‡ΠΈ
feature/xxx     ← Ρ„ΠΈΡ‡Π°
fix/xxx         ← Π±Π°Π³
task/xxx        ← Π·Π°Π΄Π°Ρ‡Π° Π±Π΅Π· явной Ρ„ΠΈΡ‡ΠΈ ΠΈΠ»ΠΈ Π±Π°Π³Π°

πŸ’» Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ​

bash
# 1. Новая Π·Π°Π΄Π°Ρ‡Π° β€” Π²Π΅Ρ‚Π²ΠΈΡΡŒ ΠΎΡ‚ master (всСгда свСТая Π±Π°Π·Π°)
git checkout master
git pull origin master
git checkout -b feature/add-auth

# 2. Π Π°Π±ΠΎΡ‚Π°Π΅ΡˆΡŒ β€” ΠΊΠΎΠΌΠΌΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½ΡƒΡŽ Ρ„ΠΈΡ‡Ρƒ (см. Π½ΠΈΠΆΠ΅)

# 3. Π“ΠΎΡ‚ΠΎΠ²ΠΎ β€” ΠΏΡƒΡˆ ΠΈ PR Π² staging
git push origin feature/add-auth
# GitHub: PR feature/add-auth β†’ staging

# 4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» Π½Π° staging β†’ PR staging β†’ preprod β†’ master

πŸ’» Когда ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ ​

ΠšΠΎΠΌΠΌΠΈΡ‚ΡŒ послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½ΠΎΠΉ смысловой Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ β€” Π½Π΅ ΠΆΠ΄ΠΈ ΠΏΠΎΠΊΠ° накопится ΠΊΡƒΡ‡Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

βœ… Π”ΠΎΠ±Π°Π²ΠΈΠ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β†’ ΠΊΠΎΠΌΠΌΠΈΡ‚
βœ… ΠŸΠΎΡ‡ΠΈΠ½ΠΈΠ» Π±Π°Π³ β†’ ΠΊΠΎΠΌΠΌΠΈΡ‚
βœ… Обновил Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ β†’ ΠΊΠΎΠΌΠΌΠΈΡ‚
βœ… ΠŸΠΎΠΏΡ€Π°Π²ΠΈΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ β†’ ΠΊΠΎΠΌΠΌΠΈΡ‚

❌ "Π‘Π΄Π΅Π»Π°Π» всё Π·Π° дСнь" β†’ ΠΎΠ΄ΠΈΠ½ ΠΆΠΈΡ€Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚
❌ WIP Π½Π° вСсь дСнь Π±Π΅Π· ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ:

  • Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ сломаСтся β€” ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π° Π½Π΅ вСсь дСнь Ρ€Π°Π±ΠΎΡ‚Ρ‹
  • git bisect Π½Π°ΠΉΠ΄Ρ‘Ρ‚ сломанный ΠΊΠΎΠΌΠΌΠΈΡ‚ Π·Π° сСкунды
  • Π˜ΡΡ‚ΠΎΡ€ΠΈΡ читаСтся ΠΊΠ°ΠΊ ΠΆΡƒΡ€Π½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

πŸ’» Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ​

<type>(<scope>): ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Π·Π°Π΄Π°Ρ‡ΠΈ (Title β€” Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ  ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ)               ← Π΄ΠΎ 72 символов

Motivation:
Одно-Π΄Π²Π° прСдлоТСния β€” Π·Π°Ρ‡Π΅ΠΌ, Π° Π½Π΅ Ρ‡Ρ‚ΠΎ.

Changes:
- Fixed ...
- Added ...
- Updated ...
- Removed ...

πŸ“ Conventional Commits ​

Для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ вСрсионирования ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ changelog рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Conventional Commits. Π€ΠΎΡ€ΠΌΠ°Ρ‚ сообщСния:

<type>(<scope>): <description>

<body>

<footer>

Π“Π΄Π΅ <type> β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ·:

  • feat – новая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
  • fix – исправлСниС Π±Π°Π³Π°
  • docs – измСнСния Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
  • style – ΠΏΡ€Π°Π²ΠΊΠΈ форматирования, ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, отступы (Π±Π΅Π· измСнСния ΠΊΠΎΠ΄Π°)
  • refactor – Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π±Π΅Π· исправлСния Π±Π°Π³ΠΎΠ² ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΡ‡
  • perf – ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
  • test – Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ тСстов
  • chore – слуТСбныС Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ deps, CI ΠΈ Ρ‚.Π΄.)

ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ <scope> ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ auth, ui). ОписаниС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅, Π² ΠΏΠΎΠ²Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΈ, Π΄ΠΎ 72 символов.

Π’Π΅Π»ΠΎ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) – Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ объяснСниС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

Footer ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания связанных Π·Π°Π΄Π°Ρ‡, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ BREAKING CHANGE: ΠΈΠ»ΠΈ Closes #123.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ​

feat(auth): add JWT login flow

Add server‑side verification and store token in HttpOnly cookie.

Closes #42
fix(ui): correct heading color on dark theme

The previous color caused low contrast in dark mode.
docs: update README with contribution guidelines

БлСдуя этому ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, инструмСнты Π²Ρ€ΠΎΠ΄Π΅ standard-version смогут автоматичСски ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ вСрсии ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ changelog. [SCOPE] β€” контСкст измСнСния: [CMS], [Auth], [API], [UI], [Config], [Deps]

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ:

  • Π”ΠΎ 72 символов β€” GitHub ΠΎΠ±Ρ€Π΅Π·Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Π½Π΅Π΅
  • Π“Π»Π°Π³ΠΎΠ» с большой Π±ΡƒΠΊΠ²Ρ‹: Fix, Add, Update, Remove
  • Π‘Π΅Π· Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅

Motivation:

  • Π—Π°Ρ‡Π΅ΠΌ сдСлано β€” ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, Π° Π½Π΅ описаниС ΠΊΠΎΠ΄Π°
  • 1–2 прСдлоТСния

Changes:

  • ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ список: Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ, исправлСно, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΡƒΠ΄Π°Π»Π΅Π½ΠΎ

πŸ’» ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ​

ΠŸΠ»ΠΎΡ…ΠΎ:

fix
changes
wip
update stuff

Π₯ΠΎΡ€ΠΎΡˆΠΎ β€” простой:

[Auth] Fix redirect loop after login

Π₯ΠΎΡ€ΠΎΡˆΠΎ β€” с Ρ‚Π΅Π»ΠΎΠΌ:

[CMS] Fix icon rendering and update plugin version

Motivation:
Resolve incorrect icon display caused by outdated plugin behavior.

Changes:
- Fixed icon rendering issue
- Updated plugin dependency version
- Synced composer configuration

πŸ’» Π’ΠΈΠΏΡ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Changes ​

Π“Π»Π°Π³ΠΎΠ»ΠšΠΎΠ³Π΄Π°
AddedНовый Ρ„Π°ΠΉΠ», функция, ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚
FixedΠ˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π³Π° ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ повСдСния
UpdatedИзмСнСниС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° / зависимости
RemovedΠ£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Ρ„Π°ΠΉΠ»Π°, зависимости
RefactoredΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Π½ Π±Π΅Π· измСнСния повСдСния
SyncedОбновлСниС ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° / Π»ΠΎΠΊΠΊΠΈ ΠΏΠΎΠ΄ измСнСния

πŸ’» Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ настройка git ​

bash
# Имя ΠΈ email (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

# Для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ рСпозитория (Π±Π΅Π· --global) β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚
git config user.name "Work Name"
git config user.email "work@company.com"

# Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для commit-сообщСний
git config --global core.editor "nano"     # ΠΈΠ»ΠΈ: code --wait, nvim, vim

# ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ diff ΠΏΡ€ΠΈ написании ΠΊΠΎΠΌΠΌΠΈΡ‚Π°
git config --global commit.verbose true

Π¨Π°Π±Π»ΠΎΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° β€” структура всСгда ΠΏΠ΅Ρ€Π΅Π΄ Π³Π»Π°Π·Π°ΠΌΠΈ ΠΏΡ€ΠΈ git commit:

bash
cat > ~/.git-commit-template << 'EOF'
# [SCOPE] Title β€” Π΄ΠΎ 72 символов
# |<---- 72 символа ---------------------------------------------------->|

[SCOPE]:

Motivation:

Changes:

EOF

git config --global commit.template ~/.git-commit-template

Π’Π΅ΠΏΠ΅Ρ€ΡŒ git commit (Π±Π΅Π· -m) ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ с шаблоном.


⚠️ ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ ​

  • Никогда Π½Π΅ rebase master, preprod, staging β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ feature-Π²Π΅Ρ‚ΠΊΠΈ
  • staging / preprod Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π²ΠΏΠ΅Ρ€Ρ‘Π΄ master β€” синхронизируй послС ΠΌΠ΅Ρ€ΠΆΠ°
  • Π”Π»ΠΈΠ½Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (>72 символов) GitHub ΠΎΠ±Ρ€Π΅Π·Π°Π΅Ρ‚ Π² спискС ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
  • git commit -m "..." Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для многострочных β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ git commit Π±Π΅Π· Ρ„Π»Π°Π³Π°

Built with VitePress and ❀️