Git: ПолноС Руководство для ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸš€ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Git

Git - это распрСдСлСнная систСма контроля вСрсий, которая позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ эффСктивно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ измСнСниями Π² ΠΊΠΎΠ΄Π΅, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ совмСстно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм.

πŸ“ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ

Π§Ρ‚ΠΎ Π’Π°ΠΊΠΎΠ΅ Git?

Git - это инструмСнт для отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² исходном ΠΊΠΎΠ΄Π΅ during software development. Он позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ совмСстно.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • Π Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ: ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ копию рСпозитория
  • Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅: Π›Π΅Π³ΠΊΠΎΠ΅ созданиС ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ линиями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
  • ΠžΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ вСрсиям ΠΊΠΎΠ΄Π°

πŸ”§ Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠšΠΎΠΌΠ°Π½Π΄Ρ‹

Установка ΠΈ Настройка

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Установки

git --version

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Настройка

git config --global user.name "Π’Π°ΡˆΠ΅ Имя"
git config --global user.email "email@example.com"

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

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Нового РСпозитория

git init

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

git clone https://github.com/username/repository.git

πŸ“ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Π Π°Π±ΠΎΡ‚Π° с ИзмСнСниями

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Бтатуса

git status

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π€Π°ΠΉΠ»ΠΎΠ²

git add filename.txt    # Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
git add .               # Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

ΠšΠΎΠΌΠΌΠΈΡ‚ ИзмСнСний

git commit -m "ОписаниС измСнСний"

🌿 Π Π°Π±ΠΎΡ‚Π° с Π’Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π’Π΅Ρ‚ΠΎΠΊ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Новой Π’Π΅Ρ‚ΠΊΠΈ

git branch new-feature

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠœΠ΅ΠΆΠ΄Ρƒ Π’Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

git checkout new-feature

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ

git checkout -b another-feature

πŸ”— Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

ВзаимодСйствиС с GitHub

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π£Π΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ РСпозитория

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

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ИзмСнСний

git push origin main

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ИзмСнСний

git pull origin main

🀝 БовмСстная Π Π°Π±ΠΎΡ‚Π°

БлияниС Π’Π΅Ρ‚ΠΎΠΊ

БлияниС Π’Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π’Π΅Ρ‚ΠΊΠΈ

git merge feature-branch

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²:

  1. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ
  2. Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ
  3. ДобавляСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹
  4. Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ слияниС

πŸ›‘οΈ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π˜ΡΡ‚ΠΎΡ€ΠΈΠΈ

Бписок ΠšΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

git log

ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

git log --oneline

ΠžΡ‚ΠΊΠ°Ρ‚ ИзмСнСний

ΠžΡ‚ΠΌΠ΅Π½Π° НСзафиксированных ИзмСнСний

git checkout -- filename

ΠžΡ‚ΠΌΠ΅Π½Π° ΠšΠΎΠΌΠΌΠΈΡ‚Π°

git reset --soft HEAD~1

🌟 Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

  1. ЧастыС ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹: Π”Π΅Π»Π°ΠΉΡ‚Π΅ нСбольшиС, Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹
  2. ΠžΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ БообщСния: ΠŸΠΈΡˆΠΈΡ‚Π΅ понятныС сообщСния ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…
  3. ИспользованиС Π’Π΅Ρ‚ΠΎΠΊ: Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ для Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
  4. РСгулярноС ОбновлСниС: Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ свою Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ

πŸ“š Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ РСсурсы

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ!