Π­Ρ‚ΠΎΡ‚ конспСкт Π½Π΅ сохранится

Π—Π°ΠΊΡ€ΠΎΠ΅ΡˆΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ β€” ΠΏΠΎΡ‚Π΅Ρ€ΡΠ΅ΡˆΡŒ. ЗарСгистрируйся β€” ΠΈ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ навсСгда.

Telegram

Π’Π°Ρˆ конспСкт

YouTubeπŸ’» 9 ΠΊΠ»ΡŽΠ»Π΅Π²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Git для Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

🎯 9 ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Git для Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ тСзисы:

  • Для 99% Π·Π°Π΄Π°Ρ‡ программисту достаточно всСго 9 ΠΊΠΎΠΌΠ°Π½Π΄ Git.
  • Git β€” это систСма контроля вСрсий, которая Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ всС измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • Основной Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Ρ†ΠΈΠΊΠ»: git add β†’ git commit β†’ git push.
  • Π’Π΅Ρ‚ΠΊΠΈ (branch) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π΄ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ.
  • ИзмСнСния ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Ρ‡Π΅Ρ€Π΅Π· merge ΠΈΠ»ΠΈ rebase.

πŸš€ Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ

git clone [ссылка] β€” пСрвая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° Π½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.
ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с GitHub) Π½Π° ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ сразу ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Git.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: git clone https://github.com/username/project.git


πŸ’Ύ Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»)

Git β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ Π·Π° всСми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ всС измСнСния Π² Π½ΠΈΡ… (ΠΊΠΎΠ΄/тСкст). Π­Ρ‚ΠΎ позволяСт Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ любой ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии.

git commit -m "сообщСниС" β€” самая популярная ΠΊΠΎΠΌΠ°Π½Π΄Π°.
Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ "снимок" Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния Ρ„Π°ΠΉΠ»ΠΎΠ², Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ присваиваСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…Π΅Ρˆ (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€). Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ (-m) поясняСт, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ сдСлано.

git add [Ρ„Π°ΠΉΠ»/ΠΏΠ°ΠΏΠΊΠ°] β€” ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.
ΠŸΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² индСкс (stage) β€” ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ. ΠšΠΎΠΌΠΌΠΈΡ‚ сохранит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ находится Π² индСксС.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½: Π‘Π½Π°Ρ‡Π°Π»Π° git add . (Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС измСнСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅), Π·Π°Ρ‚Π΅ΠΌ git commit -m "описаниС". Π­Ρ‚ΠΎ дСлаСтся дСсятки Ρ€Π°Π· Π² дСнь.


🌿 Π Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ (parallel work)

Π’Π΅Ρ‚ΠΊΠ° (branch) β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π°ΡΡΡ ΠΎΡ‚ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ, Π½Π΅ мСшая Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

git branch [имя_Π²Π΅Ρ‚ΠΊΠΈ] β€” создаёт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ.
git checkout [имя_Π²Π΅Ρ‚ΠΊΠΈ] β€” ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.
ВсС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² эту Π²Π΅Ρ‚ΠΊΡƒ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°: КаТдая новая Π·Π°Π΄Π°Ρ‡Π° ΠΈΠ»ΠΈ Ρ„ΠΈΡ‡Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ дСлаСтся Π² своСй ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅. Основная общая Π²Π΅Ρ‚ΠΊΠ° часто называСтся main ΠΈΠ»ΠΈ master.


☁️ Бинхронизация с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (remote)

git push origin [имя_Π²Π΅Ρ‚ΠΊΠΈ] β€” отправляСт ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· вашСй локальной Π²Π΅Ρ‚ΠΊΠΈ Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GitHub).
origin β€” это псСвдоним (alias) для URL вашСго ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория.

git pull origin [имя_Π²Π΅Ρ‚ΠΊΠΈ] β€” Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ (стягиваСт) ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория Π½Π° ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

Π ΡƒΡ‚ΠΈΠ½Π°: КаТдоС ΡƒΡ‚Ρ€ΠΎ часто Π΄Π΅Π»Π°ΡŽΡ‚ git pull origin main, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свСТиС измСнСния ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.


πŸ”€ ВнСсСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ

git rebase [Π²Π΅Ρ‚ΠΊΠ°] β€” пСрСносит всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² ΠΊΠΎΠ½Π΅Ρ† ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, main).
Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠ±Ρ‰Π΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ. Из Π²Π΅Ρ‚ΠΊΠΈ с Π·Π°Π΄Π°Ρ‡Π΅ΠΉ измСнСния ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ собираСтся Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.


⚠️ ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (спасСниС)

git revert [Ρ…Π΅Ρˆ_ΠΊΠΎΠΌΠΌΠΈΡ‚Π°] β€” отмСняСт измСнСния, сдСланныС Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.
Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ (инвСрсиСй) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² старом ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ остаётся Π² истории.

ИспользованиС: Когда Π½ΡƒΠΆΠ½ΠΎ "ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ" ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ с Π±Π°Π³ΠΎΠΌ, Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.


πŸ’‘ Π’Ρ‹Π²ΠΎΠ΄Ρ‹

  1. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» add β†’ commit β†’ push β€” Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.
  2. Π’Π΅Ρ‚ΠΊΠΈ β€” ΠΊΠ»ΡŽΡ‡ ΠΊ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².
  3. pull/push β€” ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ локальной ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΉ ΠΊΠΎΠ΄Π°.
  4. rebase/merge β€” инструмСнты для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² основной ΠΊΠΎΠ΄.
  5. revert β€” ваша "ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΎΡ‚ΠΌΠ΅Π½Ρ‹" Π½Π° случай ошибок, Git Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅Ρ‚.