πŸŽ‰πŸ™πŸ± 20 Π»Π΅Ρ‚ Git: всС Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, всС Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΉ

Π›Π΅Π³Π΅Π½Π΄Π°Ρ€Π½ΠΎΠΌΡƒ Git стукнуло 20! ВспоминаСм, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ Π½Π°Π·Ρ‹Π²Π°Π» Β«Ρ‚ΡƒΠΏΡ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°Β», стал Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ инструмСнтом для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‚ΡŒ Ρ€Π°Π· писал ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ просто Ρ…Ρ€Π°Π½ΠΈΠ» Ρ„Π°ΠΉΠ»Ρ‹.

πŸŽ‰πŸ™πŸ± 20 Π»Π΅Ρ‚ Git: всС Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, всС Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΉ
Данная ΡΡ‚Π°Ρ‚ΡŒΡ являСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ. Бсылка Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π».

Π”Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ (7 апрСля 2005 Π³.) Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ сдСлал ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Git. Π—Π° эти Π³ΠΎΠ΄Ρ‹ Git прСвратился ΠΈΠ· скромного ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ систСму контроля вСрсий Π²ΠΎ всСм ΠΌΠΈΡ€Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

πŸŽ‰πŸ™πŸ± 20 Π»Π΅Ρ‚ Git: всС Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, всС Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΉ

Для мСня это Π±Ρ‹Π»ΠΎ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅. Π― Π½Π°Ρ‡Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git вскорС послС Π΅Π³ΠΎ появлСния, стал соучрСдитСлСм GitHub, написал ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ ΠΎ Π½Π΅ΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт ΠΈ запустил Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡŽ β€” этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΌΠΈΡ€ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ ΠΈ мою Тизнь.

Π˜ΡΡ‚ΠΎΠΊΠΈ: ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΈ Π°Ρ€Ρ…ΠΈΠ²Ρ‹

πŸŽ‰πŸ™πŸ± 20 Π»Π΅Ρ‚ Git: всС Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, всС Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΉ

Git родился ΠΈΠ· разочарования сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ядра Linux Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… систСмах контроля вСрсий. БообщСство Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ использовало списки рассылки для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€” ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ, распрСдСлСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ с криптографичСской Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ.

Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс выглядСл Ρ‚Π°ΠΊ:

  1. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ Π°Ρ€Ρ…ΠΈΠ²Π° с зафиксированным состояниСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ скачивали ΠΈ распаковывали Π΅Π³ΠΎ.
  3. Вносили измСнСния (Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ исправлСния).
  4. Π‘ΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΠΏΠ°Ρ‚Ρ‡ Ρ‡Π΅Ρ€Π΅Π· GNU diff.
  5. ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ»ΠΈ ΠΏΠ°Ρ‚Ρ‡ Π² список рассылки.
  6. ΠžΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΈ измСнСния.
  7. ΠœΠ΅ΠΉΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π»ΠΈΠ±ΠΎ примСнял ΠΏΠ°Ρ‚Ρ‡, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π» ΠΏΡ€Π°Π²ΠΊΠΈ.
  8. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ 1-7.

По сути, эта схСма ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ распрСдСлСнной систСмой контроля вСрсий: Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ локальная копия, Π° Β«ΠΏΡ€Π°Π²ΠΎΠΌ Π½Π° слияниС» ΠΎΠ±Π»Π°Π΄Π°Π» Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ ΠΌΠΎΠ³ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ² Π½Π° сСрвСр.

Но процСсс оставался Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ β€” слоТно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ‚Ρ‡Π°ΠΌΠΈ, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ΅ΠΌ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ BitKeeper Π±Ρ‹Π» создан ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΈ нравился Линусу, Π½ΠΎ Π΅Π³ΠΎ лицСнзия Π½Π΅ соотвСтствовала Π΄ΡƒΡ…Ρƒ сообщСства.

⚠️ Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ
Git Π±Ρ‹Π» создан Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ систСма контроля вСрсий Π² чистом Π²ΠΈΠ΄Π΅, сколько ΠΊΠ°ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°Ρ‚Ρ‡Π°ΠΌΠΈ ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°ΠΌΠΈ β€” ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ снимки Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ различия. ИмСнно поэтому Π΅Π³ΠΎ структура Π΄Π°Π½Π½Ρ‹Ρ… (связанныС списки Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² Ρ„Π°ΠΉΠ»ΠΎΠ² с адрСсациСй ΠΏΠΎ содСрТимому) остаСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ с самого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ ΠΏΠΎ сСй дСнь.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Git: ΠΊΠ°ΠΊ всС Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ

Π Π°Π· ΡƒΠΆ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Git, Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π§Ρ‚ΠΎ ΡƒΠΌΠ΅Π» Git Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ своСго роТдСния?

Π­Ρ‚ΠΎ Ρ‚ΡƒΠΏΠΎΠΉ (Π½ΠΎ чСртовски быстрый) ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ содСрТимого Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ. Он Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ, Π½ΠΎ эффСктивно отслСТиваСт содСрТимоС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ содСрТал сСмь простых Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Ρ… инструмСнтов. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Π΅ Π½Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ git commit, Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, write-tree ΠΈ commit-tree (прСфикс git- появился лишь Ρ‡Π΅Ρ€Π΅Π· нСсколько нСдСль).

НСкоторыС ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΈΡΡŒ Π² «сантСхничСскиС» (Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅) ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎ сих ΠΏΠΎΡ€ (git cat-file, git write-tree). Π”Ρ€ΡƒΠ³ΠΈΠ΅ сильно измСнились (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ read-tree большС Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π» соврСмСнный git ls-files). Но Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ.

Π‘ самого Π½Π°Ρ‡Π°Π»Π° Git ΡƒΠΌΠ΅Π»:

  1. Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ «снимки» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ update-cache (ΠΏΠΎ сути, формируя tarball) ΠΈ write-tree для записи Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ….
  2. Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ commit-tree, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт измСнСния, внСсСнныС Π² Π½ΠΎΠ²Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ², ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π°Ρ€Ρ…ΠΈΠ²Π°, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΡ‘Π».
  3. Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cat-file, read-tree ΠΈ show-diff.

Линус ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π» ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ «сантСхнику», ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс (Β«Ρ„Π°Ρ€Ρ„ΠΎΡ€Β»). Он стрСмился ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эффСктивноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ истории Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ², Π° Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ систСму контроля вСрсий, прСдполагая, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ этот слой.

Как я познакомился с Git: ΠΎΡ‚ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Ρ… экранов Π΄ΠΎ GitHub

Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ я столкнулся с Git, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π» с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ником Π₯СнгСвСльдом Π² стартапС Reactrix. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ использовали Git Π½Π΅ ΠΊΠ°ΠΊ систСму контроля вСрсий (ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ сСгодня), Π° ΠΊΠ°ΠΊ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ систСму отслСТивания ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° β€” Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄ΡƒΠΌΠΊΠ΅ Линуса.

ΠœΡ‹ обслуТивали ΡΠ΅Ρ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Ρ… экранов с «тяТСлыми» ΠΌΠ΅Π΄ΠΈΠ°Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π‘ΠΎΡ‚Π½ΠΈ устройств Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ², ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈΡΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ сотовыС ΠΊΠ°Π½Π°Π»Ρ‹, Π° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ постоянно мСнялся. Нам Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ эффСктивно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ: «устройству А Π½ΡƒΠΆΠ½Ρ‹ Ρ€ΠΎΠ»ΠΈΠΊΠΈ 1, 2, 3, устройству Π‘ β€” Ρ€ΠΎΠ»ΠΈΠΊΠΈ 2, 3 ΠΈ 4Β», с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.

Git стал для нас ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ распространСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» расписаниС, создавал ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Ρ€ΠΎΠ»ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ» ΠΈΡ… Π² Π²Π΅Ρ‚ΠΊΡƒ устройства, Π° Π½ΠΎΡ‡ΡŒΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ устройство выполняло fetch ΠΈ checkout.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

  1. ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с Π΄Π΅Π»ΡŒΡ‚Π°-компрСссиСй.
  2. ΠžΠ±Ρ‰ΠΈΠ΅ рСсурсы Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Π±Π»ΠΎΠ± для Ρ€Π°Π·Π½Ρ‹Ρ… контСкстов.
  3. Высячи ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· дублирования ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

Ник Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ участвовал Π² Ρ€Π°Π½Π½Π΅ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ Git (Π΄ΠΎΠ±Π°Π²ΠΈΠ» SSL Π² http-fetch, возобновляСмыС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, HTTP-push). Π•Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‡ приняли Ρ‡Π΅Ρ€Π΅Π· 6 мСсяцСв послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Линуса.

Мои ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ трудности с ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ Git ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ·Π°Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈ мСня ΠΊ созданию Git Community Book, руководства Git Internals, сайта git-scm.com ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ Pro Git β€” всС это ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ мСня Π² GitHub.

ВСрсия git-scm.com, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π²Ρ‹Π»ΠΎΠΆΠΈΠ» Π² 2008 Π³ΠΎΠ΄Ρƒ. Π­Ρ‚ΠΎ Π±Π»ΠΎΠ±, ΠΏΠΎΠ΅Π΄Π°ΡŽΡ‰ΠΈΠΉ Π΄Π΅Ρ€Π΅Π²ΡŒΡ

Π˜ΡΡ‚ΠΎΠΊΠΈ соврСмСнного Git

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Β«Π³Π»ΡƒΠΏΡ‹ΠΉ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°Β» стал самой популярной систСмой контроля вСрсий? Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Git Π½Π΅ проСктировался с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния удобства использования. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ мСсяцы ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Ρ‹Π»ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌΠΈ β€” Π΄Π°ΠΆΠ΅ Π·Π½Π°Ρ‚ΠΎΠΊΠΈ «сантСхничСских» ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ ΡƒΠ·Π½Π°Π»ΠΈ Π±Ρ‹ Ρ€Π°Π½Π½ΠΈΠ΅ rev-tree, mkdelta ΠΈΠ»ΠΈ tar-tree.

Git задумывался ΠΊΠ°ΠΊ низкоуровнСвая инфраструктура, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты построят свои систСмы контроля вСрсий. ВысокоуровнСвыС Β«Ρ„Π°Ρ€Ρ„ΠΎΡ€ΠΎΠ²Ρ‹Π΅Β» ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ сСгодня, постСпСнно ΠΏΡ€ΠΎΡΠ°Ρ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ Π² систСму Π³ΠΎΠ΄Π°ΠΌΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡΡΡŒ ΠΊΠ°ΠΊ шСлл-скрипты для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Π’ Ρ€Π°Π½Π½ΠΈΠ΅ Π΄Π½ΠΈ сущСствовало нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… инструмСнтов Линуса. Π‘Π°ΠΌΡ‹ΠΌ популярным Π±Ρ‹Π» git-pasky, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΠΉΡΡ Π² "Cogito" ΠŸΠ΅Ρ‚Ρ€Π° Π‘Π°ΡƒΠ΄ΠΈΡˆΠ°, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ всСго Ρ‡Π΅Ρ€Π΅Π· нСсколько Π΄Π½Π΅ΠΉ послС самого Git.

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π³Ρ€Π°Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Β«Ρ„Π°Ρ€Ρ„ΠΎΡ€ΠΎΠΌΒ» ΠΈ «сантСхникой» Ρ€Π°Π·ΠΌΡ‹Π²Π°Π»Π°ΡΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ инструмСнты Π² ядрС Git стали ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с внСшними скриптами. К 2007 Π³ΠΎΠ΄Ρƒ Cogito Π±Ρ‹Π» Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½, ΠΈ идСя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Β«Ρ„Π°Ρ€Ρ„ΠΎΡ€ΠΎΠ²ΠΎΠ³ΠΎΒ» слоя Π½Π°Π΄ Git Π±Ρ‹Π»Π° оставлСна.

ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ письма Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΠΈΠ»Π΅Ρ‚Π½Π΅ΠΉ давности, ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· нас ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ git log

ΠŸΠ΅Ρ€Π²Π°Ρ вСрсия git log Π±Ρ‹Π»Π° элСмСнтарной ΠΈ Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ git-rev-list --pretty:

#!/bin/sh
git-rev-list --pretty HEAD | LESS=-S ${PAGER:-less}

МногиС соврСмСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ скрипты Π½Π° Shell ΠΈΠ»ΠΈ Perl, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… пСрСписали Π½Π° C для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ портируСмости.

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ git log выглядСл ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ сСйчас.

$ git-log-script
commit d9f3be7e2e4c9b402bbe6ee6e2b39b2ee89132cf
Author: Junio C Hamano <gitster@pobox.com>
Date:   Fri Apr 5 12:34:56 2024 -0700

    Fix bug

Π ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ git rebase

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rebase Π½Π°Ρ‡Π°Π»Π°ΡΡŒ Π² июнС 2005 Π³ΠΎΠ΄Π° с обсуТдСния Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов ΠΌΠ΅ΠΆΠ΄Ρƒ Π”ΠΆΡƒΠ½ΠΈΠΎ Π₯Π°ΠΌΠ°Π½ΠΎ ΠΈ Линусом Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ΡΠΎΠΌ.

Π”ΠΆΡƒΠ½ΠΈΠΎ описал свой процСсс Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Π²ΡˆΠΈΠΉ:

  1. ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽ с HEAD-Π²Π΅Ρ‚ΠΊΠΈ Линуса.
  2. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽ Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².
  3. Π—Π°ΠΏΡƒΡΠΊΠ°ΡŽ git format-patch (отсутствуСт Π² Π΄Π΅Ρ€Π΅Π²Π΅ Линуса) для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ.
  4. ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽ ΠΈΡ… ΠΈ ΠΆΠ΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‚ приняты.
  5. Π”Π΅Π»Π°ΡŽ pull ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ Линуса.
  6. ΠžΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°ΡŽ свой HEAD, дСлая HEAD Линуса своим HEAD, ΠΏΡ€ΠΈ этом сохраняя измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я внСс с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ„ΠΎΡ€ΠΊΠ° ΠΎΡ‚ Π½Π΅Π³ΠΎ. Для этого я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ jit-rewind.
  7. ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ ΠΏΠ°Ρ‚Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Линус ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΠ», ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я всС Π΅Ρ‰Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ, создавая ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π° ΠΏΠ°Ρ‚Ρ‡. Для этого я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ jit-patch ΠΈ jit-commit -m.
  8. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡΡŒ ΠΊ ΡˆΠ°Π³Ρƒ 2.

Линус ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ re-base, которая Π±Ρ‹ пСрСносила Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½ΠΎΠ²ΠΎΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ вСрсии. Π’Π°ΠΊ Ρ€ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ концСпция, ΡΡ‚Π°Π²ΡˆΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π² Git.

Как Осьминог стал Ρ‡Π°ΡΡ‚ΡŒΡŽ Git ΠΈ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ» ΠžΠΊΡ‚ΠΎΠΊΠΎΡ‚Π°

Octocat

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ слова "Octopus" Π² спискС рассылки Git ΠΎΡ‚Π½ΠΎΡΠΈΠ»ΠΎΡΡŒ ΠΊ особому Ρ‚ΠΈΠΏΡƒ слияния с нСсколькими родитСлями. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ "octopus merge" стал ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ стратСгиСй слияния Π² Git.

Π’ΠΎΠΌ Π½Π°Ρ‡Π°Π» ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ»ΠΈΠΏΠ°Ρ€Ρ‚Ρ‹ с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ осьминога, ΠΈ это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ Π‘Π°ΠΉΠΌΠΎΠ½Π° Оксли оказалось самым ΠΌΠΈΠ»Ρ‹ΠΌ ΠΈΠ· всСх подходящих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². Π’Π°ΠΊ родился "Octocat" (ΠžΠΊΡ‚ΠΎΠΊΠΎΡ‚) β€” талисман GitHub, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой ΠΊΠΎΡ‚ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ сущСство с Ρ‰ΡƒΠΏΠ°Π»ΡŒΡ†Π°ΠΌΠΈ осьминога.

Π‘ΡƒΠ΄ΡƒΡ‰Π΅Π΅ Git

Π—Π°Π±Π°Π²Π½ΠΎ, Ρ‡Ρ‚ΠΎ я Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Git Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ задумывался. GitButler примСняСт Git Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΡ€ΠΈ отслСТивании ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… git для отслСТивания истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС, Git ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ остаСтся чСртовски Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Β«Ρ‚ΡƒΠΏΡ‹ΠΌ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°Β», ΠΊΠ°ΠΊ ΠΈ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π» Линус.

Π˜Ρ‚Π°ΠΊ, с Π΄Π½Π΅ΠΌ роТдСния, Git. Π’Ρ‹ всС Π΅Ρ‰Π΅ странный. Π’Ρ‹ всС Π΅Ρ‰Π΅ прСкрасСн. Бпасибо Π·Π° всС.

πŸ’» Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста»

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
28 января 2018

Π‘ Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ Π°ΠΉΡ‚ΠΈΡˆΠ½ΠΈΠΊΠΎΠΌ, Ссли Π²Ρ‹ Π΄Π°Π»Π΅ΠΊΠΈ ΠΎΡ‚ IT

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ расскаТСм, ΠΊΠ°ΠΊΠΈΠ΅ шаги ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ построит...
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
18 октября 2017

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ прСдставлСны основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Git сСгодня - это ΠΎΡ‡Π΅Π½ΡŒ популярная систСма контроля вСрсий. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡˆΠΏΠ°Ρ€Π³Π°Π»...
admin
23 фСвраля 2017

Git Π·Π° полчаса: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π’ послСдниС Π³ΠΎΠ΄Ρ‹ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ git дСмонстрируСт Π²Π·Ρ€Ρ‹Π²Π½ΠΎΠΉ рост. Π­Ρ‚Π° систСма ...