9 ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ Git Π΄Π»Ρ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅Π·ΠΈΡΡ:
- ΠΠ»Ρ 99% Π·Π°Π΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ 9 ΠΊΠΎΠΌΠ°Π½Π΄ Git.
- Git β ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠΈΠΊΠ»:
git addβgit commitβgit push. - ΠΠ΅ΡΠΊΠΈ (
branch) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π½Π°Π΄ ΡΠ°Π·Π½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ. - ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Π² ΠΎΠ±ΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ ΡΠ΅ΡΠ΅Π·
mergeΠΈΠ»ΠΈrebase.
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ
git clone [ΡΡΡΠ»ΠΊΠ°] β ΠΏΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° Π½ΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅.
ΠΠ»ΠΎΠ½ΠΈΡΡΠ΅Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ GitHub) Π½Π° Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. Π‘ΠΊΠ°ΡΠΈΠ²Π°Π΅Ρ Π²Π΅ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Git.
ΠΡΠΈΠΌΠ΅Ρ:
git clone https://github.com/username/project.git
Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠΊΠ»)
Git β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅Ρ Π·Π° Π²ΡΠ΅ΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½ΠΈΡ (ΠΊΠΎΠ΄/ΡΠ΅ΠΊΡΡ). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΡΠ»ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ.
git commit -m "ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅" β ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
Π‘ΠΎΠ·Π΄Π°Π΅Ρ "ΡΠ½ΠΈΠΌΠΎΠΊ" ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π³ΠΎΡΠΎΠ²ΡΡ
ΠΊ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ Ρ
Π΅Ρ (ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ). Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (-m) ΠΏΠΎΡΡΠ½ΡΠ΅Ρ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ.
git add [ΡΠ°ΠΉΠ»/ΠΏΠ°ΠΏΠΊΠ°] β ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ.
ΠΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡ (stage) β ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ. ΠΠΎΠΌΠΌΠΈΡ ΡΠΎΡ
ΡΠ°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½: Π‘Π½Π°ΡΠ°Π»Π°
git add .(Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅), Π·Π°ΡΠ΅ΠΌgit commit -m "ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅". ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π΅ΡΡΡΠΊΠΈ ΡΠ°Π· Π² Π΄Π΅Π½Ρ.
Π Π°Π±ΠΎΡΠ° Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ (parallel work)
ΠΠ΅ΡΠΊΠ° (branch) β ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π½Π°ΡΠΈΠ½Π°ΡΡΠ°ΡΡΡ ΠΎΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ, Π½Π΅ ΠΌΠ΅ΡΠ°Ρ Π΄ΡΡΠ³ΠΈΠΌ.
git branch [ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ] β ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.git checkout [ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ] β ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²Π΅ΡΠΊΡ.
ΠΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΡΡ Π²Π΅ΡΠΊΡ.
ΠΡΠ°ΠΊΡΠΈΠΊΠ°: ΠΠ°ΠΆΠ΄Π°Ρ Π½ΠΎΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ° ΠΈΠ»ΠΈ ΡΠΈΡΠ° ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΠ±ΡΠ°Ρ Π²Π΅ΡΠΊΠ° ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ
mainΠΈΠ»ΠΈmaster.
Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (remote)
git push origin [ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ] β ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, GitHub).origin β ΡΡΠΎ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ (alias) Π΄Π»Ρ URL Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
git pull origin [ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ] β Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ (ΡΡΡΠ³ΠΈΠ²Π°Π΅Ρ) ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
Π ΡΡΠΈΠ½Π°: ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΡΡΡΠΎ ΡΠ°ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ
git pull origin main, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²Π΅ΠΆΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ
git rebase [Π²Π΅ΡΠΊΠ°] β ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, main).
ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ. ΠΠ· Π²Π΅ΡΠΊΠΈ Ρ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΡΠΏΠ°ΡΠ΅Π½ΠΈΠ΅)
git revert [Ρ
Π΅Ρ_ΠΊΠΎΠΌΠΌΠΈΡΠ°] β ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅.
Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ (ΠΈΠ½Π²Π΅ΡΡΠΈΠ΅ΠΉ) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡΠ°ΡΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅. ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅: ΠΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ "ΠΎΡΠΊΠ°ΡΠΈΡΡ" ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Ρ Π±Π°Π³ΠΎΠΌ, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΡΠ²ΠΎΠ΄Ρ
- ΠΠ°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠΊΠ»
addβcommitβpushβ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½Ρ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ. - ΠΠ΅ΡΠΊΠΈ β ΠΊΠ»ΡΡ ΠΊ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±Π΅Π· ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ².
pull/pushβ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΉ ΠΊΠΎΠ΄Π°.rebase/mergeβ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ΄.revertβ Π²Π°ΡΠ° "ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡΠΌΠ΅Π½Ρ" Π½Π° ΡΠ»ΡΡΠ°ΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ, Git Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π°Π±ΡΠ²Π°Π΅Ρ.