πΏgit: ΠΠ°ΠΊ Π½Π°Π·ΡΠ²Π°ΡΡ Π²Π΅ΡΠΊΠΈ - ΡΠΎΠ²Π΅ΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
ΠΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ Π²Π΅ΡΠΊΠΈ Π² git?
ΠΡΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π΅ΡΠΎΠΊ Π² git ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, ΡΡΠΎΠ±Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΎ ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π²Π΅ΡΠΎΠΊ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² Π²Π΅ΡΠΊΡ.
- ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ ΡΡΡΡΠΊΠΈΡ Π±ΡΠΊΠ² Π² ΠΈΠΌΠ΅Π½Π°Ρ Π²Π΅ΡΠΎΠΊ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π΅ΡΠΈΡΡ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ² Π² ΠΈΠΌΠ΅Π½Π°Ρ Π²Π΅ΡΠΎΠΊ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π΅ΡΠΎΠΊ, Π΅ΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ
git branch Π½ΠΎΠ²Π°Ρ-ΡΡΠ½ΠΊΡΠΈΡ
# ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
git checkout Π½ΠΎΠ²Π°Ρ-ΡΡΠ½ΠΊΡΠΈΡ
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ "Π½ΠΎΠ²Π°Ρ-ΡΡΠ½ΠΊΡΠΈΡ" Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°Π·ΡΠ²Π°ΡΡ Π²Π΅ΡΠΊΠΈ Π² git
Git - ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ Ρ Git - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΉ. ΠΠ΅ΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΡ ΡΠΈΡΠ΅ΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ Π²Π΅ΡΠΊΠΈ Π² Git.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π²Π΅ΡΠΎΠΊ
ΠΠ»Ρ Π²ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π² Git, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΠΌΠ΅Π½Π° Π²Π΅ΡΠΎΠΊ, Π²Π°ΠΆΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ. ΠΠ΅ΡΠΊΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ Π΅Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ.
git branch feature/add-login-functionality
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ Π²Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎ ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ "feature/add-login-functionality". ΠΡΠ΅ΡΠΈΠΊΡ "feature" Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ Π½ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π° "add-login-functionality" ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π΅ΡΠΈΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ²
ΠΡΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π΅ΡΠΎΠΊ Π² Git, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π΅ΡΠΈΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ Git Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π΅Π»Ρ Π² ΠΈΠΌΠ΅Π½Π°Ρ . ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠΈΡΠΎΠ² Π΄Π΅Π»Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π° Π²Π΅ΡΠΎΠΊ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
git branch fix-bug-1234
3. ΠΡΠ°ΡΠΊΠΎΡΡΡ ΠΈ ΡΡΠ½ΠΎΡΡΡ
Π‘ΡΡΠ΅ΠΌΠΈΡΠ΅ΡΡ ΠΊ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΈ ΡΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠΈ Π²Π΅ΡΠΎΠΊ. ΠΡΠΎΠ΅ΠΊΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π²Π΅ΡΠΎΠΊ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΈ ΠΏΠΎΠ½ΡΡΡ.
4. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΡ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π²Π΅ΡΠΎΠΊ
Π₯ΠΎΡΠΎΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ² Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π²Π΅ΡΠΎΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ "feature/" Π΄Π»Ρ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ, "bugfix/" Π΄Π»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ "hotfix/" Π΄Π»Ρ ΡΡΠΎΡΠ½ΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ.
git branch feature/add-login-functionality
git branch bugfix/fix-bug-1234
git branch hotfix/fix-security-issue
5. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²Π΅ΡΠΎΠΊ
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π² ΠΈΠΌΠ΅Π½Π°Ρ Π²Π΅ΡΠΎΠΊ. ΠΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ.
git branch feature/001-add-login-functionality
git branch feature/002-add-logout-functionality
git branch bugfix/001-fix-bug-1234
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π² Git - ΡΡΠΎ ΠΌΠΎΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ Π² Git - Π²Π°ΠΆΠ½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²Π΅ΡΠΊΠΈ ΠΈ ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΉ Π²Π΅ΡΠΎΠΊ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ, ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² Π² ΠΈΠΌΠ΅Π½Π°Ρ , ΡΡΡΠ΅ΠΌΠΈΡΡΡΡ ΠΊ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΈ ΡΡΠ½ΠΎΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡΡ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π²Π΅ΡΠΎΠΊ ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ.