Π Π°Π·Π½ΠΎΠ΅

Git Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ: ЕТСднСвная Ρ€Π°Π±ΠΎΡ‚Π° с Git / Π₯Π°Π±Ρ€

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория git. Π£Ρ€ΠΎΠΊ 2

Π£Ρ€ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ познакомимся с рСпозиториями git, научимся ΠΈΡ… ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ·Π½Π°Π΅ΠΌ, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ssh-ΠΊΠ»ΡŽΡ‡ΠΈ

Π’ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ. Π§Π°ΡΡ‚ΡŒ 1. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°


ВсС ΠΎ рСпозиториях

  • Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅
  • ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
  • ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ
  • создаСм собствСнный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
  • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ рСпозитория
  • Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ssh-ΠΊΠ»ΡŽΡ‡ΠΈ


ssh-ΠΊΠ»ΡŽΡ‡ΠΈ

  • Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹
  • Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ свой ΠΊΠ»ΡŽΡ‡

Π’ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ. Π§Π°ΡΡ‚ΡŒ 2

  • Π§Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ: github ΠΈΠ»ΠΈ bitbucket?
  • ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ssh-ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ ΡƒΡ€ΠΎΠΊΠ°


ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС ΡƒΡ€ΠΎΠΊΠ°, основныС инструкции для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки ΠΈ совСты.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ


Π­Ρ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, Π³Π΄Π΅ хранится информация ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅:

  • Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • слуТСбная информация


Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ хранится Π² скрытой ΠΏΠ°ΠΏΠΊΠ΅ .git Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

МоТно Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с git локально


Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ. Но ΠΏΡ€ΠΈ этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ находится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° нашСй машинС ΠΈ Π² случаС ΠΏΠΎΠ»ΠΎΠΌΠΊΠΈ ΠΆΠ΅Π»Π΅Π·Π° ΠΈΠ»ΠΈ случайной ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ Π½Π΅ смоТСм Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ


Π­Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хранится Π½Π° нашСй машинС, Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ Ρ‚Π° самая скрытая ΠΏΠ°ΠΏΠΊΠ° .git

Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½


Π­Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хранится Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Π½Π° сторонних сСрвисах, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΏΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ git.


ΠŸΠ»ΡŽΡΡ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория

  • выполняСт Ρ€ΠΎΠ»ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ
  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅
  • Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставляСт хостинг. НапримСр, визуализация истории ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ прямо Π² Π²Π΅Π±-интСрфСйсС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅


Π­Ρ‚ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΏΠ΅Ρ€Π²ΠΎΠ΅ дСйствиС ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.
ΠŸΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π½Π°ΡˆΡƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ вся Π΅Π³ΠΎ история.
Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ доступ ΠΊ истории Π½Π΅ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π°Ρ‡Π°Π»Π° нашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π° с самого Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Как ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚


Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ Π΅Π΅ сами ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Π½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.
Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ vuejs — https://github.com/vuejs/vue.git


НабСрСм Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС


    $ git clone https://github.com/vuejs/vue.git


ΠŸΡ€ΠΈ этом Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ создастся ΠΏΠ°ΠΏΠΊΠ° vue, Π² Π½Π΅ΠΉ окаТутся всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° vue ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ скрытая ΠΏΠ°ΠΏΠΊΠ° .git, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ сам Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈΠ»ΠΈ информация ΠΎ Π½Π΅ΠΌ.

Как ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ


ΠŸΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ создаСтся ΠΏΠ°ΠΏΠΊΠ° с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈ Ρƒ рСпозитория. Но ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ


    $ git clone https://github.com/vuejs/vue.git vue-new


Π“Π΄Π΅ vue-new — Π½ΡƒΠΆΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ.

Π‘Π²ΠΎΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ


Для своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π°ΠΌ понадобится собствСнный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. МоТно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ локально, Π½ΠΎ ΠΏΠ»ΡŽΡΡ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ рассматривали Π²Ρ‹ΡˆΠ΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ хостинг для Π½Π°ΡˆΠΈΡ… git-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Π“Π΄Π΅ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ


Π•ΡΡ‚ΡŒ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², самыС извСстныС — это github ΠΈ bitbucket. НуТно Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ.


На самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΏΠ°Ρ€ΡŒΡ‚Π΅ΡΡŒ. Π£ Π½ΠΈΡ… схоТий Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», ΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git ΠΌΡ‹ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹.
bitbucket ΠΌΠ½Π΅ нравится большС ΠΈΠ·-Π·Π° интСрфСйса, Π½ΠΎ Π² ΡƒΡ€ΠΎΠΊΠ°Ρ… Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ github ΠΈΠ·-Π·Π° Π΅Π³ΠΎ большСй популярности.


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΡƒΡ€ΠΎΠΊΠΈ, Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° github. Если Ρƒ вас Π½Π΅Ρ‚ Ρ‚Π°ΠΌ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°, Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΡƒ рСгистрации ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сразу Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС — https://github.com/

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² github


ПослС рСгистрации созданиС рСпозитория доступно с Π³Π»Π°Π²Π½ΠΎΠΉ страницы github. ΠŸΡ€ΠΈ создании Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Ρ‚ΠΈΠΏ (ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ). На ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅ΠΌ внимания.

ΠŸΡ€Π°Π²Π° Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅


Π•ΡΡ‚ΡŒ 2 Ρ‚ΠΈΠΏΠ° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²:

  • ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ (public), ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ всСм
  • ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ (private), доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΊΡ€ΡƒΠ³Ρƒ Π»ΠΈΡ† — Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π½Π°ΠΌ самим


ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΈ для opensource-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Ρ€Π΅Π·ΡŽΠΌΠ΅. Пока Π½Π°ΠΌ это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.


Для сСбя Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Для этого Π½Π°ΠΌ понадобятся ssh-ΠΊΠ»ΡŽΡ‡ΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ssh-ΠΊΠ»ΡŽΡ‡ΠΈ


ssh-ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° сСрвСрС ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΏΠΎ бСзопасному ssh-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ.
Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ssh-ΠΊΠ»ΡŽΡ‡ Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° сСрвСр Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Волько Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ доступ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.


ssh-ΠΊΠ»ΡŽΡ‡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ прямого ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ git, Π½ΠΎ Ρ‚Π°ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ находятся Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… сСрвСрах, Ρ‚ΠΎ ssh-ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для разграничСния доступа ΠΊ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ рСпозиториям.


ssh-ΠΊΠ»ΡŽΡ‡ состоит ΠΈΠ· ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ: ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Π­Ρ‚ΠΎ просто 2 тСкстовых Ρ„Π°ΠΉΠ»Π°:

  • /домашний-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³/.ssh/id_rsa.pub — ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ
  • /домашний-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³/.ssh/id_rsa — ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ


ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ пСрСдаСтся сторонним сСрвСрам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, github, для открытия доступа Π½Π° эти сСрвСра. ΠŸΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ хранится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° нашСй машинС ΠΈ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ пСрСдаСтся.
Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π° Ρƒ нас просят ssh-ΠΊΠ»ΡŽΡ‡, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ доступ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ сСрвСр, ΠΌΡ‹ ΠΎΡ‚Π΄Π°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, id_rsa.pub

Как ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ssh-ΠΊΠ»ΡŽΡ‡


ssh-ΠΊΠ»ΡŽΡ‡ΠΈ сами собой Π½Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ, Π½ΠΎ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ установлСны Ρ€Π°Π½ΡŒΡˆΠ΅. Запустим Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹


    $ cd ~/.ssh
    $ ls -l


Если Π²ΠΈΠ΄ΠΈΠΌ Ρ„Π°ΠΉΠ»Ρ‹ id_rsa ΠΈ id_rsa.pub — ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ, ΠΊΠ»ΡŽΡ‡ΠΈ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ.


Если этих Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅Ρ‚, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ ssh-keygen. Π’ Windows ΠΎΠ½Π° устанавливаСтся вмСстС с git, Π² Linux ΠΈ MacOS ΠΏΡ€ΠΈ нСобходимости установитС. Π’ Linux, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ


    $ sudo apt install ssh-keygen


ПослС этого Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, запустив ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅


    $ ssh-keygen -t rsa -b 4096 -C "[email protected]"


ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ


    $ ls -l
    total 24
    -rw-------  1 sn8 sn8 1675 Feb 11  2017 id_rsa
    -rw-r--r--  1 sn8 sn8  392 Feb 11  2017 id_rsa.pub
    -rw-r--r--  1 sn8 sn8 5746 Oct 28 21:52 known_hosts


Появились Ρ„Π°ΠΉΠ»Ρ‹ id_rsa ΠΈ id_rsa.pub — Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΊΠ»ΡŽΡ‡ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ сгСнСрированы.


known_hosts — это Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ssh прописываСт сСрвСра, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ.
ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ github Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ ΠΊ github.com (Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ yes Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅)

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ssh-ΠΊΠ»ΡŽΡ‡ Π² настройках github


ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ id_rsa.pub ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ содСрТимоС. Π’ настройках github ΠΈΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π» «SSH ΠΈ GPG keys» — https://github.com/settings/keys.
Π–ΠΌΠ΅ΠΌ «New SSH key», Π·Π°Π΄Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, имя, ΠΈ вставляСм Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, прямо тСкстом. ВсС, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ доступ ΠΊ нашим ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ рСпозиториям.

Π”Π²Π° способа создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°


ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π£Π΄ΠΎΠ±Π½Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° github ΠΈ ΡΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ пустой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ.


Π’Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. НуТно Π·Π°ΠΉΡ‚ΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Π½Π° github. Π­Ρ‚ΠΎ называСтся инициализация.


Рассмотрим ΠΎΠ±Π° способа.

ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚


Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° github, Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ first-site.
Π― зарСгистрировался ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Webdevkin, моя ссылка для клонирования Π±ΡƒΠ΄Π΅Ρ‚ такая — [email protected]:Webdevkin/first-site.git. Π’Π°ΡˆΠ° зависит ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.


ИдСм Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ запускаСм


    $ git clone [email protected]:Webdevkin/first-site.git


Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ first-site — это ΠΈ Π΅ΡΡ‚ΡŒ наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.


P.S. Π£ вас ΡΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π΅ получится — ΠΎΠ½ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свой :-)

НСпустой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚


Допустим, Ρƒ нас Π½Π° локальной машинС ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ second-site. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π² github Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ second-site. Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹


    $ git init
    $ git add .
    $ git commit -m "Initial commit"
    $ git remote add origin [email protected]:Webdevkin/second-site.git
    $ git push -u origin master


ВсС, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ add, commit ΠΈ push ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠ°Ρ….


Π­Ρ‚ΠΎ СдинствСнный ΡƒΡ€ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Ρ€Π°Π·Π±ΠΈΡ€Π°Π»ΠΈΡΡŒ с тонкостями Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². Π’ дальнСйшСм Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ = ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π§Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ

  • github ΠΈΠ»ΠΈ bitbucket? Для Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π΅Π²Π°ΠΆΠ½ΠΎ, ΠΎΠ±Π° сСрвиса Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ бСсплатно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Для open source ΠΈΠ»ΠΈ Ρ€Π΅Π·ΡŽΠΌΠ΅ — github
  • Π½Π΅ ΡƒΠ²Π»Π΅ΠΊΠ°ΠΉΡ‚Π΅ΡΡŒ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΏΠ°ΠΏΠΊΡƒ со своим Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ. Π•ΡΡ‚ΡŒ шанс Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ, самому ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ
  • Π½Π΅ ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ΠΈ. ΠžΡ‚Π΄Π°Π΅ΠΌ Π²ΠΎΠ²Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ id_rsa.pub
  • ΠΏΡ€ΠΈ смСнС Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ssh-ΠΊΠ»ΡŽΡ‡ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ, Π° ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… со старой ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π’ΠΎΠ³Π΄Π° Π½Π΅ придСтся Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π° сСрвСрах


НСмного ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ssh-ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ssh-ΠΊΠ»ΡŽΡ‡ΠΈ с ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ


Π₯ΠΎΡ‡Ρƒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ эту Ρ‚Π΅ΠΌΡƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ Π½Π° Π½ΠΎΠ²ΠΎΠΉ машинС Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Но Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ дСйствия

  • Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ id_rsa ΠΈ id_rsa.pub со старой ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π° Π½ΠΎΠ²ΡƒΡŽ
  • ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ„Π°ΠΉΠ»Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ»ΡŽΡ‡ΠΈ окаТутся слишком «ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ» для записи ΠΈ потрСбуСтся ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠΌ ΠΏΡ€Π°Π²Π° доступа — sudo chmod 700 ~/.ssh/*
  • Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ssh-add

Бсылки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ


На этом всС. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ сдСлаСм ΠΏΠ΅Ρ€Π²Ρ‹Π΅ измСнСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π² Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€Π΅Π»Π΅ΡΡ‚ΡŒ git.


Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Π΄ΠΎ встрСчи!

ВсС ΡƒΡ€ΠΎΠΊΠΈ курса

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ слСдуСт…

Настройка рСпозитория | Atlassian Git Tutorial

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

Π’ Π΄Π°Π½Π½ΠΎΠΌ руководствС ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС вопросы:

  • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория Git
  • ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ рСпозитория Git
  • ΠšΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ вСрсии Ρ„Π°ΠΉΠ»Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
  • ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория Git для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹
  • РаспространСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для управлСния вСрсиями Git

По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ модуля Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ соСдинСниС с сСрвисом хостинга Git (Bitbucket).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git?

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git β€” это Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ вСрсии ΠΊΠΎΠ΄Π° для доступа ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория: git init

Для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git init. ΠšΠΎΠΌΠ°Π½Π΄Ρƒ git init Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· для ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ настройки Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ созданию Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° .git Π² вашСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ создана новая главная Π²Π΅Ρ‚ΠΊΠ°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ вСрсии ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с использованиСм Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория Git

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ прСдполагаСтся, Ρ‡Ρ‚ΠΎ Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ cd для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git init.

 cd /path/to/your/existing/code git init

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git init ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ исполнСнию описанной Π²Ρ‹ΡˆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

 git init 

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° страницу git init, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git init.

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ рСпозитория: git clone

Если ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΡƒΠΆΠ΅ настроСн Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнным способом ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΎΠ½ являСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° clone. ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° git init, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² дальнСйшСм выполняСт всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ контроля вСрсий ΠΈΠ· своСго локального рСпозитория.

 git clone 

ΠšΠΎΠΌΠ°Π½Π΄Ρƒ git clone Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ для создания ΠΊΠΎΠΏΠΈΠΈ (клонирования) ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git clone пСрСдаСтся URL-адрСс рСпозитория. Git ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сСтСвых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² URL-адрСсов. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ SSH-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Git. URL-адрСса SSH Π² Git ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаблон: git@HOSTNAME:USERNAME/REPONAME.git

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ URL-адрСса SSH Π² Git ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄: [email protected]:rhyolight/javascript-data-store.git, Π° Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ значСния ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

  • HOSTNAME: bitbucket.org
  • USERNAME: rhyolight
  • REPONAME: javascript-data-store

ПослС исполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ послСдниС вСрсии Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. НазваниС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ REPONAME, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС: javascript-data-store. Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π±ΡƒΠ΄Π΅Ρ‚ вся история ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданная главная Π²Π΅Ρ‚ΠΊΠ°.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git clone ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… URL-адрСсов Π² Git см. Π½Π° страницС git clone.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ: git add ΠΈ git commit

Π£ вас появился Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, созданный ΠΏΡƒΡ‚Π΅ΠΌ клонирования ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² вСрсиях Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ прСдполагаСтся, Ρ‡Ρ‚ΠΎ Π²Ρ‹ настроили ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /path/to/project. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги.

  • Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π½Π° /path/to/project
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» CommitTest.txt с тСкстом ~«тСст для обучСния Ρ€Π°Π±ΠΎΡ‚Π΅ с GitΒ»~
  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git add Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» CommitTest.txt Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ²
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ с ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅
 cd /path/to/project echo "тСст для обучСния Ρ€Π°Π±ΠΎΡ‚Π΅ с Git" >> CommitTest.txt git add CommitTest.txt git commit -m "Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° CommitTest.txt Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ"

По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ» CommitTest.txt добавится ΠΊ истории рСпозитория, ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ прСдставлСны Π΄Π²Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Git: add ΠΈ commit. Π­Ρ‚ΠΎΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ±Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Ρ‹ Π½Π° страницах git add ΠΈ git commit. ΠšΠΎΠΌΠ°Π½Π΄Ρƒ git add часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ с Ρ„Π»Π°Π³ΠΎΠΌ --all. Команда git add --all добавляСт всС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΈ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ обновляСт Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ рСпозитория.

БовмСстная Ρ€Π°Π±ΠΎΡ‚Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… рСпозиториях: git push

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ рабочая копия Π² Git сущСствСнно отличаСтся ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ исходного ΠΊΠΎΠ΄Π° ΠΈΠ· рСпозитория SVN. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ SVN, Π² Git Π½Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ копиями ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ β€” всС ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ рСпозиториями Git.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ совмСстная Ρ€Π°Π±ΠΎΡ‚Π° Π² Git ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ отличаСтся ΠΎΡ‚ совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² SVN. Π’ SVN Ρ€Π°Π±ΠΎΡ‚Π° строится Π½Π° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, Π° модСль совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Git основана Π½Π° взаимодСйствии ΠΌΠ΅ΠΆΠ΄Ρƒ рСпозиториями. ВмСсто Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ SVN Π² Git Π²Ρ‹ отправляСтС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ рСпозитория Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡ… Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

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

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ чистых ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²

Если Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ (Β«Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория») для настройки локального рСпозитория Π²Ρ‹ использовали ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git clone, ваш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ² ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ совмСстной Ρ€Π°Π±ΠΎΡ‚Π΅. Команда git clone автоматичСски настроит Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ remote Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ URL-адрСсу Git, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ послС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»Π° ΠΈ выполнСния ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git push, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эти измСнСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Если Π²Ρ‹ использовали ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git init для создания рСпозитория с нуля, Ρƒ вас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ измСнСния. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° сСрвис Git-хостинга (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Bitbucket) ΠΈ создаСт Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ρ‚Π°ΠΌ. Π”Π°Π½Π½Ρ‹ΠΉ сСрвис прСдоставит URL-адрСс Git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git push Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° хостингС. ПослС создания ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ хостингС Π²Π°ΠΌ понадобится ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² привязку. Π­Ρ‚ΠΎΡ‚ процСсс описываСтся Π΄Π°Π»Π΅Π΅ Π² руководствС ΠΏΠΎ установкС ΠΈ настройкС.

Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ собствСнный ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ «чистый Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉΒ». Для этого ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git init ΠΈ git clone ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ --bare. НаиболСС популярная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° использования чистого рСпозитория β€” созданиС ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория Git

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ настройка: git config

ПослС настройки ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π΅Π³ΠΎ URL-адрСс Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» git config, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΡΡ‚ΠΎΡΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ для Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ. Π’Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСдоставляСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git remote.

 git remote add 

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° привяТСт ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΠΎ адрСсу ΠΊ ссылкС Π² вашСм локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ . ПослС привязки ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ push.

 git push -u 

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° помСстит Π²Π΅Ρ‚ΠΊΡƒ локального рСпозитория с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ .

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git remote см. Π½Π° страницС ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Git.

Помимо конфигурирования URL-адрСса ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Git, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ элСктронный адрСс. Команда git config позволяСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡŽ Git (ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ) ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ настройки: ΠΎΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ Π΄ΠΎ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ ΠΈ характСристик рСпозитория. НиТС пСрСчислСны распространСнныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Git Ρ…Ρ€Π°Π½ΠΈΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² (Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ), ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ) ΠΈΠ»ΠΈ всСй систСмы (систСмный):

  • Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ: /.git/config β€” настройки Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ рСпозитория.
  • Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ: /.gitconfig β€” настройки Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π—Π΄Π΅ΡΡŒ хранятся настройки с Ρ„Π»Π°Π³ΠΎΠΌ —global.
  • БистСмный: $(prefix)/etc/gitconfig β€” настройки Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ всСй систСмы.

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ имя Π°Π²Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„Π»Π°Π³ --global.

 git config --global user.name 

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π΄Π°Π΅Ρ‚ имя Π°Π²Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° --local ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° уровня ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ установкС значСния user.name для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ локального рСпозитория.

 git config --local user.email 

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π΄Π°Π΅Ρ‚ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π°Π²Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

 git config --global alias.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ быстрыС клавиши для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git. Π­Ρ‚ΠΎ мощная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для создания собствСнных ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ клавиш для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Git. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 git config --global alias.ci commit

Π’Π°ΠΊ создаСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° ci, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ сокращСниС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git commit. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± алиасах Π² Git см. Π½Π° страницС git config.

 git config --system core.editor 

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠ°ΠΊ git commit, для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. АргумСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΡƒΡŽ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, vi). Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ прСдставлСн Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ --system. АргумСнт --system устанавливаСт настройку Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ всСй систСмы, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ всС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± уровнях ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ см. Π½Π° страницС ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git.

 git config --global --edit

Π’ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» глобальной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для рСдактирования Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство ΠΏΠΎ настройкС тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° для Git см. Π½Π° страницС Git config.

ПояснСния

ВсС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… тСкстовых Ρ„Π°ΠΉΠ»Π°Ρ…, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git config β€” это всСго лишь ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, установку Git слСдуСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв понадобится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π»Π°Π³ --global. Одно ΠΈΠ· Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ элСктронный адрСс Π°Π²Ρ‚ΠΎΡ€Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π»ΠΈΡ‡Π½Ρ‹ΠΉ элСктронный адрСс для Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ элСктронный адрСс β€” для Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

Git Ρ…Ρ€Π°Π½ΠΈΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ всСй систСмы.

  • /.git/config β€” настройки Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ рСпозитория.
  • ~/.gitconfig β€” Π»ΠΈΡ‡Π½Ρ‹Π΅ настройки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π—Π΄Π΅ΡΡŒ хранятся настройки с Ρ„Π»Π°Π³ΠΎΠΌ —global.
  • $(prefix)/etc/gitconfig β€” настройки Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ всСй систСмы.

Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² этих Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ настройки ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ систСмныС настройки. Если Π²Ρ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих Ρ„Π°ΠΉΠ»ΠΎΠ², Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅:

 [user] name = John Smith email = [email protected] [alias] st = status co = checkout br = branch up = rebase ci = commit [core] editor = vim

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти значСния Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, эффСкт Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ использованию ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git config.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

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

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ΡΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git config

 git --global user.name "John Smith" git config --global user.email [email protected]

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€

 git config --global core.editor vim

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ алиасы ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ SVN

 git config --global alias.st status git config --global alias.co checkout git config --global alias.br branch git config --global alias.up rebase git config --global alias.ci commit

Боздастся Ρ„Π°ΠΉΠ» ~ /.gitconfig, описанный Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git config см. Π½Π° страницС Git config.

РСзюмС

ΠœΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git двумя способами: git init ΠΈ git clone. Π­Ρ‚ΠΈΠΌ руководством ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ нСобходимости управлСния исходным ΠΊΠΎΠ΄ΠΎΠΌ ПО ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ΠΎΠΌ, ΠΏΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ трСбуСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π»ΠΈ прСдставлСны ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git add, git commit, git push ΠΈ git remote ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ простыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡ… использования.

ΠŸΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ нашС руководство ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ систСму Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΊΠΎΠ΄Π° для своСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² Git. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ локально ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория

Π’Β Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ мы рассмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ пустой Git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠœΡ‹Β ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π°Β Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π°Β ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Github.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ пустой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡƒΡΡ‚ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для вашСго Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ рСпозитория ΠΈΒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π²Β Π½Π΅Π΅:

mkdir myproject
cd myproject

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ в нашСй Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git init

Π’Β Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создан Π½ΠΎΠ²Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ пустой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. На экран Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ сообщСниС Π²ΠΈΠ΄Π°:

Initialized empty Git repository in /path/to/myproject/.git/

Π’Β Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ myproject появится скрытая ΠΏΠ°ΠΏΠΊΠ° .git. Π•Π΅Β ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ls -al

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ·Β ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ у вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹Β Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория выполняСтся Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ описано Π²Ρ‹ΡˆΠ΅. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π²Β ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

cd myproject

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:

git init

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ в индСкс ΠΈΒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚:

git add -A
git commit -m "First commit."

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (Π½Π°Β ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Github)

Вы создали Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π°Β Github, Ρ‚Π΅ΠΌ самым вы фактичСски создадитС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π°Β https://githib.com ΠΈΒ Π²ΠΎΠΉΠ΄ΠΈΡ‚Π΅ в свой Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ New repository (Новый Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ). ΠΠ°Β ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΉΡΡ страницС Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя рСпозитория (Repository name) ΠΈΒ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Create repository.

В своСм локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git remote add origin https://github.com/username/myproject.git

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с имСнСм origin, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ на ваш Github-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Пока ΠΌΡ‹Β Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ запись ΠΎΠ±Β ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git push, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ всС ваши измСнСния Π½Π°Β ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:

git push -u origin master

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ввСсти Π»ΠΎΠ³ΠΈΠ½ ΠΈΒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Π²Β Github. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

$ git push -u origin master
Username for 'https://github.com': [email protected]
Password for 'https://[email protected]@github.com':
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 252 bytes | 252.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'master' on GitHub by visiting:
remote: https://github.com/username/myproject/pull/new/master
remote:
To https://github.com/username/myproject.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

Π’Β ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git push ΠΌΡ‹Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠ»ΡŽΡ‡ -u. Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ master с удалСнной origin/master (в нашСм случаС ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ нС сущСствовало, ΠΎΠ½Π° автоматичСски Π±Ρ‹Π»Π° создана). Π’Π°ΠΊ ΠΊΠ°ΠΊ связь установлСна, Ρ‚ΠΎΒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ выполнСния git push ΠΈΠ·Β Π²Π΅Ρ‚ΠΊΠΈ мастСр ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π΅Π· указания Π²Π΅Ρ‚ΠΎΠΊ. Π’ΠΎΒ Π΅ΡΡ‚ΡŒ вмСсто git push origin master), ΠΌΠΎΠΆΠ½ΠΎ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git push.

руководство для ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒ профСссионалами

Git β€” Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ Π»ΠΈΠ΄Π΅Ρ€ ΠΏΠΎ популярности срСди соврСмСнных систСм управлСния вСрсиями. Π­Ρ‚ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. БистСма Git Π±Ρ‹Π»Π° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π² 2005 Π³ΠΎΠ΄Ρƒ Линусом Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ΡΠΎΠΌ β€” создатСлСм ядра ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Linux. Git примСняСтся для управлСния вСрсиями Π² Ρ€Π°ΠΌΠΊΠ°Ρ… колоссального количСства ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ПО, ΠΊΠ°ΠΊ коммСрчСских, Ρ‚Π°ΠΊ ΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. БистСма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ мноТСством ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Она прСвосходно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ со мноТСством ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (IDE).

Git β€” систСма управлСния вСрсиями с распрСдСлСнной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΠ³Π΄Π° популярных систСм Π²Ρ€ΠΎΠ΄Π΅ CVS ΠΈ Subversion (SVN), Π³Π΄Π΅ полная история вСрсий ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° доступна лишь Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Π² Git каТдая рабочая копия ΠΊΠΎΠ΄Π° сама ΠΏΠΎ сСбС являСтся Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ позволяСт всСм Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ объСмС.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² Git ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π° обСспСчСниС высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, бСзопасности ΠΈ гибкости распрСдСлСнной систСмы.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

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

НСкоторыС систСмы управлСния вСрсиями Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠΈ истории вСрсий. ВмСсто ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠΉ систСма Git Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ содСрТимоС. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° часто ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ мСстами. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ рСпозитория Git Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π΅Π»ΡŒΡ‚Π°β€‘ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ (фиксации ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ содСрТимого) ΠΈ компрСссии. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² чистом Π²ΠΈΠ΄Π΅ хранят ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с содСрТимым ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ вСрсий.

ВмСстС с Ρ‚Π΅ΠΌ распрСдСлСнная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° систСмы сама ΠΏΠΎ сСбС обСспСчиваСт сущСствСнный прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Элис мСняСт исходный ΠΊΠΎΠ΄. Она добавляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ вСрсии 2.0, послС Ρ‡Π΅Π³ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ сопровоТдаСт измСнСния описаниСм. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚. РазумССтся, эти измСнСния ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² истории Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… элСмСнтов. Π—Π°Ρ‚Π΅ΠΌ Элис ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ вСрсии 1.3 Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ПО β€” Ρ‚Π°ΠΊ ΠΎΠ½Π° смоТСт ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π±Π°Π³, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ эту ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π° Элис ΠΌΠΎΠ³Π»Π° Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ 1.3.1 с исправлСниями Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ вСрсиСй 2.0. Π—Π°Ρ‚Π΅ΠΌ Элис вСрнСтся ΠΊ Π²Π΅Ρ‚ΠΊΠ΅ для вСрсии 2.0 ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ функциями. ВсС пСрСчислСнныС дСйствия ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π±Π΅Π· доступа ΠΊ сСти, поэтому систСма Git отличаСтся быстротой ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Π΄Π°ΠΆΠ΅ Ссли Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² самолСтС. Когда Элис Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ всС внСсСнныС измСнСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π΅ΠΉ останСтся лишь Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ push.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

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

ИспользованиС Git Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ исходного ΠΊΠΎΠ΄Π°.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах управлСния вСрсиями отсутствуСт Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Ρ‚Π°ΠΉΠ½ΠΎΠ³ΠΎ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ ΡƒΠ³Ρ€ΠΎΠ·ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности Π² любой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ПО.

Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ

Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ β€” ΠΎΠ΄Π½Π° ΠΈΠ· основных характСристик Git. Она проявляСтся Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, эффСктивности использования с ΠΌΠ°Π»Ρ‹ΠΌΠΈ ΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ совмСстимости со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ систСмами ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ SVN, систСма Git рассчитана ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π° созданиС Π²Π΅Ρ‚ΠΎΠΊ ΠΈ использованиС Ρ‚Π΅Π³ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с участиСм Π²Π΅Ρ‚ΠΎΠΊ ΠΈ Ρ‚Π΅Π³ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, объСдинСниС ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии) ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НС всС систСмы управлСния вСрсиями ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌΠΈ возмоТностями отслСТивания.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git

Git β€” это Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО. РазумССтся, ΠΎΡ†Π΅Π½ΠΊΡƒ слСдуСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. ΠœΡ‹ лишь Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ основныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git.

ΠŸΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ характСристики

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Git ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ трСбованиям Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π­Ρ‚ΠΈ качСства систСмы ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΈ сравнСнии систСмы с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ² ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ приходят ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Git ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ прСимущСствами.

Git β€” ΠΏΡ€ΠΈΠ·Π½Π°Π½Π½Ρ‹ΠΉ стандарт

Git являСтся самым популярным инструмСнтом своСго класса, ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ обусловлСна рядом ΠΏΡ€ΠΈΡ‡ΠΈΠ½. Π’ Atlassian ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ исходным ΠΊΠΎΠ΄ΠΎΠΌ практичСски всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² осущСствляСтся Π² Git.

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

Однако ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Git обусловлСна Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ высокой ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π’ систСмС Ρ‚Π°ΠΊΠΆΠ΅ прСдусмотрСна интСграция Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтов ΠΈ сСрвисов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ собствСнныС инструмСнты Atlassian. Π’ число послСдних Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ распрСдСлСнной систСмы управлСния вСрсиями для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Sourcetree, систСма отслСТивания ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Jira, Π° Ρ‚Π°ΠΊΠΆΠ΅ сСрвис размСщСния ΠΊΠΎΠ΄Π° Bitbucket.

ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят приобрСсти Ρ†Π΅Π½Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с инструмСнтами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО, слСдуСт ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Git ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρƒ ΠΈΠ· систСм управлСния вСрсиями.

Git β€” это качСствСнный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ

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

Π’ΠΎΠΊΡ€ΡƒΠ³ Git ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ многочислСнноС сообщСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° сам ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ со стороны сообщСства. БистСма ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈ качСствСнной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ: всСм ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΌ Π² числС ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ доступны ΠΊΠ½ΠΈΠ³ΠΈ, ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ руководства, спСциализированныС вСб‑сайты, подкасты ΠΈ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠΈ.

Git β€” это систСма с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, поэтому Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈβ€‘Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΅ΠΉ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ бСсплатно. Π’ сфСрС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Git ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ выступаСт Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠΌ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… систСм управлСния вСрсиями ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ SVN ΠΈ CVS.

ΠšΡ€ΠΈΡ‚ΠΈΠΊΠ° Git

Git Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΡŽΡ‚ Π·Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ освоСния: ΠΎΠ΄Π½ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ β€” ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’Π°ΠΊ, понятиС revert (Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии) Π² Git ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ смысл, Π½Π΅ΠΆΠ΅Π»ΠΈ Π² SVN ΠΈ CVS. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Git β€” ΠΎΡ‡Π΅Π½ΡŒ мощная систСма, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности. Π˜Ρ… ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π·Π°ΠΉΠΌΠ΅Ρ‚ какоС‑то врСмя, ΠΎΠ΄Π½Π°ΠΊΠΎ усвоСнныС Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ участникам ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π΄ΡˆΠΈΠ΅ Π½Π° Git с нСраспрСдСлСнной систСмы управлСния вСрсиями, ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΈ дальшС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ. НСсмотря Π½Π° Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Git допускаСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания классичСского рСпозитория, Π³Π΄Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ всС измСнСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΡ€ΠΈ этом Π² Git ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π΅ зависит ΠΎΡ‚ доступности ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Β«Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎΒ» сСрвСра. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ доступна полная копия рСпозитория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΄Π°ΠΆΠ΅ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρ‹ отсутствия соСдинСния с ΡΠ΅Ρ‚ΡŒΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΠ΅Π² Π² систСмС. РаспрСдСлСнная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Git ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ участникам ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ Ρ€ΠΈΡ‚ΠΌΠ΅ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ прСимущСствами, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚ΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π² основах управлСния вСрсиями, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ прСдставлСниС ΠΎ Git ΠΈ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО стоит ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этой систСмой. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ прСимущСств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Git ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°Ρ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Git ΠΈ публикация сайта / Π₯Π°Π±Ρ€

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот старый пост слСтСло всё Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ я Π΅Π³ΠΎ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΡΠΏΡ€Π°Π²Π»ΡŽ.

Π― ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» нСсколько мСсяцСв Π½Π° Π±ΠΎΡ€ΡŒΠ±Ρƒ с глюками Git-svn ΠΈ ΠΎΠ±Π΄ΡƒΠΌΡ‹Π²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡˆΡ‘Π» ΠΊ этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса с сайтом β€” простому, Π³ΠΈΠ±ΠΊΠΎΠΌΡƒ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌΡƒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства:

  • ДСлая push ΠΈΠ· ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΌΡ‹ автоматичСски обновляСм live-копию сайта
  • ΠŸΡ€Π°Π²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° сСрвСрС Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π°, Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ особыС ΠΏΡ€Π°Π²ΠΈΠ»Π° выполнСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
  • МоТно ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌΡƒ сайту, Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ дСплоя ΠΈΠ»ΠΈ пСрСмСщСния Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠžΠ±Π·ΠΎΡ€

Главная идСя систСмы β€” создСниС Π½Π° сСрвСрС Π΄Π²ΡƒΡ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²: пустого bare-рСпозитория ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ рСпозитория с Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ сайта. Π­Ρ‚Π° ΠΏΠ°Ρ€Π° связана ΠΏΠ°Ρ€ΠΎΠΉ простых Ρ…ΡƒΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ push ΠΈ pull ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π˜Ρ‚Π°ΠΊ, Π΄Π²Π° рСпозитория:

  • Hub β€” bare-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ВсС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎ.
  • Prime β€” ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π‘Π°ΠΉΡ‚ запускаСтся ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° этого рСпозитория.

Π Π°Π±ΠΎΡ‚Π° с двумя рСпозиториями простая ΠΈ ΠΎΡ‡Π΅Π½ΡŒ гибкая. Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ssh-доступ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ live-Π²Π΅Ρ€ΡΠΈΡŽ сайта просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² push Π² Hub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π›ΡŽΠ±Ρ‹Π΅ измСнСния, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π² live-вСрсии Π½Π° сСрвСрС ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Hub ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ просто β€” ΠΈ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Π³Π΄Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ измСнСния.

НСбольшиС приготовлСния ΠΏΠ΅Ρ€Π΅Π΄ стартом

ЕстСствСнно, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Git Π±Ρ‹Π» установлСн Π½Π° сСрвСрС ΠΈ Π½Π° всСх ΠΊΠΎΠΌΠΏΠ°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Если Π½Π° вашСм shared-хостингС Π½Π΅ установлСн Git β€” Π²Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ (en).

Если Π²Ρ‹ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Git Π½Π° своём сСрвСрС, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ настройки. Π― ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽ особоС значСния для user.name, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° измСнСния, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π½Π° сСрвСрС:

$ git config --global user.name "Π”ΠΆΠΎ, Ρ„ΠΈΠ³Π°Ρ‡Ρƒ Π½Π° сСрвСрС"

ΠŸΠΎΠ΅Ρ…Π°Π»ΠΈ!

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

$ cd ~/www

$ git init

$ git add .

$ git commit -m "Π˜ΠΌΠΏΠΎΡ€Ρ‚ всСх ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² сайта"

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° наш сайт ΡƒΠΆΠ΅ находится Π² Git, создадим bare-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²Π½Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° сайта.

$ cd

$ mkdir site_hub.git

$ cd site_hub.git

$ git --bare init

Initialized empty Git repository in /home/joe/site_hub.git

Π£Ρ€Π°! Π‘Π½ΠΎΠ²Π° вСрнёмся Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ сайта ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Hub ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ»ΡŒΡ‘ΠΌ Π² Hub содСрТимоС Π²Π΅Ρ‚ΠΊΠΈ master ΠΈΠ· Prime-рСпозитория.

$ cd ~/www

$ git remote add hub ~/site_hub.git

$ git remote show hub

* remote hub

Β URL: /home/joe/site_hub.git

$ git push hub master

Π₯ΡƒΠΊΠΈ

Как я ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» Π² Π½Π°Ρ‡Π°Π»Π΅, Hub ΠΈ Prime ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π²Π° простых скрипта.

Одно ΠΈΠ· основных ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Git β€” Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ push Π² Ρ€Π΅ΠΏΠΎΠ·Ρ‚ΠΈΡ€ΠΈΠΉ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ рабочая копия. ΠœΡ‹ слСдуСм этому ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ ΠΈ создали Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Β«HubΒ». ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ push ΠΈΠ· Hub, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ повлияСт Π½Π° Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΡƒΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заставит Prime Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ pull ΠΈΠ· Hub-рСпозитория.

Post-update β€” Π² Hub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Hub поступит новая порция ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, сразу Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ этот скрипт. ΠœΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Prime-рСпозитория, ΠΈ вытягиваСм измСниния ΠΈΠ· Hub’Π°. ΠŸΡ€ΠΎΡ‚Π°Π»ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (push) Π½Π΅ измСняСт состояния Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° рСпозитория, поэтому ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ pull, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

#!/bin/sh

echo

echo "**** ВытягиваСм измСнСния Π² Prime [Hub's post-update hook]"

echo

cd $HOME/www || exit

unset GIT_DIR

git pull hub master

exec git update-server-info

Post-commit β€” Π² Prime-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈ

Π­Ρ‚ΠΎΡ‚ скрипт запускаСтся послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² Prime-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚ измСнСния Π² Hub. Π’ идСальном ΠΌΠΈΡ€Π΅, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΡ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ прямо Π½Π° сСрвСрС. Но Π² нашСм Π½Π΅ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΌ ΠΌΠΈΡ€Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ всё, Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ процСсс проталкивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ€Π°Π·Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².

#!/bin/sh

echo

echo "**** pushing changes to Hub [Prime's post-commit hook]"

echo

git push hub

Π˜Ρ‚Π°ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот Ρ…ΡƒΠΊ, ΠΌΡ‹ сразу ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π² Hub-рСпозитория всС измСнСния, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π² master-Π²Π΅Ρ‚ΠΊΠ΅ Prime-рСзпозитория. ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° сайт. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ доступ Ρ‡Π΅Ρ€Π΅Π· SSH-адрСс ΠΊ Hub, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ push ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ сайта Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ прямой доступ ΠΊ shell’Ρƒ.

ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹

Β«ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒΒ» сайт ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ систСмС синхронизации Π΄Π²ΡƒΡ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΎΡ‡Π΅Π½ΡŒ слоТно. КаТдоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, сдСланноС Π² Prime автоматичСски ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² Hub ΠΈ всС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ сразу Π²ΠΈΠ΄Π½Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ push ΠΈΠ· ΠΊΠ»ΠΎΠ½ΠΎΠ² рСпозитория.

Но всё ΠΆΠ΅ Π΅ΡΡ‚ΡŒ нСсколько ситуаций, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состояниС Prime ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Hub’Π°, ΠΈ для исправлСния ситуации потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ. Если ΠΌΡ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ Π½Π° Prime ΠΈ Π½Π΅ зафиксировали измСнСния, Π° Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ сработаСт post-update Π² Hub, Ρ‚ΠΎ всС Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой с сообщСниСм Β«Entry β€˜foo’ not uptodate. Cannot merge.Β». Ѐиксация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Prime ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π°Ρ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ состояниС, ΠΈ post-update Ρ…ΡƒΠΊ смоТСт ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС Π½Π΅ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ измСнСния.

Π’Π°ΠΊΠΆΠ΅ я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ Ссли ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вслСдствиС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ измСнСния Π² Prime Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ с Hub’ΠΎΠΌ, Ρ‚ΠΎ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Prime’Π° Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Hub. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, выполнСнная ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Prime создаст ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Β«fixmeΒ», ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ стоянии Prime-рСпозитория.

$ git push hub master:refs/heads/fixme

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния окаТутся Π² Hub’Π΅, ΠΌΡ‹ смоТСм ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π² любом ΠΈΠ· ΠΊΠ»ΠΎΠ½ΠΎΠ², Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈ ΡΠΌΠ΅Ρ€ΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ прямо Π½Π° сСрвСрС ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ сайтС ΠΈΠ·-Π·Π° появлСния ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹Ρ… областСй.

Π”Π΅Ρ€ΠΆΠΈΠΌ всё Π² чистотС

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ .git Prime-рСпозитория находится Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ сайта, ΠΈ, вСрояно, доступСн для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ доступа. Π§Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ смог ΡΡƒΠ½ΡƒΡ‚ΡŒ свой нос, ΠΊΡƒΠ΄Π° Π½Π΅ слСдуСт, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ эти строки Π² Ρ„Π°ΠΉΠ» .htaccess Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня:

# deny access to the top-level git repository:

RewriteEngine On

RewriteRule \.git - [F,L]

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ доступ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π½Π° сСрвСрС.

ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Если ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ push Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° сСрвСрС Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ:

git-receive-pack: command not found

fatal: The remote end hung up unexpectedly

Π’ этом случаС просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ export PATH=${PATH}:~/bin Π² ваш Ρ„Π°ΠΉΠ» .bashrc, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ Π½Π° сСрвСрС.

git rebase для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… / Π₯Π°Π±Ρ€

Π’ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π° Ρ‚Π΅ΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ git, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ сдСлал Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ PR Π² Ρ‡ΡƒΠΆΠΎΠΉ Open Source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° GitHub Π΄ΡƒΠΌΠ°ΡŽ стоит ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ git rebase.

Π‘Π°ΠΌ я Π² этой Ρ‚Π΅ΠΌΠ΅ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡΡŒ ΠΈ Π½Π΅ люблю Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅, поэтому ΠΏΡ€ΠΎΡˆΡƒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, дополню ΠΏΠΎ возмоТности.

Π˜Ρ‚Π°ΠΊ git Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΊΠΎΠΌΠΈΡ‚Π°ΠΌΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΈΡ‚ β€” Π½Π°Π±ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΈΡ‚Π° Π΅ΡΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ hash. Когда происходит слияниС Π²Π΅Ρ‚ΠΎΠΊ посрСдством merge:

# git merge "another_branch"


Ρ‚ΠΎ всС ΠΊΠΎΠΌΠΈΡ‚Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ β€” ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊΠΎΠΌΠΈΡ‚Π°, Π΅Π³ΠΎ hash + ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ добавляСтся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ искусствСнный ΠΊΠΎΠΌΠΈΡ‚. ΠŸΡ€ΠΈ этом ΠΊΠΎΠΌΠΈΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡Π΅Ρ€Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π­Ρ‚ΠΎ Π½Π΅ всСгда ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Допустим ваш ΠΊΠΎΠΌΠΈΡ‚ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ β€” Π²Ρ‹ΠΈΡΠΊΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ‰Π΅ΠΌ спискС Π³Π΄Π΅ ваш ΠΊΠΎΠΌΠΈΡ‚, Π° Π³Π΄Π΅ Π½Π΅ ваш Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ приятно. И Π²ΠΎΠΎΠ±Ρ‰Π΅ β€” Π² ΠΎΠ±Ρ‰Π΅ΠΉ истории хочСтся Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½Ρ‹Π΅ измСнСния, Π° Π½Π΅ Β«ΠΎΠΉ, я Π·Π°Π±Ρ‹Π» ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ;Β». Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ нСсколько ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² ΡΠΊΠ»Π΅ΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ rebase. Π₯отя Π² интСрфСйсС GitHub Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΎΡ‡ΠΊΠ° squash & commit β€” это ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаСтС pull request (PR) ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈΠ· вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ) ΠΈ послС прохоТдСния всСх Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ squash & commit, ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΈ ваши измСнСния появятся Π² основной Π²Π΅Ρ‚ΠΊΠ΅ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΈΡ‚.Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½Π― Ρ€Π°Π½ΡŒΡˆΠ΅ Π΄Π΅Π»Π°Π» Ρ‚Π°ΠΊ
# git checkout master && git pull && git branch -b <НоваяВСтка> && git merge <Π‘Ρ‚Π°Ρ€Π°ΡΠ’Π΅Ρ‚ΠΊΠ°Π“Π΄Π΅ΠœΠ½ΠΎΠ³ΠΎΠšΠΎΠΌΠΈΡ‚ΠΎΠ²> --squash

ΠŸΠΎΡ‚ΠΎΠΌ смотрСл измСнСния Π² IDE, Π΄Π΅Π»Π°Π» ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ²Ρ‹Π΅ review, ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΈΡ‚ΠΈΠ» ΠΈ ΠΏΡƒΡˆΠΈΠ» Π½Π° сСрвСр.

Из плюсов β€” ΠΌΠΎΠΆΠ½ΠΎ вСсь ΠΊΠΎΠ΄, всС измСнСния ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² IDE. Иногда Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Ρ‡Π΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· web UI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° GitHub.

ΠžΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎ rebase ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ hash ΠΊΠΎΠΌΠΈΡ‚Π° ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌ слияний, особСнно Ссли Π½Π°Π΄ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ трудятся нСсколько Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.

Π₯ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎ Π΄Π²ΡƒΡ… случаях использования rebase:

  1. Когда измСнСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‚ΠΊΡƒ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π½Π΅ посрСдством merge, Π° посрСдством rebase:
    # git rebase "another_branch"
    


    Π­Ρ‚ΠΎ позволяСт ваши Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ послС всСх ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ внСсСны Π² Π²Π΅Ρ‚ΠΊΡƒ Β«another_branchΒ». Π₯эши Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² измСнятся.

  2. Когда ΠΌΠΎΠΆΠ½ΠΎ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡΠΊΠ»Π΅ΠΈΡ‚ΡŒ ΠΈΡ…, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ:
    # git rebase -i {HEAD~_commit_count_|commit_hash}
    


    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: стоит Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ git-ΠΎΠΌ, ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π›ΠΈΡ‡Π½ΠΎ я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ mcedit.

Π˜Ρ‚Π°ΠΊ Π²Ρ‹ всС сдСлали Π² своСй ΡƒΡŽΡ‚Π½Π΅Π½ΡŒΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ этим ΠΊΠΎΠΌΠΈΡ‚ΠΎΠΌ с ΠΌΠΈΡ€ΠΎΠΌ, Π½ΠΎ ΠΌΠΈΡ€ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡ‚ вас Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΈΡ‚. `git rebase -i ` запустит Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΈΡ‚Ρ‹ (порядок слСдования ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² β€” свСрху Π²Π½ΠΈΠ· Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ git log). МоТно ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΈΡ‚ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ»Π΅ΠΈΡ‚ΡŒ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ваш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΈΡ‚ Π½Π°Π΄ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°
pick "commit_hash" "comment" β†’ fixup "commit_hash" "comment".

ΠŸΡ€ΠΈ этом всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π² fixup ΠΊΠΎΠΌΠΈΡ‚Π°Ρ… ΠΏΠΎΡ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΈΡ‚Π°. Если Π²Π°ΠΌ Π±Ρ‹Π»ΠΈ Π΄ΠΎΡ€ΠΎΠ³ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ρ‚ΠΎ стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ squash вмСсто fixup.

Но Ссли процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ‹Π» Π΄ΠΎΠ»ΠΎΠ³, Ρ‚ΠΎ скорСС всСго Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ merge основной Π²Π΅Ρ‚ΠΊΠΈ. И всС ваши ΠΊΠΎΠΌΠΈΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ΡΡ с ΠΎΠ±Ρ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΈΡ‚Π°ΠΌΠΈ ΠΈ ΡΠΊΠ»Π΅ΠΈΠ²Π°Ρ‚ΡŒ ваши с Π½Π΅ вашими Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ нСпростой. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ `git rebase -i <>` стоит ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ `git rebase`. `git rebase` поставит всС ваши ΠΊΠΎΠΌΠΈΡ‚Ρ‹ Π² ΠΊΠΎΠ½Π΅Ρ† списка всСх ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² (Π² Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ запустив `git log`) ΠΈ послС этого Π·Π°ΠΏΡƒΡΡ‚ΠΈΡŒ `git rebase -i <HEAD~ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΠ²ΠΎ_Π²Π°ΡˆΠΈΡ…_ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ²>`, Π²ΠΎ всСх строчках ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ pick β†’ {fixup|squash} ΠΈ вуаля β€” Ρƒ вас ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΈΡ‚.

Если Π² процСссС рСдактирования ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² `git rebase -i <>` Π²Ρ‹ ΠΊΠ°ΠΊ-Ρ‚ΠΎ накосячили, Ρ‚ΠΎ Π½Π΅ стоит ΠΆΠ°Ρ‚ΡŒ Control+C β€” exit code Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° git Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠ΅Ρ‚. Он просто Π²ΠΎΠ·ΡŒΠΌΠ΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΈ сдСлаСт всС ΠΏΠΎ Π½Π΅ΠΌΡƒ. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ всС строчки Π² Ρ„Π°ΠΉΠ»Π΅. git ΠΏΠΎΠΉΠΌΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΈ.

ПослС манипуляций с rebase потрСбуСтся push с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ -F. ВсС это ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ пСрСписываСм мСняСм ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² ΠΈ git нас ΠΎΠ± этом чСстно ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚.
# git push -f

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования git rebaseΠ’Π΄ΠΎΠ³ΠΎΠ½ΠΊΡƒ Π½Π°ΠΏΠΈΡˆΡƒ Ρ‡Ρ‚ΠΎ Ρƒ мСня ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ. Π”Π°Π½ΠΎ β€” 2 Π²Π΅Ρ‚ΠΊΠΈ β€” master ΠΈ b1. Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΡ‹ сдСлали ΠΊΠΎΠΌΠΈΡ‚Ρ‹:

Initial commit - Π²Π΅Ρ‚ΠΊΠ° master - 2fbbe67

b1.1 - Π²Π΅Ρ‚ΠΊΠ° b1 - 85eac43

master after b1.1 - Π²Π΅Ρ‚ΠΊΠ° мастСр b505f18

b1.2 - Π²Π΅Ρ‚ΠΊΠ° b1 - 2d7d4ea

+1 - Π²Π΅Ρ‚ΠΊΠ° master - 8dcef6c

ΠšΠΎΠΌΠΈΡ‚Ρ‹ Π² master ΠΈ b1 Π±Ρ‹Π»ΠΈ сдСланы нСзависимо. Написал Π² ΠΎΠ΄ΠΈΠ½ список, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π» понятСн порядок Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС дСлалось. Π’ΠΎΡ‚ список ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Ρ€Π°Π½Ρ‡Π΅:

# git checkout master && git log

8dcef6c "+1"

b505f18 "master after b1.1"

2fbbe67 "Initial commit"

# git checkout b1 && git log

2d7d4ea «b1.2»

85eac43 «b1.1»

2fbbe67 «Initial commit»

Π”Π΅Π»Π°Π΅ΠΌ git merge master Π² b1

# git checkout b1 && git merge master && git log

5383781 "Merge branch 'master' into b1"

8dcef6c "+1"

2d7d4ea "b1.2"

b505f18 "master after b1.1"

85eac43 "b1.1"

2fbbe67 "Initial commit"

Добавился Π½ΠΎΠ²Ρ‹ΠΉ синтСтичСский ΠΊΠΎΠΌΠΈΡ‚

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅Π»Π°Π΅ΠΌ rebase

# git checkout b1 && git rebase master && git log

7f18e47 "b1.2"

6fb80cb "b1.1"

8dcef6c "+1"

b505f18 "master after b1.1"

2fbbe67 "Initial commit"

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ β€” наши Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΈΡ‚Ρ‹ встали Π² ΠΊΠΎΠ½Π΅Ρ† списка, Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² измСнились, синтСтичСский ΠΊΠΎΠΌΠΈΡ‚ исчСз.

Ну ΠΈ напослСдок склСиваСм наши ΠΊΠΎΠΌΠΈΡ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½

# git rebase -i HEAD~2

Π€Π°ΠΉΠ» Π±Ρ‹Π»ΠΎ

pick 6fb80cb b1.1

pick 7f18e47 b1.2

Π€Π°ΠΉΠ» стало послС нашСго рСдактирования

pick 6fb80cb b1.1

fixup 7f18e47 b1.2

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ

# git checkout b1 && git log

9062cd7 "b1.1"

8dcef6c "+1"

b505f18 "master after b1.1"

2fbbe67 "Initial commit"


Π’Π°ΠΊΠΈΠ΅ Π΄Π΅Π»Π°

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² GitHub. Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ

Π’ ΡƒΡ€ΠΎΠΊΠ΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с GitHub, ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ Π·Π° ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ½ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ рСпозиториями ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки:

  1. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт GitHub;
  2. Бинтаксис Markdown.

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

  1. Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΡŽ?

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΡŽ сначала Π½ΡƒΠΆΠ½ΠΎ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ адрСс https://github.com/tutorialzine/awesome-project, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ Π½Π° GitHub, BitBucket ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ сСрвисС. Π­Ρ‚ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² дальнСйшСм ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ сСбя ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Π΅Ρ‚, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ слуТбы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ инструкции для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ выполнСния Π½ΡƒΠΆΠ½Ρ‹Ρ… дСйствий.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ созданный Π½Π°ΠΌΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

# This is only an example. Replace the URI with your own repository address.
$ git remote add origin https://github.com/tutorialzine/awesome-project.git

ΠŸΠ΅Ρ€Π²Π°Ρ строка Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ URI рСпозитария, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° свой.

Иногда Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠ΅Π² – Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ… присваиваСтся собствСнноС имя. Π“Π»Π°Π²Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ origin.

  1. Как ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ создан ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ, ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° сСрвСр. ΠœΡ‹ это Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ.

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ push, которая ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° — имя ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория (Π² нашСм случаС origin) ΠΈ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ внСсти измСнСния (master β€” это Π²Π΅Ρ‚ΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для всСх Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²).

$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 212 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/tutorialzine/awesome-project.git
* [new branch] master -> master

Если ΠΌΡ‹ всС сдСлали ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» hello.txt Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ – Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сСрвисы для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

  1. Как ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ?

Если Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ копию ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ clone:

$ git clone https://github.com/tutorialzine/awesome-project.git

GitHub автоматичСски создаст Π½ΠΎΠ²Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° собствСнном сСрвСрС.

  1. Как Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ измСнСния с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитария?

Π’ случаС, Ссли Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π΅Ρ‚ нСобходимости Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ»ΠΎΠ½ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитария, Π° Π½ΡƒΠΆΠ½ΠΎ просто ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± измСнСниях, это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pull:

$ git pull origin master
From https://github.com/tutorialzine/awesome-project
* branch master -> FETCH_HEAD
Already up-to-date.

Она скачиваСт Π½ΠΎΠ²Ρ‹Π΅ измСнСния. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π΅ вносили с Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΊΠ°ΠΊ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, доступных ΠΊ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΡŽ, Π½Π΅Ρ‚.

О рСпозиториях — GitHub Docs

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ GitHub

  • ВсС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  • GitHub.com
    • Начиная

      • Быстрый старт

        • ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Git
        • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎ
        • Π€ΠΎΡ€ΠΊ Ρ€Π΅ΠΏΠΎ
        • Π‘Ρ‹Ρ‚ΡŒ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ
      • Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ GitHub

        • ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ GitHub
        • Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ выпусков Ρ€Π°Π½Π½Π΅Π³ΠΎ доступа с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ просмотром Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
        • Π’ΠΈΠΏΡ‹ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² GitHub
        • Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы ΠΎΠ± измСнСниях Π² ΠΏΠ»Π°Π½Π°Ρ… GitHub
        • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки GitHub
        • GitHub Desktop
        • GitHub для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств
        • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° доступ Π½Π° GitHub
        • Глоссарий GitHub
        • Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git
        • Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ рСсурсы Git ΠΈ GitHub
      • РСгистрация Π½Π° GitHub

        • РСгистрация Π½ΠΎΠ²ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи GitHub

.

Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² | Руководство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° GitHub

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ | Руководство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° GitHub

ΠšΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½Π° этом сайтС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ. Для получСния Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ содСрТания посСтитС docs.github.com.

ΠœΡ‹ объСдинили всю Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρƒ GitHub Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС! ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ мСстополоТСниями REST API, GraphQL API ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².
Π£Π·Π½Π°ΠΉΡ‚Π΅ большС Π² Π±Π»ΠΎΠ³Π΅ GitHub.

Навигация ΠΏΠΎ докумСнтации… ΠžΠ±Π·ΠΎΡ€ API
Π’ΠΈΠΏΡ‹ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° API Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ OAuthΠ”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ аутСнтификацииУстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр APIΠ’Π΅Ρ€ΡΠΈΠΈΠžΠ±Π·ΠΎΡ€ активности
БобытияВипы событий ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅FeedsNotificationsStarringWatchingChecks
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° RunsCheck SuitesCode ScanningGists ΠΎΠ±Π·ΠΎΡ€
ΠžΠ±Π·ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… Git
BlobsCommitReferencesTagsTreesGitHub ДСйствия ΠžΠ±Π·ΠΎΡ€
АртСфактыБСкрСтыБаморазмСщаСмыС Π±Π΅Π³ΡƒΠ½Ρ‹Π Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссыЗадания Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСссаЗапуски Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°ΠžΠ±Π·ΠΎΡ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ GitHub

API ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ OAuthΠ£ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈΠŸΡ€Π΅ΡΡ‚ΡƒΠΏΠ»Π΅Π½ΠΈΡΠ”ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈGitHub MarketplaceВзаимодСйствия
ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠžΠ±Π·ΠΎΡ€ вопросов
ΠŸΡ€Π°Π²ΠΎΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΈΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈΠ‘ΠΎΠ±Ρ‹Ρ‚ΠΈΡΠœΠ΅Ρ‚ΠΊΠΈΠ­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Ρ‹Π’Ρ€Π΅ΠΌΠ΅Π½Π°Π’Ρ‹ΠΏΡƒΡΠΊ Π’ΠΈΠΏΡ‹ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉΠžΠ±Π·ΠΎΡ€ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ
ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡΠ˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠ²ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ Π°Π·Π½ΠΎΠ΅ ΠΎΠ±Π·ΠΎΡ€
ΠšΠΎΠ΄Π΅ΠΊΡΡ‹ повСдСнияEmojisGitignoreΠ›ΠΈΡ†Π΅Π½Π·ΠΈΠΈMarkdownMetaRate LimitΠžΠ±Π·ΠΎΡ€ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ), участников, сторонних сотрудников, Π²Π΅Π±-ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΎΠ±Π·ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²
ΠšΠ°Ρ€Ρ‚Ρ‹Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠΈΠ‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹ΠžΠ±Π·ΠΎΡ€ запросов Π½Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅
ΠžΡ‚Π·Ρ‹Π²Ρ‹Review CommentsReview RequestsReactions overview
Π€ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΠ’Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π½Π° рассылку ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉΠžΠ±Π·ΠΎΡ€ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²
Π€ΠΈΠ»ΠΈΠ°Π»Ρ‹Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠΈΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈΠ‘ΠΎΠΎΠ±Ρ‰Π΅ΡΡ‚Π²ΠΎΠ‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉΠ Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡΠ’ΠΈΠ»ΠΊΠΈΠ˜Π½Π²ΠΈΡ‚Π°Ρ†ΠΈΡΠ‘Π»ΠΈΡΠ½ΠΈΠ΅Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π Π΅Π»ΠΈΠ·Ρ‹Π‘Ρ‚Π°Ρ‚ΠΈΡΡ‚ΠΈΠΊΠ°Π‘Ρ‚Π°Ρ‚ΡƒΡΡ‹Π’Ρ€Π°Ρ„ΠΈΠΊΠ’Π΅Π±-Ρ…ΡƒΠΊΠΈΠŸΠΎΠΈΡΠΊ ΠΎΠ±Π·ΠΎΡ€
RepositoriesCodeCommitIssuesUsersTopicsText match metadataTeams
ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽΠ£Ρ‡Π°ΡΡ‚Π½ΠΈΠΊΠΈΠ‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹SCIM
ΠžΠ±Π·ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉEmailsFollowersGit SSH KeysGPG Keys

.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ вашСго рСпозитория ΠΏΠΎ Ρ‚Π΅ΠΌΠ°ΠΌ

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ GitHub

  • ВсС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  • GitHub.com
    • Начиная

      • Быстрый старт

        • ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Git
        • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎ
        • Π€ΠΎΡ€ΠΊ Ρ€Π΅ΠΏΠΎ
        • Π‘Ρ‹Ρ‚ΡŒ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ
      • Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ GitHub

        • ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ GitHub
        • Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ выпусков Ρ€Π°Π½Π½Π΅Π³ΠΎ доступа с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ просмотром Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
        • Π’ΠΈΠΏΡ‹ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² GitHub
        • Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы ΠΎΠ± измСнСниях Π² ΠΏΠ»Π°Π½Π°Ρ… GitHub
        • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки GitHub
        • GitHub Desktop
        • GitHub для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств
        • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° доступ Π½Π° GitHub
        • Глоссарий GitHub
        • Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git
        • Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ рСсурсы Git ΠΈ GitHub
      • РСгистрация Π½Π° GitHub

        • РСгистрация Π½ΠΎΠ²ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи GitHub

.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория Π½Π° GitHub

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ GitHub

  • ВсС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  • GitHub.com
    • Начиная

      • Быстрый старт

        • ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Git
        • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎ
        • Π€ΠΎΡ€ΠΊ Ρ€Π΅ΠΏΠΎ
        • Π‘Ρ‹Ρ‚ΡŒ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ
      • Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ GitHub

        • ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ GitHub
        • Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ выпусков Ρ€Π°Π½Π½Π΅Π³ΠΎ доступа с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ просмотром Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
        • Π’ΠΈΠΏΡ‹ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² GitHub
        • Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы ΠΎΠ± измСнСниях Π² ΠΏΠ»Π°Π½Π°Ρ… GitHub
        • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки GitHub
        • GitHub Desktop
        • GitHub для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств
        • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° доступ Π½Π° GitHub
        • Глоссарий GitHub
        • Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git
        • Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ рСсурсы Git ΠΈ GitHub
      • РСгистрация Π½Π° GitHub

        • РСгистрация Π½ΠΎΠ²ΠΎΠΉ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи GitHub
        • Π’

.

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

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