ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ 3 Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
- ΠΡΠΌΠ΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ N ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
- Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ git-ΠΊΠΎΠΌΠΌΠΈΡΠ°
- ΠΡΠΌΠ΅Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ Π±ΡΠ» ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½
ΠΠ΅ΡΠ²ΡΠ΅ 2 Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ Π±Π΅Π· ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΎ-ΡΠΎ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π·Π° ΡΡΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ:
mkdir -p /tmp/git-delete \
&& cd "${_}" \
&& rm -rf .git A B C \
&& git init \
&& touch A && git add A && git commit -m "Commit A" \
&& touch B && git add B && git commit -m "Commit B" \
&& touch C && git add C && git commit -m "Commit C"
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ N ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΌΠ΅Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
git reset HEAD~1
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ –hard, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ°ΠΉΠ»Ρ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠΎΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ, ΡΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡ Π²ΡΠ΅ ΡΠ»Π΅Π΄Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ~1 Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ~2 ΠΎΡΠΌΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 2 ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ ΠΊΠ°ΠΊ 2-Ρ ΠΏΠΎ ΡΡΠ΅ΡΡ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ HEAD~N Π½Π° GIT_SHA^ (^ Π²Π°ΠΆΠ½ΠΎ).
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ SHA Ρ ΠΏΠΎΠΌΠΎΡΡΡ git log.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π½ΠΎ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ rm -rf .git Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ git update-ref -d HEAD.
ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ git reset –hard, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ Π΄ΠΈΡΠΊΠ°.
Π£Π΄Π°Π»ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ 3 Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π΄Π½ΡΡ (2-Ρ) ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ rebase ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ.
Π― ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π» ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ rebase Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅.
git rebase –ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΠΠΠΠΠΠΠΠ~2
- ΠΡΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ° Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ βpickβ Π½Π° βdropβ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°
- ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π²ΡΠ±Π΅ΡΠ΅ΡΠ΅ βdropβ.
ΠΠ°ΠΊ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ HEAD~N Π½Π° GIT_SHA^.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΌΡΠΉ ΡΡΠ°ΡΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ –root Π²ΠΌΠ΅ΡΡΠΎ HEAD~N / GIT_SHA^.
ΠΡΡΠ°ΡΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΊΠΎΠ΄Π° Π΅ΡΠ΅ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ git.
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ±ΠΎΡ, ΠΈ ΡΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ git rebase –abort ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏΠΎΠΏΡΡΠΊΡ.
ΠΠ΅ Π²ΠΎΠ»Π½ΡΠΉΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ!
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
ΠΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΄ΠΎΠ±Π΅Π½, Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΎ-ΡΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ»ΠΈ ΠΈ Π½Π°ΠΆΠ°Π»ΠΈ, Π° ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ.
git revert HEAD~2
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅ Π½ΡΠΆΠ½ΡΠΌ (ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ)
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ –no-commit, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π΅Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ / ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ Ρ.Π΄.
Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ, Π·Π°ΠΏΡΡΡΠΈΠ² git show ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠ°ΠΊ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ HEAD~N Π½Π° GIT_SHA, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ^, ΠΎΠ½ ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° SHA, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΌΡΡ ΡΡΠ°ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ GIT_SHA, ΠΈ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ “ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ”, Π½ΠΎ Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HEAD~3 (ΡΠ°ΠΌΡΡ ΡΡΠ°ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ ΡΡΠ°ΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅).
ΡΠΌ .ΡΠ°ΠΊΠΆΠ΅:
- πΒ ΠΠ°ΠΊ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Docker Π² ΡΠ΅Π΄ΠΆΠ΅ΡΡΡΠΈ GitLab
- πΒ ΠΠ°ΠΊ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΠΈ Git
- πΒ ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Git
- πΒ ΠΡΠΈΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Git Clean
- πΒ ΠΠ°ΠΊ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ ΡΠ΅Π»ΠΈΠ·Ρ Ρ GitHub