πŸ”„ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ rebase git: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Rebase Π² Git β€” это ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая позволяСт внСсти измСнСния ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Она примСняСтся для объСдинСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌΠΈ.

ИспользованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rebase:

git checkout <тСкущая_Π²Π΅Ρ‚ΠΊΠ°>
git rebase <цСлСвая_Π²Π΅Ρ‚ΠΊΠ°>

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ Π²Ρ‹ взяли измСнСния ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ внСсли ΠΈΡ… Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‡Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ располоТСны ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

git rebase --interactive <цСлСвая_Π²Π΅Ρ‚ΠΊΠ°>

Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π΅Π±Π΅ΠΉΠ·Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ….

Rebase Π³ΠΈΠ±ΠΊΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ rebase git

Git - это распрСдСлСнная систСма управлСния вСрсиями, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ для отслСТивания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅. Один ΠΈΠ· основных инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Git, называСтся "rebase". Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ разбСрСмся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ rebase git ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ историСй ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ rebase git?

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования rebase git

Для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования rebase git. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ: Π²Π΅Ρ‚ΠΊΠ° "feature" ΠΈ Π²Π΅Ρ‚ΠΊΠ° "master".

git checkout feature
git rebase master

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ "feature" ΠΈ выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "rebase" с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ "master". git пСрСносит ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ "feature" ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Π²Π΅Ρ‚ΠΊΠ΅ "master", создавая Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ содСрТаниСм.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° rebase git

Rebase git ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько прСимущСств:

  • Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ ΠΏΡ€ΠΎΡ‰Π΅ для понимания ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°.
  • ΠŸΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ "Π»ΠΈΡˆΠ½ΠΈΡ…" ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • Π£ΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ слияниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ использования rebase git

Однако, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ограничСниях ΠΈ особСнностях использования rebase git:

  • Rebase измСняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², поэтому ΠΎΠ½ Π½Π΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡƒΠΆΠ΅ доступна Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ.
  • ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния ΠΏΡ€ΠΈ использовании rebase git, ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
  • Rebase git ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΠ΅Π½Π΅Π΅ понятной, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ Π±Π΅Π· Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ³ΠΎ понимания.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

GIT: Merge ΠΈΠ»ΠΈ Rebase? Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°?

Git MERGE vs REBASE. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ простым языком

9.1 Git - ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² - ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вмСсто слияния: rebase

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”₯ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ связь с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ git πŸš€

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π°Π±Ρ‹ Π² PyCharm? 🧹❌

πŸ”— Как ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git?

πŸ”„ Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ rebase git: ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ—‘οΈ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ· git status: простоС объяснСниС ΠΈ инструкция