Π’ соврСмСнной экосистСмС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, особСнно Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ измСнСниями ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ являСтся критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌ процСссом. Π‘Π΅Π· Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ систСмы ΡƒΡ‡Π΅Ρ‚Π° вСрсий Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π°. ВСрсионированиС Π² 1Π‘ β€” это Π½Π΅ просто сохранСниС Ρ„Π°ΠΉΠ»ΠΎΠ², Π° слоТная дисциплина, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ понимания Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ спСцифики хранСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ соврСмСнными систСмами контроля вСрсий, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Git. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства ΠΈ нСдостатки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ². Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ инструмСнты, доступныС для администраторов ΠΈ программистов 1Π‘, Π° Ρ‚Π°ΠΊΠΆΠ΅ обсудим стратСгии внСдрСния CI/CD.

НативноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈ самым распространСнным инструмСнтом для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ стало встроСнноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Оно прСдставляСт собой ΠΊΠ»ΠΈΠ΅Π½Ρ‚-ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π³Π΄Π΅ сСрвСр Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° управляСт доступом ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ Π½Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€, получая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Основной ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Когда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΊΡƒ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ помСчаСтся ΠΊΠ°ΠΊ занятый, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Однако такая модСль ΠΈΠΌΠ΅Π΅Ρ‚ свои ограничСния: ΠΎΠ½Π° Π½Π΅ позволяСт вСсти ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π±Π΅Π· явного слияния, Ρ‡Ρ‚ΠΎ замСдляСт процСссы Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…. Настройка сСрвСра Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выдСлСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса ΠΈΠ»ΠΈ слуТбы Π½Π° сСрвСрС.

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ адрСс сСрвСра ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΡ€Π½ΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Администраторы часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° критичСски Π²Π°ΠΆΠ½ΠΎ рСгулярно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ самого рСпозитория Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π±Π°Π·Ρ‹. ΠŸΠΎΡ‚Π΅Ρ€Ρ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡƒΡ‚Ρ€Π°Ρ‚Ρƒ всСй истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

НСсмотря Π½Π° появлСниС Π½ΠΎΠ²Ρ‹Ρ… инструмСнтов, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ остаСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ для ΠΌΠ½ΠΎΠ³ΠΈΡ… прСдприятий, особСнно Ρ‚Π°ΠΌ, Π³Π΄Π΅ инфраструктура ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ построСна Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ… Ρ„ΠΈΡ€ΠΌΡ‹ 1Π‘. Π•Π³ΠΎ интСграция с интСрфСйсом ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° максимально ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Π° для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΡ€ΠΈ Π·Π°Ρ…Π²Π°Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Π·Π°Π΄Π°Ρ‡ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ошибки Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ РСализация") ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ контСкст ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Π΅Π· нСобходимости ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄.

ИспользованиС систСм Git для 1Π‘

Π’ послСдниС Π³ΠΎΠ΄Ρ‹ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ массовый ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π° распрСдСлСнныС систСмы контроля вСрсий, Π² частности Π½Π° Git. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ соврСмСнныС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ DevOps, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ, Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ (branching) ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ тСстированиС. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git Π² срСдС 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты-ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ vanessa-runner ΠΈΠ»ΠΈ внСшниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Основная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Git Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ хранСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» 1Cv8.cf являСтся Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для сравнСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (diff). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π² тСкстовый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (XML), Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… прСдставлСн ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ позволяСт систСмам контроля вСрсий ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния построчно.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ синхронизации ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, добавляСт измСнСния Π² индСкс Git, Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ отправляСт Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GitHub ΠΈΠ»ΠΈ GitLab). ΠŸΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ происходит ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ процСсс: Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· рСпозитория ΠΈ сборка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….

  • πŸš€ Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅: Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π±Π΅Π· влияния Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ линию ΠΊΠΎΠ΄Π°.
  • πŸ” Code Review: КоллСги ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ измСнСния Π² Π²Π΅Π±-интСрфСйсС ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.
  • πŸ”„ Автоматизация: ЛСгкая интСграция со скриптами сбораки ΠΈ тСстирования.

ИспользованиС Git Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΠΎΠ»Π΅Π΅ высокой дисциплины ΠΈ понимания ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ. Ошибки ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ (merge conflicts) Π² тСкстовых Ρ„Π°ΠΉΠ»Π°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ слоТными для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ссли структура XML Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π°.

πŸ“Š Какой инструмСнт вСрсионирования Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅?
Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ 1Π‘
Git (vanessa/onec)/GitLab
SVN
НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ систСмноС вСрсионированиС
Π”Ρ€ΡƒΠ³ΠΎΠ΅

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· инструмСнтов

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ ΠΈ Git часто зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ зрСлости процСссов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π³Ρ€ΡƒΠΏΠΏ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΠ΄Π½ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΉ Git прСдоставляСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. Рассмотрим ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ различия Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π₯арактСристика Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ 1Π‘ Git Ѐайловая вСрсия (V8Update)
Π’ΠΈΠΏ доступа Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ (ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр) РаспрСдСлСнный Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ/БСтСвая ΠΏΠ°ΠΏΠΊΠ°
Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² АвтоматичСская ΠΏΡ€ΠΈ Π·Π°Ρ…Π²Π°Ρ‚Π΅ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ (Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ процСссами) Ручная ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· скрипты
Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π₯ранится Π½Π° сСрвСрС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π’ ΠΏΠ°ΠΏΠΊΠ΅ вСрсий
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ настройки Низкая (встроСно Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ) Высокая (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏ. ΡƒΡ‚ΠΈΠ»ΠΈΡ‚) БрСдняя

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Git Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π² гибкости ΠΈ возмоТностях ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π² простотС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройки для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ… с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой. Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ 1Π‘ обСспСчиваСт Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² "ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ", Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ возмоТности ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” использованиС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Ρ‚ΠΈΠΏΠ° V8Update ΠΈΠ»ΠΈ OneGit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Π½ΠΎ хранят Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структурС, совмСстимой с Git. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ интСрфСйс Π·Π°Ρ…Π²Π°Ρ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΌΠΎΡ‰ΡŒΡŽ распрСдСлСнных систСм.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° Git ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΎΠ²ΠΎΠΉ систСмой. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ слияниС Π²Π΅Ρ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ частСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слоТно Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.
πŸ’‘

Для стартапов ΠΈ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ 1Π‘ часто являСтся ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΈΠ·-Π·Π° Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΏΠΎΡ€ΠΎΠ³Π° Π²Ρ…ΠΎΠ΄Π°, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ с большим ΡˆΡ‚Π°Ρ‚ΠΎΠΌ программистов ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Git Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ΅Π½.

Автоматизация ΠΈ нСпрСрывная интСграция

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ использованиС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠ² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (CI/CD). Π’ контСкстС 1Π‘ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ сборку ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, запуск тСстов ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ vanessa-ci ΠΈΠ»ΠΈ grc (Git Runner CI) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот процСсс.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ начинаСтся с Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°: ΠΏΡƒΡˆ ΠΊΠΎΠ΄Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ запускаСт скрипт Π½Π° сСрвСрС сборки. Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (часто Π² тСстовоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅), запускаСт Π½Π°Π±ΠΎΡ€ автотСстов (xUnit, Vanessa Automation) ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ для развСртывания.

git clone https://gitlab.com/project/config.git

1cv8.exe DESIGNER /F "C:\Base" /N "Admin" /P "Pass" -LoadConfigFromFiles "C:\Src"

1cv8.exe DESIGNER /F "C:\Base" -RunTestManager

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ чСловСчСский Ρ„Π°ΠΊΡ‚ΠΎΡ€. Ошибки синтаксиса ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ сразу послС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π° Π½Π΅ Π½Π° этапС ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ эксплуатации. ВСрсионированиС становится Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ΠΎΠΌ для Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

Π’Π°ΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ окруТСния: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, тСстированиС ΠΈ производство. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π½ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ свои настройки, управляСмыС Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² интСрфСйса ΠΈΠ»ΠΈ рСгистры свСдСний.

Как ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния Π² 1Π‘?

ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π² тСкстовых Ρ„Π°ΠΉΠ»Π°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (XML) Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ стандартными срСдствами Git (mergetool). Однако послС слияния Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² Π±Π°Π·Ρƒ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² цСлостности ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ вСрсионировании

Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ использовании ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с рядом Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Одной ΠΈΠ· самых частых являСтся рассинхронизация вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Если ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π΅Π»ΠΈΠ· 8.3.20, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ 8.3.24, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ синтаксиса ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅.

Другая распространСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² слуТСбного назначСния. Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с исходным ΠΊΠΎΠ΄ΠΎΠΌ часто ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π»ΠΎΠ³ΠΈ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ настроСк IDE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„Π°ΠΉΠ» .gitignore.

  • ❌ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ‚Π΅Π³ΠΎΠ²: НумСрация вСрсий вСдСтся Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½ΠΎ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ быстро Π½Π°ΠΉΡ‚ΠΈ состояниС систСмы Π½Π° Π΄Π°Ρ‚Ρƒ Ρ€Π΅Π»ΠΈΠ·Π°.
  • ❌ ГигантскиС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹: Π’ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ€ΡΠΈΡŽ вносится сотни ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.
  • ❌ Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΎΠ²: ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ .cf ΠΈΠ»ΠΈ .dt, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π΄ΡƒΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ рСпозитория.

БоблюдСниС гигиСничСских ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ (code hygiene) Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ влияСт Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ вСрсионирования. РСгулярныС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с понятными сообщСниями ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ Тизнь всСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» инструмСнтов сторонних Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (vanessa, onebit ΠΈ Π΄Ρ€.) ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ нСзависимо ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. ВсСгда провСряйтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ инструмСнта ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ окруТСния сборки.

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ вСтвлСния ΠΈ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ²

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ вСрсионированиС Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ стратСгии вСтвлСния. НаиболСС популярной модСлью Π² ΠΌΠΈΡ€Π΅ 1Π‘ являСтся упрощСнная вСрсия Git Flow. Она ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ долгосрочных Π²Π΅Ρ‚ΠΎΠΊ master (ΠΈΠ»ΠΈ main) для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии ΠΈ develop для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ исправлСния ошибки создаСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ° (feature branch), которая отвСтвляСтся ΠΎΡ‚ develop. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ прохоТдСния тСстов Π²Π΅Ρ‚ΠΊΠ° вливаСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² develop Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Pull Request ΠΈΠ»ΠΈ Merge Request. Π Π΅Π»ΠΈΠ·Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΊ выпуску.

Вакая структура позволяСт ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π²Π΅Ρ‚ΠΊΠ΅ master всСгда находится работоспособная конфигурация, готовая ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сСрвСрах. Π’ случаС критичСских ошибок Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ хотфикс-Π²Π΅Ρ‚ΠΊΡƒ ΠΎΡ‚ master, ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Π²Π»ΠΈΡ‚ΡŒ измСнСния Π²ΠΎ всС Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ.

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ строгой дисциплины вСтвлСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ окупаСтся сниТСниСм количСства ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΎΠ² Π½Π° Π±ΠΎΠ΅Π²Ρ‹Ρ… сСрвСрах. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ учатся Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ цСлостности систСмы, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ своСй локальной Π·Π°Π΄Π°Ρ‡Π΅.

πŸ’‘

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ стратСгии вСтвлСния: Π²Π΅Ρ‚ΠΊΠ° master всСгда Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π² состоянии готовности ΠΊ Ρ€Π΅Π»ΠΈΠ·Ρƒ. Никаких экспСримСнтов ΠΈ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² основной Π²Π΅Ρ‚ΠΊΠ΅ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ 1Π‘ ΠΈ Git ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ?

ВСхничСски это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π΅ рСкомСндуСтся ΠΈΠ·-Π·Π° риска рассинхронизации. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ основной инструмСнт. Однако Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° Git β€” для архивирования Ρ€Π΅Π»ΠΈΠ·Π½Ρ‹Ρ… вСрсий ΠΈ бэкапов.

Как ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии Π² Git?

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git revert для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π³ΠΎ измСнСния, ΠΈΠ»ΠΈ git reset для пСрСмСщСния указатСля Π²Π΅Ρ‚ΠΊΠΈ Π½Π°Π·Π°Π΄. ПослС этого конфигурация выгруТаСтся ΠΈΠ· Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ загруТаСтся Π² Π±Π°Π·Ρƒ 1Π‘.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка "ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½"?

Π§Π°Ρ‰Π΅ всСго это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ зависимостСй ΠΈΠ»ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π° структура ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, всС Π»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅, ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ².

НуТно Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ (.cfe) Π² вСрсионировании?

Π”Π°, исходный ΠΊΠΎΠ΄ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€ΡΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ‚Π΅ ΠΆΠ΅: Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° Π² тСкстовый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² Git ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Π­Ρ‚ΠΎ позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΡ… нСзависимо ΠΎΡ‚ основной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Какой инструмСнт Π»ΡƒΡ‡ΡˆΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° 1Π‘?

Для старта Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ встроСнноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ минимальной настройки. ПослС понимания ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ слияния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ Git ΠΈ инструмСнтов Π²Ρ€ΠΎΠ΄Π΅ vanessa-runner.