Vcs git Ρ‡Ρ‚ΠΎ это

ΠžΡΠ½ΠΎΠ²Ρ‹ VCS Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Git

https://git-scm.com/ – Ρ‚ΡƒΡ‚ ΠΊΡ€ΡƒΡ‚Ρ‹Π΅ entry Π²ΠΈΠ΄Π΅ΠΎ, докумСнтация ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅.

Помимо возмоТности просмотра ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсий Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкстовых) VCS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚:

Если Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ:

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· плюсов ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ VCS ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Ссли Ρ‚Ρ‹ СдинствСнный программист.

Git

Π€Π°ΠΉΠ»Ρ‹ Π² Git ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² стадиях:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Git ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ сСкции:

ДирСктория Git (Git directory) – ΠΏΠΎ сути Π±Π°Π·Π° Ρ‚Π²ΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ всС snapshot ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Git Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ commit сохраняСт Π² Git Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π΅ просто Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ состояниСм ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ (diff), Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ„Π°ΠΉΠ»Ρ‹. (commited files)

Commit прСдставляСт собой ΠΏΠΎ сути snapshot Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ поставлСны Π½Π° commit. Π’ коммСнтариях ΠΊ commit Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ… commit, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ссылок Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, rfc, пСрСписки ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Если ΠΊΠΎΠΌΠΌΠΈΡ‚ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ – Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ commit Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ нСпосрСдствСнно Π² cli, Π° просто ввСсти commit. Π’ΠΎΠ³Π΄Π° откроСтся тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π² Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкой ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС, Π° Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ тСкст измСнСния. Π•ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ сайт посвящСнный ΡΡ‚ΠΈΠ»ΡŽ commit https://commit.style/.

Commit идСнтифицируСтся ID Π² Π²ΠΈΠ΄Π΅ HASH, расчитанного ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ SHA1. Hash сдСлан Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ‹ внСс ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сохранСны Ρ‚.ΠΊ. любоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ измСнСнию hash этих Π΄Π°Π½Π½Ρ‹Ρ…. Git Ρ€ΡƒΠ³Π½Π΅Ρ‚ΡŒΡΡ Ссли hash ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΠΎΠ²Π°Ρ‚ΡŒ hash commit. ИзмСнСниС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½Ρ‹ΠΌ – сСтСвая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с диском, Π½ΠΎ ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ (mitm). ΠŸΡ€ΠΈ использовании Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ символы hash, Π° Π½Π΅ вСсь hash, git Π½Π°ΠΉΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ commit ΠΏΠΎ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ Π² hash (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ достаточно всСго ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 4 символов).

HEAD – ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ commit для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ branch Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (ΠΏΠΎ сути Π·Π° Π½ΠΈΠΌ скрываСтся ID Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ commit), Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΎ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ для отслСТивания мСстополоТСния (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… git reset, diff, branch, status).

Github

Github – бСсплатный web-based сСрвСр Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Π½Π° основС git. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ Π΄ΠΎΠΏ. плюшки Π² Π²ΠΈΠ΄Π΅ wiki, bug tracking, task management. БСсплатСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ) ΠΏΡƒΠ±Π»ΠΈΡ‡Π΅Π½, Ссли Π½ΡƒΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ – Π·Π°ΠΏΠ»Π°Ρ‚ΠΈ Π΄Π΅Π½Π΅Π³, хотя ΠΈ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ. GitHub являСтся ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΠΌ Π²Π΅Π±-сСрвисом для хостинга IT-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΈΡ… совмСстной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Основан Π½Π° систСмС контроля вСрсий Git ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π½Π° Ruby on Rails ΠΈ Erlang. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· git clone ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π² zip. Π•ΡΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈ – BitBucket, Gitlab. Github ΠΊΡƒΠΏΠ»Π΅Π½ microsoft.

Базовая Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ username ΠΈ ΠΏΠΎΡ‡Ρ‚Ρ‹ (Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ тСбя Π² commit Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… рСпозиториях). Π’ git config ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ pgp/gpg ΠΊΠ»ΡŽΡ‡ для подписи ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ (Ρ‚ΡƒΡ‚ Π±ΡƒΠ΄ΡƒΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ самого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°)

ДобавляСм элСмСнт ΠΈΠ»ΠΈ всю ΠΏΠ°ΠΏΠΊΡƒ Π² hold Π½Π° commit (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² commit, добавляСм Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² tracked ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Π² commit – проставляСм Π½Π° Ρ„Π°ΠΉΠ»Ρ‹ staged статус)

Π£Π±ΠΈΡ€Π°Π΅ΠΌ элСмСнт ΠΈΠ»ΠΈ всю ΠΏΠ°ΠΏΠΊΡƒ ΠΈΠ· staging area

МоТно ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ – Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Git Π½Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», удаляСм/ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ· Git directory. Π€Π°ΠΉΠ» ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² staged, поэтому Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ commit для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ удалСния/пСрСмСщСния.

GITIGNORE

ПолСзно часто просто ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΡ€ΠΎΠΌΠ΅ python-скриптов (ΠΈΠ»ΠΈ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ΅Π½).

COMMIT

Π”Π΅Π»Π°Π΅ΠΌ commit – создаСм snapshot с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
-m – добавляСм ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ прямо ΠΈΠ· консоли. По style Ρ‚Π°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ Ρ‚Π°ΠΊ Π΄Π΅Π»Π°ΡŽΡ‚ Π΄Π°ΠΆΠ΅ Π² ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΌ review Π½Π° сайтС Git 🙂 Как ΠΏΠΎ ΠΌΠ½Π΅ Ссли ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΎΡ€Π½ΠΎΠ΅ – ΠΎΡ‡Π΅Π½ΡŒ полСзная Π²Π΅Ρ‰ΡŒ.
-a – автоматичСски добавляСт всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ (Π½Π°Ρ…ΠΎΠ΄ΡΡ‚ΡŒΡΡ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git) Π½Π° commit (Π½Π΅Ρ‚ нСобходимости Π΄Π΅Π»Π°Ρ‚ΡŒ git add, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π½Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»)

ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‚ΡŒ послСдний commit Π½ΠΎΠ²Ρ‹ΠΌ (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старого commit, всС Ρ‡Ρ‚ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² staging area Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½ΠΎ). МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° смСнились Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. ВрСмя commit Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ commit, Π° Π½Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ amend, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны (ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚, id). ΠšΡ€Π°ΠΉΠ½Π΅ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… commit, вмСсто этого Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ revert.

Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ· послСднСго commit, Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΅Ρ‰Π΅ Π½Π΅ Π² staging area (послС измСнСния ΠΈΠ»ΠΈ удалСния Π”Πž примСнСния add/rm Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ„Π°ΠΉΠ»Π°)

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ· послСднСго commit, Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ Π² staging area (послС измСнСния ΠΈΠ»ΠΈ удалСния И примСнСния add/rm Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ„Π°ΠΉΠ»Π°)

ΠžΡ‚ΠΊΠ°Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ commit дСлаСтся Ρ‡Π΅Ρ€Π΅Π· checkout.

ΠžΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсСнных ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ commit дСлаСтся Ρ‡Π΅Ρ€Π΅Π· revert. Revert Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отмСняСт всС измСнСния, сдСланныС Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ (HEAD – Π² послСднСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈΠ»ΠΈ commit_hash_id, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ) – Ρ‚.Π΅. Ссли строка Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°, Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ revert эта строка Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ Ρ‚Π°ΠΊ Π² β€œΠΏΠ»ΠΎΡ…ΠΎΠΌβ€ commit послС ΠΎΡ‚ΠΊΠ°Ρ‚Π°.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈ Π›ΠΎΠ³ΠΈ

Бтатус Ρ„Π°ΠΉΠ»ΠΎΠ², Π² ΠΊΠ°ΠΊΠΎΠΌ состоянии ΠΎΠ½ΠΈ находятся

Π›ΠΎΠ³ΠΈ

ΠžΠΏΡ†ΠΈΠΈ:
-p – ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ помСнялось Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ commit,
-2 – ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° послСдних commit,

–decorate – Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ branch, Π² ΠΊΠ°ΠΊΠΎΠΉ branch сСйчас смотрит HEAD ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ говоря для ΠΊΠ°ΠΊΠΎΠ³ΠΎ branch Π² Π»ΠΎΠ³Π°Ρ… ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ commit
–stat – просмотр ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ помСнялись
origin/master – ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ repo ΠΈ branch, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π»ΠΎΠ³ΠΈ

BRANCHING AND MERGING

Branch – ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ commit. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ branch ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ линию Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Master – branch ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, создаваСмый ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Git. ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ Π΅Π³ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ, production ΠΈΠ»ΠΈ known-good, Π²Π΅Ρ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΈ измСнСниях ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ добавлСния Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΈΡ‡ΠΈ дСлаСтся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ branch, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ происходит Ρ€Π°Π±ΠΎΡ‚Π°, Π±Π΅Π· нСобходимости измСнСния production Π²Π΅Ρ‚ΠΊΠΈ. Branch’и ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ идСями Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ повсСднСвно. Основной ΠΏΡ€ΠΎΡ„ΠΈΡ‚ branch состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ хранят ΠΈ Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ½ΠΈ просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ commit.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС branch Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π·Π²Π΅Π·Π΄ΠΎΠΉ помСчаСтся Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ‚Ρ‹ сСйчас Π½Π°Ρ…ΠΎΠ΄ΠΈΡˆΡŒΡΡ

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ branch Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ branch (Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ master)

Для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ branch’ами Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ checkout, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 1) working tree измСняСтся с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ branch Π½Π° послСдний Π½ΠΎΠ²Ρ‹ΠΉ, Ρ‚.Π΅. ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ Π² соотвСтствии с branch 2) HEAD ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° послСдний commit Π² Π½ΠΎΠ²ΠΎΠΌ branch, Π° Π½Π΅ Π² старом 3) мСняСтся commit history Ρ‚.ΠΊ. ΠΎΠ½Π° вСдСтся для branch

МоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ branch ΠΈ сразу ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π² Π½Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· checkout

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ branch (Ρ€ΡƒΠ³Π½Π΅Ρ‚ΡŒΡΡ Ссли Π΅ΡΡ‚ΡŒ нСза’merge’нныС Π² master измСнСния Π² удаляСмом branch)

БоСдиняСм Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ history log branch с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ branch. Git ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° для merge:

Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ merge, Ссли ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слишком слоТныС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… быстро Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ. Π”Π°Π½Π½Ρ‹Π΅ Π² working tree Π±ΡƒΠ΄ΡƒΡ‚ восстановлСны Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ branch, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹. ΠŸΡ€ΠΈ использовании –hard всС Π½Π΅Π·Π°ΠΊΠΎΠΌΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ измСнСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ branch Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Ρ‹!

ΠšΠžΠ›Π›ΠΠ‘ΠžΠ ΠΠ¦Π˜Π―

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, отвСтствСнный Π·Π° ΠΊΠ°ΠΊΡƒΡŽ Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΡƒ (branch)

Админ послС этого собираСт ΠΊ сСбС Π½Π° ΠΊΠΎΠΌΠΏ (git pull) ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ измСнСния послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (git merge), с вопросами ΠΊΠ°ΠΊΠΈΠ΅ измСнСния ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² случаС наличия ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ

УДАЛЕННЫЕ Π Π•ΠŸΠžΠ—Π˜Π’ΠžΠ Π˜Π˜ (github)


git clone
– ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ для локального использования (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСсто git init, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ всС Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° Π½Π΅ понадобится ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ – Ρ‚Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий push). Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ скопирован ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ имя ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ origin.

ВмСсто создания ΠΊΠ»ΠΎΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ связь с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTTP (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ RO доступ ΠΊ repo), HTTPS, SSH, Git. Бвязь автоматичСски создаСтся ΠΏΡ€ΠΈ использовании git clone.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС связи с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ рСпозиториями (-v ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ URL ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для fetch from repo ΠΈ push to repo, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅)

git pull – ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ измСнСния ΠΈΠ· repo. ОбновлСниС Π΄Π°Π½Π½Ρ‹Ρ… локального рСпозитория Π½Π° основС ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ. Git автоматичСски это Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚. НапримСр, ΠΊΠΎΠ³Π΄Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ измСнСния, Π·Π°ΠΏΡƒΡˆΠ΅Π½Π½Ρ‹Π΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ· Π΄ΠΎΠΌΠ°. Команда которая Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ fetch ΠΈΠ· remote repo (url shortcut) ΠΈ merge Π½Π° основС ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ repo. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ branch опрСдСляСтся Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ branch, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ. ΠŸΠ΅Ρ€Π΅Π΄ git pull ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ измСнилось Π² repo с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git diff HEAD..origin

git merge – обновляСм Π΄Π°Π½Π½Ρ‹Π΅ нашСго рСпозитория Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ.

Fork для измСнСния Π±Π΅Π· ΠΏΡ€Π°Π² + pull request для запроса Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ основной Π²Π΅Ρ‚ΠΊΠΈ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий?

Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий содСйствуСт успСху ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ DevOps

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

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

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

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

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

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

Π“Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Ρ„ΠΎΡ€ΠΌΡƒ управлСния вСрсиями, часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ Π½Π΅Π·Π½Π°Π½ΠΈΠ΅ ΠΎΠ± измСнСниях, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈΠ»ΠΈ созданиС Π² Π΄Π²ΡƒΡ… нСсвязанных частях Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ нСсовмСстимыми ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ приходится скрупулСзно Ρ€Π°ΡΠΏΡƒΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ. Если Π²Ρ‹ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π°Π½Π΅Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ примСняли ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ вСрсии своих Ρ„Π°ΠΉΠ»ΠΎΠ², добавляя суффиксы Ρ‚ΠΈΠΏΠ° Β«Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉΒ» ΠΈΠ»ΠΈ «послСдний», Π° ΠΏΠΎΠ·ΠΆΠ΅ появлялась новая Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ вСрсия. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ использовали ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ возмоТности, Π½Π΅ удаляя ΠΈΡ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ опасались, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ·ΠΆΠ΅. РСшСниСм всСх ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ являСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для управлСния вСрсиями являСтся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ повсСднСвной ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ соврСмСнной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ПО, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΡˆΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ с эффСктивной систСмой управлСния вСрсиями, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠ·Π½Π°ΡŽΡ‚ Π½Π΅Π²Π΅Ρ€ΠΎΡΡ‚Π½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ управлСния вСрсиями Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ нСбольшими ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΠ² ΠΊ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ прСимущСствам систСм контроля вСрсий, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· Π½ΠΈΡ… Π΄Π°ΠΆΠ΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π½Π΅ связанных с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ПО.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° систСм контроля вСрсий

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС контроля вСрсий рСкомСндуСтся для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ DevOps. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ПО β€” ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ увСличСния числа Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π—Π° послСдниС нСсколько дСсятилСтий систСмы контроля вСрсий (Version Control Systems, VCS) стали Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ это ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π»ΡƒΡ‡ΡˆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ…. БистСмы VCS ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ инструмСнтами SCM (управлСния исходным ΠΊΠΎΠ΄ΠΎΠΌ) ΠΈΠ»ΠΈ RCS (систСмой управлСния рСдакциями). Один ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных Π½Π° сСгодняшний дСнь инструмСнтов VCS называСтся Git. Git относится ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ распрСдСлСнных систСм контроля вСрсий, извСстных ΠΊΠ°ΠΊ DVCS (эта Ρ‚Π΅ΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅). Git, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ популярныС ΠΈ доступныС Π½Π° сСгодняшний дСнь систСмы VCS, распространяСтся бСсплатно ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΡƒΡŽ систСму контроля вСрсий Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π° называСтся, основныС Π΅Π΅ прСимущСства Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ.

Полная история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π·Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄. Π­Ρ‚ΠΎ касаСтся всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсСнных ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ количСством людСй Π·Π° Π΄ΠΎΠ»Π³ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹. ИзмСнСниСм считаСтся созданиС ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡ… содСрТимого. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ инструмСнты VCS ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌ, насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ пСрСимСнования ΠΈ пСрСмСщСния Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ свСдСния ΠΎΠ± Π°Π²Ρ‚ΠΎΡ€Π΅, Π΄Π°Ρ‚Π° ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ с описаниСм Ρ†Π΅Π»ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСнСния. НаличиС ΠΏΠΎΠ»Π½ΠΎΠΉ истории позволяСт Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ вСрсиям, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· основных ΠΏΡ€ΠΈΡ‡ΠΈΠ½ возникновСния ошибок ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² старых вСрсиях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Если Π½Π°Π΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм вСдСтся активная Ρ€Π°Π±ΠΎΡ‚Π°, Ρ‚ΠΎ «старой вСрсиСй» ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ вСсь ΠΊΠΎΠ΄ этого ПО.

Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ слияниС. Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ участников ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ люди Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Π½Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ нСсколькими нСзависимыми направлСниями. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Β«Π²Π΅Ρ‚ΠΎΠΊΒ» Π² инструмСнтах VCS позволяСт ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько нСзависимых Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ… слияниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ измСнСния, внСсСнныС Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π²Π΅Ρ‚ΠΎΠΊ, Π½Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. МногиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ возмоТности, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° Π»ΠΈΠ±ΠΎ ΠΈ для Ρ‚ΠΎΠ³ΠΎ, ΠΈ для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. НаличиС мноТСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ подходящий для Π½ΠΈΡ… способ использования вСтвлСния ΠΈ слияния Π² VCS.

ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, внСсСнноС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΈ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ПО для управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ отслСТивания ошибок, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Jira, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ измСнСнию ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ с описаниСм Ρ†Π΅Π»ΠΈ ΠΈ назначСния измСнСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ основных ΠΏΡ€ΠΈΡ‡ΠΈΠ½ возникновСния ошибок, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ с коммСнтариями Π²ΠΎ врСмя чтСния ΠΊΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ дСйствиС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Благодаря этому Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΈ совмСстимыС измСнСния Π² соотвСтствии с долгосрочным ΠΏΠ»Π°Π½ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ систСмы. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с унаслСдованным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ объСм дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π±Π΅Π· управлСния вСрсиями, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌΡƒ риску, ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вопрос Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π΅ Π² Ρ‚ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями, Π° Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΡƒΡŽ систСму управлСния вСрсиями Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ.

Π‘Ρ€Π΅Π΄ΠΈ мноТСства ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… систСм управлСния вСрсиями ΠΌΡ‹ сосрСдоточимся Π½Π° ΠΎΠ΄Π½ΠΎΠΉ: систСмС Git. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠ°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для контроля вСрсий.

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Git?

ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этим ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΌ руководством.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ систСм управлСния вСрсиями

Vcs git Ρ‡Ρ‚ΠΎ это. image loader. Vcs git Ρ‡Ρ‚ΠΎ это Ρ„ΠΎΡ‚ΠΎ. Vcs git Ρ‡Ρ‚ΠΎ это-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Vcs git Ρ‡Ρ‚ΠΎ это. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ сравним с тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния самыС извСстныС систСмы управлСния вСрсиями (Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ список):

Π’ VCS Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ поколСния появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСти, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌ с Β«ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈΒ» вСрсиями ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ Π±Ρ‹Π» Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ прогрСсс, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ, дСлая ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Однако для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² трСбовался доступ ΠΊ сСти.

Π’Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ состоит ΠΈΠ· распрСдСлённых VCS, Π³Π΄Π΅ всС ΠΊΠΎΠΏΠΈΠΈ рСпозитория ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ, Π½Π΅Ρ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория. Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ слияний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ локально Π±Π΅Π· доступа ΠΊ сСти ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

Π₯ронология Π²Ρ‹Ρ…ΠΎΠ΄Π° VCS

Для контСкста, Π²ΠΎΡ‚ Π³Ρ€Π°Ρ„ΠΈΠΊ c Π΄Π°Ρ‚Π°ΠΌΠΈ появлСния этих инструмСнтов:

Vcs git Ρ‡Ρ‚ΠΎ это. image loader. Vcs git Ρ‡Ρ‚ΠΎ это Ρ„ΠΎΡ‚ΠΎ. Vcs git Ρ‡Ρ‚ΠΎ это-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Vcs git Ρ‡Ρ‚ΠΎ это. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader

SCCS (Source Code Control System): ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅

SCCS считаСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… систСм управлСния вСрсиями. Она Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² 1972 Π³ΠΎΠ΄Ρƒ ΠœΠ°Ρ€ΠΊΠΎΠΌ Π ΠΎΡ‡ΠΊΠΈΠ½Π΄ΠΎΠΌ ΠΈΠ· Bell Labs. БистСма написана Π½Π° C ΠΈ создана для отслСТивания вСрсий исходного Ρ„Π°ΠΉΠ»Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΠ»Π° поиск источников ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Базовая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ синтаксис SCCS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΡ€Π½ΠΈ соврСмСнных инструмСнтов VCS.

АрхитСктура

Как ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных систСм, Π² SCCS Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с вСрсиями Ρ„Π°ΠΉΠ»ΠΎΠ²:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ содСрТимоС исходного Ρ„Π°ΠΉΠ»Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ хранится Π² Ρ„Π°ΠΉΠ»Π΅ истории, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для просмотра, компиляции ΠΈΠ»ΠΈ рСдактирования. Π’ Ρ„Π°ΠΉΠ» истории ΠΌΠΎΠΆΠ½ΠΎ внСсти измСнСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ добавлСния строк, измСнСния ΠΈ удалСния, Ρ‡Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€ вСрсии.

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. НСвозмоТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ измСнСния Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Git. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ отслСТиваСмого Ρ„Π°ΠΉΠ»Π° свой Ρ„Π°ΠΉΠ» истории, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится Π΅Π³ΠΎ история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсий Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Однако эти вСрсии ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ рСдактирования всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ (Π΄Π°ΠΆΠ΅ Π½Π΅ внося Π² Π½ΠΈΡ… Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ измСнСния) ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ добавлСния всСх Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Π½ΠΎΠΌΠ΅Ρ€ вСрсии для всСх Ρ„Π°ΠΉΠ»ΠΎΠ², сохраняя ΠΈΡ… ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠ°ΠΊ Π² Git. Π’ SCCS происходит ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» истории, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ большого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ всС измСнСния сразу.

Когда Ρ„Π°ΠΉΠ» извлСкаСтся для рСдактирования Π² SCCS, Π½Π° Π½Π΅Π³ΠΎ ставится Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π½ΠΈΠΊΡ‚ΠΎ большС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ.

SCCS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π΅Ρ‚Π²ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. МоТно произвСсти слияниС Π²Π΅Ρ‚Π²ΠΈ с исходной вСрсиСй ΠΈΠ»ΠΈ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ список Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных ΠΊΠΎΠΌΠ°Π½Π΄ SCCS.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° истории SCCS

RCS (Revision Control System): ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅

RCS написана Π² 1982 Π³ΠΎΠ΄Ρƒ Π£ΠΎΠ»Ρ‚Π΅Ρ€ΠΎΠΌ Π’ΠΈΡ…ΠΈ Π½Π° языкС Π‘ Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ систСмС SCCS, которая Π² Ρ‚ΠΎ врСмя Π½Π΅ Π±Ρ‹Π»Π° опСнсорсной.

АрхитСктура

Π£ RCS ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ со своим ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠΌ, Π² Ρ‚ΠΎΠΌ числС:

Π’ SCCS ΠΈΠ½Π°Ρ‡Π΅: Ρ‚Π°ΠΌ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ любой вСрсии Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² Ρ„Π°ΠΉΠ»Π°Ρ… истории RCS Π½Π΅ хранится ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма, поэтому нСльзя ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π°.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

НиТС список Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённых ΠΊΠΎΠΌΠ°Π½Π΄ RCS:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° истории RCS

CVS (Concurrent Versions System): Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅

CVS создана Π”ΠΈΠΊΠΎΠΌ Π“Ρ€ΡƒΠ½ΠΎΠΌ Π² 1986 Π³ΠΎΠ΄Ρƒ с Ρ†Π΅Π»ΡŒΡŽ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² систСму управлСния вСрсиями ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сСти. Она Ρ‚Π°ΠΊΠΆΠ΅ написана Π½Π° C ΠΈ Π·Π½Π°ΠΌΠ΅Π½ΡƒΠ΅Ρ‚ собой Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ поколСния инструмСнтов VCS, благодаря ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ гСографичСски рассрСдоточСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ вмСстС.

АрхитСктура

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ копию модуля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ копируСтся Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° Π΅Π³ΠΎ локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π’ этом процСссС Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ ограничСния Π½Π° количСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ свои Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния (Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚). Если Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ фиксируСт ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свои Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ) Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ процСсса слияния ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй своих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Иногда приходится Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚. CVS Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π²Π΅Ρ‚Π²ΠΈ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° истории CVS

SVN (Subversion): Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅

Subversion создана Π² 2000 Π³ΠΎΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Collabnet Inc., Π° Π² настоящСС врСмя поддСрТиваСтся Apache Software Foundation. БистСма написана Π½Π° C ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠ΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‡Π΅ΠΌ CVS.

АрхитСктура

Как ΠΈ CVS, Subversion ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ модСль Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ рСпозитория. Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ трСбуСтся сСтСвоС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Subversion прСдставила Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отмСняСтся Π² случаС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ CVS ΠΏΡ€ΠΈ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠ΅ посрСди ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·-Π·Π° сбоя сСти) Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΌΠΎΠ³ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Π² ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½ΠΎΠΌ ΠΈ нСсогласованном состоянии. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ»ΠΈ вСрсия Π² Subversion ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€Ρ‹ связанных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ вмСстС ΠΊΠ°ΠΊ сгруппированный Π±Π»ΠΎΠΊ, Π° Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΊΠ°ΠΊ Π² систСмах ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ.

Π’ настоящСС врСмя Subversion ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму FSFS (File System atop the File System). Π—Π΄Π΅ΡΡŒ создаётся Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… со структурой Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС хоста. Уникальная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ FSFS Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для отслСТивания Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π½ΠΎ ΠΈ ΠΈΡ… вСрсий. Π­Ρ‚ΠΎ файловая систСма с восприятиСм Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π² Subversion. Π’ систСму ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ пустыС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ (Π΄Π°ΠΆΠ΅ Git) Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ ΠΈΡ….

Вакая систСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. Π₯отя Π΄Π΅Π»ΡŒΡ‚Ρ‹ экономят мСсто, Π½ΠΎ Ссли ΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для воссоздания Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния Ρ„Π°ΠΉΠ»Π° Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ всС Π΄Π΅Π»ΡŒΡ‚Ρ‹. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Subversion сохраняСт Π΄ΠΎ 1023 Π΄Π΅Π»ΡŒΡ‚ Π½Π° Ρ„Π°ΠΉΠ», Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ»Π½ΡƒΡŽ копию Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ обСспСчиваСт Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ баланс хранСния ΠΈ скорости.

SVN Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ систСму вСтвлСния ΠΈ Ρ‚Π΅Π³ΠΎΠ². ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ шаблон рСпозитория Subversion содСрТит Ρ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ Π² ΠΊΠΎΡ€Π½Π΅:

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° истории SVN

Git: Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅

БистСму Git Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² 2005 Π³ΠΎΠ΄Ρƒ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ (ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Linux). Она написана Π² основном Π½Π° C Π² сочСтании с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ сцСнариями ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΡ‚ VCS ΠΏΠΎ функциям, гибкости ΠΈ скорости. Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ написал систСму для ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Linux, Π½ΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π΅Ρ‘ сфСра использования Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»Π°ΡΡŒ, ΠΈ сСгодня это самая популярная Π² ΠΌΠΈΡ€Π΅ систСма управлСниями вСрсиями.

АрхитСктура

Git являСтся распрСдСлённой систСмой. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория Π½Π΅ сущСствуСт: всС ΠΊΠΎΠΏΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΠΊΠΎ отличаСтся ΠΎΡ‚ VCS Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ поколСния, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π° основана Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ измСнСниями Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ объСдинСниСм своих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π½ΠΎΡΠΈΡ‚ΡŒ свои измСнСния Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию рСпозитория Π±Π΅Π· Π²Π΅Π΄ΠΎΠΌΠ° Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². Π­Ρ‚ΠΎ допускаСт ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСти ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ локально Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своСй Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ измСнСния ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, тСстирования ΠΈΠ»ΠΈ развёртывания.

Когда Π²Π΅Ρ‚Π²ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ· Π½ΠΈΡ…, ΠΏΠΎ сСти ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ эти ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. ΠŸΡ€ΠΈ вытягивании ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ Π²Π΅Ρ‚Π²Π΅ΠΉ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ для создания свободных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π±Π»ΠΎΠ±Π°, Π΄Π΅Ρ€Π΅Π²Π° ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Git

Π‘Π»ΠΎΠ± с Ρ…ΡΡˆΠ΅ΠΌ 37d4e6c5c48ba0d245164c4e10d5f41140cab980 :

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π΅Ρ€Π΅Π²Π° с Ρ…ΡΡˆΠ΅ΠΌ b769f35b07fbe0076dcfc36fd80c121d747ccc04 :

ΠšΠΎΠΌΠΌΠΈΡ‚ с Ρ…ΡΡˆΠ΅ΠΌ dc512627287a61f6111705151f4e53f204fbda9b :

Mercurial: Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅

Mercurial создан Π² 2005 Π³ΠΎΠ΄Ρƒ ΠœΡΡ‚Ρ‚ΠΎΠΌ Макколлом ΠΈ написан Π½Π° Python. Он Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для хостинга ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Linux, Π½ΠΎ для этой Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Git. Π­Ρ‚ΠΎ вторая ΠΏΠΎ популярности систСма управлСния вСрсиями, хотя ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ€Π΅ΠΆΠ΅.

АрхитСктура

Mercurial β€” Ρ‚ΠΎΠΆΠ΅ распрСдСлённая систСма, которая позволяСт Π»ΡŽΠ±ΠΎΠΌΡƒ числу Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со своСй ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° нСзависимо ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Mercurial ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΈ Git, Π² Ρ‚ΠΎΠΌ числС сТатиС ΠΈ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ SHA-1, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ это ΠΈΠ½Π°Ρ‡Π΅.

НаконСц, Mercurial ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΈΠΏ revlog, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся changelog, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ список записСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ:

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² Mercurial

Π–ΡƒΡ€Π½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (changelog):

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎΠ± устройствС Mercurial:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *