Π Π°Π·Π½ΠΎΠ΅

Git squash: Как ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git squash | by Π ΡƒΠ΄ΠΎΠ»ΡŒΡ„ ΠšΠΎΡ€ΡˆΡƒΠ½ | NOP::Nuances of Programming

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

Как ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git squash | by Π ΡƒΠ΄ΠΎΠ»ΡŒΡ„ ΠšΠΎΡ€ΡˆΡƒΠ½ | NOP::Nuances of Programming

Для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся: Ρ‡Ρ‚ΠΎ ΠΆΠ΅ это Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚Π°ΠΊΠΎΠ΅ β€” git squash.

Git squash β€” это ΠΏΡ€ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π·ΡΡ‚ΡŒ ΡΠ΅Ρ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ ΡƒΠΏΠ»ΠΎΡ‚Π½ΠΈΡ‚ΡŒ Π΅Π΅. НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ: Ρƒ вас Π΅ΡΡ‚ΡŒ сСрия ΠΈΠ· N ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡƒΡ‚Π΅ΠΌ сТатия ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² ΠΎΠ΄ΠΈΠ½-СдинствСнный ΠΊΠΎΠΌΠΌΠΈΡ‚. Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· git squash Π² основном примСняСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ большоС число ΠΌΠ°Π»ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² нСбольшоС число Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ…. Π’Π°ΠΊ становится Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Git.

Π’Π°ΠΊΠΆΠ΅ этот ΠΏΡ€ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ объСдинСнии Π²Π΅Ρ‚Π²Π΅ΠΉ. Π§Π°Ρ‰Π΅ всСго Π²Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ всСгда ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Π²Π΅Ρ‚Π²ΡŒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, master ΠΈΠ»ΠΈ develop). Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС история Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π±Π΅Π· Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Как ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ git squash

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Git:

Π—Π΄Π΅ΡΡŒ Π²ΠΈΠ΄Π½Ρ‹ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π’ сообщСниях ΠΊ Π½ΠΈΠΌ поясняСтся, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ содСрТимоС. Π›ΡƒΡ‡ΡˆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΎΠ΄Π½ΠΈΠΌ СдинствСнным ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ содСрТимым. Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΡΠΆΠ°Ρ‚ΡŒ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² ΠΎΠ΄ΠΈΠ½:

git rebase -i HEAD~3

git rebase -i β€” ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π£ Π½Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ возмоТностСй, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ сосрСдоточимся Π½Π° git squash.

Если Π²Ρ‹ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ β€” Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ. Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых простых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ git-rebase (Ρ‚.Π΅. git rebase -i). HEAD~3 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π”Π°Π»Π΅Π΅ откроСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, rebase -i ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° количСство ΠΎΠΏΡ†ΠΈΠΉ. Нас, ΠΎΠ΄Π½Π°ΠΊΠΎ, интСрСсуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ squash. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ всС ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, для сТатия ΠΌΡ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ послСдниС Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ squash ΠΈΠ»ΠΈ s.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для сТатия, Π±ΡƒΠ΄ΡƒΡ‚ слиты с основным ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ β€” Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pick. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠ² ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, сохранитС измСнСния Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π”Π°Π»Π΅Π΅ rebase -i снова ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для Π²Π²ΠΎΠ΄Π° сообщСния ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅:

ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π² ΠΈ сохранив сообщСния, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с #, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. ПослС этого ΠΆΡƒΡ€Π½Π°Π» Git Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π΄Π΅ΡΡŒ измСнилось сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° β€œΡΠΊΠ»Π΅ΠΈΠ»ΠΈΡΡŒβ€ Π² ΠΎΠ΄ΠΈΠ½. Π’Π°ΠΊΠΆΠ΅ измСнился Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π§Π΅Ρ€Π΅Π· git rebase всСгда создаСтся Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, содСрТащий ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот инструмСнт с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅: сТатиС ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² мСняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Git, поэтому Π½Π΅ рСкомСндуСтся ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ, Ссли Π²Ρ‹ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π΅Π΅ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ВсСгда выполняйтС сТатиС Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΡˆ с измСнСниями.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ fixup для сТатия ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ fixup. Π­Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ squash, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π· возмоТности Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ взято ΠΈΠ· β€œΡ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎβ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° β€” Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pick. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ fixup ΠΈΠ»ΠΈ f, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. ПослС этого сохранитС измСнСния Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ пСрСбазирования сохранит сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ история Git Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ измСнился, Π° сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ бСрСтся ΠΈΠ· β€œΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎβ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±Ρ‹Π»ΠΈ сТаты Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π²Π°.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сТатия ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚Π²Π΅ΠΉ

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

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git merge --squash target_branch_name

Она Π±Π΅Ρ€Π΅Ρ‚ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ, сТимаСт ΠΈΡ… ΠΈ сохраняСт всС измСнСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚Π²ΠΈ. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это выглядит Ρ‚Π°ΠΊ:

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ слияниС нашСй Π²Π΅Ρ‚Π²ΠΈ с develop с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ --squash. Git воспримСт ΠΈ сохранит сдСланныС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ измСнСния.

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Github

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ прСдоставляСт ΠΈ Github. Π­Ρ‚Π° функция особСнно ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ ΠΏΡƒΠ»Π»-рСквСстС.

Π‘Π½Π°Ρ‡Π°Π»Π° производится сТатиС, Π·Π°Ρ‚Π΅ΠΌ β€” слияниС. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ вмСсто пяти ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² получится ΠΎΠ΄ΠΈΠ½.

Как Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅, выполняСтся всСго ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ сообщСниСм.

Бпасибо Π·Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅! НадСюсь, Π²Ρ‹ ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΠ»ΠΈ ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ πŸ™‚

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅:

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ нас Π² Telegram, VK ΠΈ ЯндСкс.Π”Π·Π΅Π½

Как ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ gitΒ squash

Для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся: Ρ‡Ρ‚ΠΎ ΠΆΠ΅ это Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚Π°ΠΊΠΎΠ΅β€Šβ€”β€Šgit squash.

Git squashβ€Šβ€”β€ŠΡΡ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π·ΡΡ‚ΡŒ ΡΠ΅Ρ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ ΡƒΠΏΠ»ΠΎΡ‚Π½ΠΈΡ‚ΡŒ Π΅Π΅. НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ: Ρƒ вас Π΅ΡΡ‚ΡŒ сСрия ΠΈΠ· N ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡƒΡ‚Π΅ΠΌ сТатия ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² ΠΎΠ΄ΠΈΠ½-СдинствСнный ΠΊΠΎΠΌΠΌΠΈΡ‚. Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· git squash Π² основном примСняСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ большоС число ΠΌΠ°Π»ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² нСбольшоС число Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ…. Π’Π°ΠΊ становится Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Git.Β 

Π’Π°ΠΊΠΆΠ΅ этот ΠΏΡ€ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ объСдинСнии Π²Π΅Ρ‚Π²Π΅ΠΉ. Π§Π°Ρ‰Π΅ всСго Π²Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ всСгда ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Π²Π΅Ρ‚Π²ΡŒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, master ΠΈΠ»ΠΈ develop). Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС история Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π±Π΅Π· Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Как ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ gitΒ squash

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Git:

Π—Π΄Π΅ΡΡŒ Π²ΠΈΠ΄Π½Ρ‹ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π’ сообщСниях ΠΊ Π½ΠΈΠΌ поясняСтся, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ содСрТимоС. Π›ΡƒΡ‡ΡˆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΎΠ΄Π½ΠΈΠΌ СдинствСнным ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ содСрТимым. Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΡΠΆΠ°Ρ‚ΡŒ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² ΠΎΠ΄ΠΈΠ½:

git rebase -i HEAD~3

git rebase -iβ€Šβ€”β€ŠΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π£ Π½Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ возмоТностСй, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ сосрСдоточимся Π½Π° git squash.

Если Π²Ρ‹ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌβ€Šβ€”β€ŠΠ½Π΅ Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ. Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²β€Šβ€”β€ŠΠΎΠ΄Π½Π° ΠΈΠ· самых простых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ git-rebase (Ρ‚.Π΅. git rebase -i). HEAD~3 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π”Π°Π»Π΅Π΅ откроСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, rebase -i ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° количСство ΠΎΠΏΡ†ΠΈΠΉ. Нас, ΠΎΠ΄Π½Π°ΠΊΠΎ, интСрСсуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ squash. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ всС ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, для сТатия ΠΌΡ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ послСдниС Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ squash ΠΈΠ»ΠΈ s.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для сТатия, Π±ΡƒΠ΄ΡƒΡ‚ слиты с основным ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌβ€Šβ€”β€ŠΡ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pick. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠ² ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, сохранитС измСнСния Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π”Π°Π»Π΅Π΅ rebase -i снова ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для Π²Π²ΠΎΠ΄Π° сообщСния ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅:

ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π² ΠΈ сохранив сообщСния, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с #, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. ПослС этого ΠΆΡƒΡ€Π½Π°Π» Git Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π΄Π΅ΡΡŒ измСнилось сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° β€œΡΠΊΠ»Π΅ΠΈΠ»ΠΈΡΡŒβ€ Π² ΠΎΠ΄ΠΈΠ½. Π’Π°ΠΊΠΆΠ΅ измСнился Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π§Π΅Ρ€Π΅Π· git rebase всСгда создаСтся Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, содСрТащий ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния. Β 

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот инструмСнт с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅: сТатиС ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² мСняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Git, поэтому Π½Π΅ рСкомСндуСтся ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ, Ссли Π²Ρ‹ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π΅Π΅ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ВсСгда выполняйтС сТатиС Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΡˆ с измСнСниями.Β 

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ fixup для сТатия коммитов

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ fixup. Π­Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ squash, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π· возмоТности Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ взято ΠΈΠ· β€œΡ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎβ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°β€Šβ€”β€ŠΡ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pick. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ fixup ΠΈΠ»ΠΈ f, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. ПослС этого сохранитС измСнСния Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ пСрСбазирования сохранит сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ история Git Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ измСнился, Π° сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ бСрСтся ΠΈΠ· β€œΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎβ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±Ρ‹Π»ΠΈ сТаты Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π²Π°.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сТатия ΠΏΡ€ΠΈ слиянии вСтвСй

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

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git merge --squash target_branch_name

Она Π±Π΅Ρ€Π΅Ρ‚ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ, сТимаСт ΠΈΡ… ΠΈ сохраняСт всС измСнСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚Π²ΠΈ. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это выглядит Ρ‚Π°ΠΊ:

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ слияниС нашСй Π²Π΅Ρ‚Π²ΠΈ с develop с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ --squash. Git воспримСт ΠΈ сохранит сдСланныС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ измСнСния.Β 

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π·Β Github

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ прСдоставляСт ΠΈ Github.

# «Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ» послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, добавляя Π² Π½Π΅Π³ΠΎ содСрТимоС индСкса
# (Π½Π° самом Π΄Π΅Π»Π΅ создаём Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ с Ρ‚Π΅ΠΌ ΠΆΠ΅ сообщСниСм ΠΈ пСрСставляСм Π½Π° Π½Π΅Π³ΠΎ Π²Π΅Ρ‚ΠΊΡƒ)
git commit —amend —no-edit

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ пСрСписали свою Π²Π΅Ρ‚ΠΊΡƒ, Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ с -f.

git push -f origin mybranch

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git merge —squash?

Π£ мСня Π΅ΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр Git, Π²ΠΎΡ‚ сцСнарий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Ρ…ΠΎΡ‡Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

  • Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ошибки/Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ я создаю Π΄Ρ€ΡƒΠ³ΠΎΠΉ Git branch

  • Π― ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Π² этом Git branch с Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Git сообщСниями

  • Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ для ΠΎΠ΄Π½ΠΎΠΉ ошибки с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ сообщСниСм Git

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ я ΠΌΠΎΠ³Ρƒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ свою Π²Π΅Ρ‚Π²ΡŒ с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ(ΠΊΠΎΠΌΠΌΠΈΡ‚) для всСх ΠΌΠΎΠΈΡ… Ρ‡Π΅ΠΊΠΎΠ² (я Π΄Π°ΠΆΠ΅ Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сообщСниС ΠΎ фиксации(ΠΊΠΎΠΌΠΌΠΈΡ‚Π°) для этого)?

git

git-merge

git-squash

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ


SunnyShah Β  Β 

15 ΠΌΠ°Ρ€Ρ‚Π° 2011 Π² 07:47

13 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²


  • git merge —squash (Π²Π΅Ρ‚Π²ΡŒ) Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ

    Π’ настоящСС врСмя Ρƒ мСня Π΅ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠ° 1-user-model . ΠžΡ‚ΡΡŽΠ΄Π° я Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» ΠΈ создал Π²Π΅Ρ‚ΠΊΡƒ 1-user-model-squash . Π—Π°Ρ‚Π΅ΠΌ , ΠΊΠΎΠ³Π΄Π° я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git merge —squash 1-user-model , я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ. Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Π°Ρ ошибка: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ —сквош —с no-ff. Π― Ρ‚Π°ΠΊΠΆΠ΅ попытался ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ master ,…

  • Git squash ΠΈ merge

    ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ½Π΅, Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ: git merge —squash ΠΈ git merge —no-ff



2095

Допустим, ваша Π²Π΅Ρ‚Π²ΡŒ исправлСния ошибок называСтся bugfix , ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π΅ Π² master :

git checkout master
git merge --squash bugfix
git commit

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· Π²Π΅Ρ‚Π²ΠΈ bugfix Π±ΡƒΠ΄ΡƒΡ‚ скомканы Π² 1 ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ с вашСй Π²Π΅Ρ‚Π²ΡŒΡŽ master .


ОбъяснСниС :

git checkout master

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° Π²Π°ΡˆΡƒ Π²Π΅Ρ‚ΠΊΡƒ master .

git merge --squash bugfix

Π‘Π΅Ρ€Π΅Ρ‚ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· Π²Π΅Ρ‚Π²ΠΈ bugfix ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… для ΠΊΠΎΠΌΠΌΠΈΡ‚Π° 1 с вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚Π²ΡŒΡŽ.

(фиксация(ΠΊΠΎΠΌΠΌΠΈΡ‚) слияния Π½Π΅ отобраТаСтся; Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ фиксациСй(ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ))

git commit

Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ(ΠΊΠΎΠΌΠΌΠΈΡ‚) ΠΈΠ· ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠžΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° -m позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ сообщСния фиксации(ΠΊΠΎΠΌΠΌΠΈΡ‚Π°), содСрТащСго всС сообщСния ΠΈΠ· Π²Π°ΡˆΠΈΡ… сТатых ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ фиксации(ΠΊΠΎΠΌΠΌΠΈΡ‚Π°).

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


abyx Β  Β 

15 ΠΌΠ°Ρ€Ρ‚Π° 2011 Π² 08:16



132

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΊΠΎΠ½Π΅Ρ† прояснило это для мСня, Π±Ρ‹Π»ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ , ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ, Ρ‡Ρ‚ΠΎ:

git checkout main
git merge --squash feature

являСтся Π»ΠΈ это эквивалСнтом дСлания:

git checkout feature
git diff main > feature.patch
git checkout main
patch -p1 < feature.patch
git add .

Когда я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° со 105(!!) ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ ΠΈ ΡΠΆΠ°Ρ‚ΡŒ ΠΈΡ… всС Π² ΠΎΠ΄ΠΈΠ½, я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ git rebase -i origin/master , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ git Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ сам). ИспользованиС git merge --squash Π΄Π°Π΅Ρ‚ ΠΌΠ½Π΅ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚-ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ для слияния Ρ†Π΅Π»ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². И ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самоС большСС ΠΎΠ΄Π½ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Dan Kohn Β  Β 

19 августа 2014 Π² 15:59



98

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»ΠΈΡ‚ΡŒΡΡ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ squash. 1
git commit

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


qwertzguy Β  Β 

13 ΠΌΠ°Ρ€Ρ‚Π° 2015 Π² 17:50



19

БлияниС Π²Π΅Ρ‚Π²ΠΈ newFeature Π² Π²Π΅Ρ‚Π²ΡŒ master с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ фиксациСй(ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ):

git merge --squash newFeature && git commit -m 'Your custom commit message';

Если вмСсто
этого Π²Ρ‹ сдСлаСтС

git merge --squash newFeature && git commit

, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС ΠΎ фиксации(ΠΊΠΎΠΌΠΌΠΈΡ‚Π°), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ всС фиксации(ΠΊΠΎΠΌΠΌΠΈΡ‚Π°) Π²Π΅Ρ‚Π²ΠΈ newFeature , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ.

Π― ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ объясняю это здСсь: https://youtu.be/FQNAIacelT4

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Vagelis Prokopiou Β  Β 

17 ΠΌΠ°Ρ€Ρ‚Π° 2017 Π² 11:10



11

Π― знаю, Ρ‡Ρ‚ΠΎ этот вопрос Π½Π΅ касаСтся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Github, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Github Ρ‚Π°ΠΊ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΈ это Ρ‚ΠΎΡ‚ ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я искал, я подСлюсь ΠΈΠΌ здСсь.

Github ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сквош-слияния Π² зависимости ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² слияния, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… для рСпозитория.

Если слияния сквоша Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹, Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «Squash and merge» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС ΠΏΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ «Merge».

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Aaron Β  Β 

22 фСвраля 2019 Π² 23:14



4

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π² feature/task1 с нСсколькими фиксациями(ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ).

  1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² свою Π²Π΅Ρ‚Π²ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (project/my_project)

    git checkout project/my_project
    
  2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ (feature/task1_bugfix)

    git checkout -b feature/task1_bugfix
    
  3. ΠœΠ°Ρ€Π΄ΠΆ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ --squash

    git merge --squash feature/task1
    
  4. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚

    git commit -am "add single comments"
    
  5. ΠŸΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ Π²Π°ΡˆΡƒ Π²Π΅Ρ‚ΠΊΡƒ

    git push --set-upstream origin feature/task1_bugfix
    

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Farid Haq Β  Β 

27 дСкабря 2018 Π² 00:24



1

Для Git

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Ρ‡Π΅Ρ€Π΅Π· Terminal/Shell:

git checkout origin/feature/<featurename>
git merge --squash origin/feature/<featurename>

Π­Ρ‚ΠΎ Π½Π΅ фиксируСт Π΅Π³ΠΎ, позволяСт Π²Π°ΠΌ сначала ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ.

Π—Π°Ρ‚Π΅ΠΌ зафиксируйтС ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· этой Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅/ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ (Ρ‚Ρƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π΄Π΅Π»Π°Π»ΠΈ dev).

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Demian Berisford-Maynard Β  Β 

05 октября 2017 Π² 14:33



1

Ссли Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ: фиксация(ΠΊΠΎΠΌΠΌΠΈΡ‚) Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π½Π΅ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

git checkout master
git merge --squash bugfix
git add .
git commit -m "Message"

исправлСны всС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

git add . 

Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

git add [filename]

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


ResUta Β  Β 

18 дСкабря 2019 Π² 07:37



0

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ ΠΌΠ΅ΡΡ‚Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ‚ΠΎΠ»ΠΊΠ°Ρ‚ΡŒ Π΅Π΅:

  1. ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π²Π΅Ρ‚Π²ΡŒ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π½Π΅ΠΉ, Ссли ΠΎΠ½Π° Π΅Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π°.

  2. НайдитС sha самого старого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.

  3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅/ΠΈΠ·Π²Π»Π΅ΠΊΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ (tmp1) ΠΈΠ· этой фиксации(ΠΊΠΎΠΌΠΌΠΈΡ‚Π°).

    git checkout -b tmp1 <sha1-of-commit>

  4. Π‘Π»Π΅ΠΉΡ‚Π΅ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ Π² Π½ΠΎΠ²ΡƒΡŽ, Ρ€Π°Π·Π΄Π°Π²ΠΈΠ² Π΅Π΅.

    git merge --squash <original branch>

  5. ЗафиксируйтС измСнСния, созданныС слияниСм, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сводного сообщСния ΠΎ фиксации(ΠΊΠΎΠΌΠΌΠΈΡ‚Π°).

    git commit -m <msg>

  6. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π°Π²ΠΈΡ‚ΡŒ.

    git checkout <branch>

  7. Π‘Π±Ρ€ΠΎΡΡŒΡ‚Π΅ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ(ΠΊΠΎΠΌΠΌΠΈΡ‚) sha, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.

    git reset --soft <sha1>

  8. ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΡƒΠΉΡ‚Π΅ эту Π²Π΅Ρ‚Π²ΡŒ Π½Π° основС Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ tmp1.

    git rebase tmp1

  9. Π’ΠΎΡ‚ ΠΈ всС — Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ tmp1, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС Π² порядкС.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Jool Β  Β 

30 ΠΌΠ°Ρ€Ρ‚Π° 2020 Π² 13:07



0

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я создал, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ этот процСсс: git-squash . НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π°Π²ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, которая Π±Ρ‹Π»Π° Ρ€Π°Π·Π²Π΅Ρ‚Π²Π»Π΅Π½Π° ΠΎΡ‚ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅:

git squash master
git push --force

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


sheerun Β  Β 

01 июня 2020 в 19:37



0

git checkout YOUR_RELEASE_BRANCH
git pull
git checkout -b A_NEW_BRANCH
git merge --squash YOUR_BRANCH_WITH_MULTIPLE_COMMITS
git commit -am "squashing all commits into one"
git push --set-upstream origin A_NEW_BRANCH

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


izy Β  Β 

27 августа 2020 Π² 03:23



-1

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡΡ

git status 

Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит.

Π—Π°Ρ‚Π΅ΠΌ

git checkout master 
git merge --squash bugfix
git add (add which files you want or use wildcard command like ".")

Π—Π°Ρ‚Π΅ΠΌ

git commit -m "message"

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ послСднСС Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠ΅

git push -u origin master

Π—Π΄Π΅ΡΡŒ origin ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡƒΠ»ΡŒΡ‚ΠΎΠΌ дистанционного управлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Let’s L.C.E Β  Β 

19 августа 2020 Π² 10:28


ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ вопросы:

Различия ΠΌΠ΅ΠΆΠ΄Ρƒ Git merge —squash ΠΈ —no-commit

Как говорится Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ, я Π½Π΅ совсСм понимаю Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ a git merge —squash ΠΈ a git merge —no-commit . Насколько я понимаю страницу справки для git merge , ΠΎΠ±Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ оставят мСня Π². ..

ΠŸΠΎΡ‡Π΅ΠΌΡƒ я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git merge —squash с —no-ff?

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git merge —squash с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ —no-ff, Π½ΠΎ git Π½Π΅ позволяСт. Π£ ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅ΡΡ‚ΡŒ сахар, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΌΠ½Π΅? Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ быстроС слияниС Π²ΠΏΠ΅Ρ€Π΅Π΄, ΠΈ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ…

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚Π΅ git squash merge ΠΈ git merge снова

Π£ мСня Π΅ΡΡ‚ΡŒ 2 ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠΈ ΠΈ мастСр. Бквош merge Π±Ρ‹Π» сдСлан Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ мастСра. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ происходили ΠΊΠ°ΠΊ Π² основной, Ρ‚Π°ΠΊ ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ вСтвях. Π’Π΅ΠΏΠ΅Ρ€ΡŒ я попытался…

git merge —squash (Π²Π΅Ρ‚Π²ΡŒ) Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ

Π’ настоящСС врСмя Ρƒ мСня Π΅ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠ° 1-user-model . ΠžΡ‚ΡΡŽΠ΄Π° я Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» ΠΈ создал Π²Π΅Ρ‚ΠΊΡƒ 1-user-model-squash . Π—Π°Ρ‚Π΅ΠΌ , ΠΊΠΎΠ³Π΄Π° я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git merge —squash 1-user-model , я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ эту…

Git squash ΠΈ merge

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ½Π΅, Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ: git merge —squash ΠΈ git merge —no-ff

git `merge —squash` Π½Π΅ добавляСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ «Merge» для фиксации(ΠΊΠΎΠΌΠΌΠΈΡ‚Π°)

МнС Π±Ρ‹Π»ΠΎ интСрСсно, ΠΊΠ°ΠΊ всС инструмСнты ΡƒΠ·Π½Π°ΡŽΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅Ρ‚Π²ΠΈ/ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ, ΠΏΠΎΠΊΠ° я Π½Π΅ нашСл Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Merge Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Мой вопрос Ρ‚Π°ΠΊΠΎΠ²: ΠΏΠΎΡ‡Π΅ΠΌΡƒ a git merge —squash Π½Π΅ добавляСт этот…

Merge a PR (Π½Π΅ Π±Π»ΠΈΠ·ΠΊΠΎ) ΠΎΡ‚ git —squash

Когда я Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡΡŒ Π² Π²Π΅Ρ‚ΠΊΠ΅ ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽ Π΅Π΅ Π² мастСра с: git merge —no-ff $BRANCH git push origin HEAD Он сливаСт PR Π² Github (Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΎΠΊ). Но Ссли я Π·Π°Ρ…ΠΎΡ‡Ρƒ merge Π΅Π³ΠΎ раздавят: git merge…

ΠšΠ°ΠΊΠΎΠ²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования «git merge —squash»?

НСкоторыС люди Π»ΡŽΠ±ΡΡ‚ git merge —squash ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅: Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ грязныС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ WIP ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ обоснованиС для ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹…

ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ слияниС послС `merge —squash` Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹

ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ слияниС: $ git merge feature01 $ git merge feature02 ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. сквош слияниС: $ git merge —squash feature01 # OK $ git merge —squash feature02 Auto-merging src/aaa.js…

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ‘ git merge <branch> —squash` Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚?

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ merge, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ git merge <branch> , git создаСт ΠΊΠΎΠΌΠΌΠΈΡ‚ merge ΠΈ обновляСт HEAD Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚Π²ΠΈ Π΄ΠΎ этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Однако ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ сквоша merge, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ git merge…

Squash послСдних git ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ – Diary of madman

ΠžΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π» ΡΡ‚Π°Ρ‚ΡŒΠΈ

ΠžΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: ΠŸΠ΅Ρ€Π΅Π²Π΅Π» Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΏΠΎ git squash Ρ‡Ρ‚ΠΎΠ±Ρ‹, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ.

Π’ git Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ (to squash) нСсколько послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½. Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ способ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠ΄ΠΎΠΌ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈΠ»ΠΈ сообщСством, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€). НиТС описан способ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Допустим, ваша история ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² выглядит Ρ‚Π°ΠΊ:

* df71a27 - (HEAD feature_x) Updated CSS for new elements (4 minutes ago)
* ba9dd9a - Added new elements to page design (15 minutes ago)
* f392171 - Added new feature X (1 day ago)
* d7322aa - (origin/feature_x) Proof of concept for feature X (3 days ago)

Π—Π΄Π΅ΡΡŒ прСдставлСна Π²Π΅Ρ‚ΠΊΠ° feature_x. Π’Ρ‹ ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡˆΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ d7322aa с Π½Π°ΠΈΠ²Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΈΡ‡ΠΈ Π₯. ПослС этого Π²Ρ‹ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ элСмСнты ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠ»ΠΈ CSS ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΆΠ°Ρ‚ΡŒ послСдниС Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² ΠΎΠ΄ΠΈΠ½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ история выглядСла симпатичнСС.
Для этого, потрСбуСтся ΠΊΠΎΠΌΠ°Π½Π΄Π°:

Она ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ваш тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ с содСрТимым:

pick f392171 Added new feature X
pick ba9dd9a Added new elements to page design
pick df71a27 Updated CSS for new elements

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ git, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ. Π”Π°Π²Π°ΠΉΡ‚Π΅ оставим ΠΊΠΎΠΌΠΌΠΈΡ‚ f392171 Ρ‚ΠΎΡ‚ Π³Π΄Π΅ ΠΌΡ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½Π°ΡˆΡƒ Ρ„ΠΈΡ‡Ρƒ ΠΈ соТмСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π²Π° Π² Π½Π΅Π³ΠΎ, избавившись ΠΎΡ‚ мусора. ИзмСним Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

pick f392171 Added new feature X
squash ba9dd9a Added new elements to page design
squash df71a27 Updated CSS for new elements

ПослС этого сохраним Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹ΠΉΠ΄Π΅ΠΌ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Git соТмСт ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Π½Π° этом всС!

Π’Π°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: НС сТимайтС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΡƒΠΆΠ΅ подСлились с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ измСняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Ρƒ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³.

#Git

#Tutorial


Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ слияния Π² Git: ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Когда Ρ€Π°Π±ΠΎΡ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, протСстирована ΠΈ Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ линию Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ слияния. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ стратСгии ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Atlassian. По ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ достаточно Π·Π½Π°Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ для своСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ слияния Π² Git

Под слияниСм подразумСваСтся объСдинСниС Π΄Π²ΡƒΡ… Π²Π΅Ρ‚ΠΎΠΊ. Git пытаСтся Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ для Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. Π•ΡΡ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² поиска. Они Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ «стратСгиями слияния». Когда Git Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, создаСтся ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ измСнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния β€” это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ с двумя родитСлями.

Команда git merge автоматичСски Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ слияния, Ссли ΠΎΠ½Π° Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ git merge ΠΈ git pull ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -s (стратСгия). К ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ -s ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ имя стратСгии слияния, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Если стратСгия явно Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π°, Git Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π½Π° основС прСдоставлСнных Π²Π΅Ρ‚ΠΎΠΊ. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ рассмотрим ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ стратСгии слияния.

РСкурсивная стратСгия

gitΒ mergeΒ -sΒ recursiveΒ branch2Β branch3

Π­Ρ‚Π° стратСгия Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с двумя указатСлями HEAD. Она примСняСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pull ΠΈΠ»ΠΈ merge для ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. РСкурсивная стратСгия позволяСт ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ слияния с ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π½ΠΎ Π½Π° сСгодняшний дСнь Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ. Π­Ρ‚Π° стратСгия примСняСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ pull ΠΈΠ»ΠΈ merge для ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

РСшСниС

gitΒ mergeΒ -sΒ resolveΒ branch2Β branch3

Π­Ρ‚Π° стратСгия ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° указатСля HEAD с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° трСхстороннСго слияния. Данная стратСгия пытаСтся Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ нСопрСдСлСнности ΠΏΡ€ΠΈ пСрСкрСстном слиянии ΠΈ считаСтся Π² Ρ†Π΅Π»ΠΎΠΌ бСзопасной ΠΈ быстрой.

БтратСгия «Осьминог»

gitΒ mergeΒ -sΒ octopusΒ branch2Β branch3Β branch4Β branchN

БтратСгия «Осьминог» примСняСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π΄Π²ΡƒΡ… Π³ΠΎΠ»ΠΎΠ². Когда пСрСдаСтся большС ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ, «осьминог» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ автоматичСски. Если Π² слиянии Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, эта стратСгия Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ слияния. Π’ основном ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объСдинСния Π³ΠΎΠ»ΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ.

БтратСгия «Наша»

gitΒ mergeΒ -sΒ oursΒ branch2Β branch3Β branchN

БтратСгия «Наша» (Ours) позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с мноТСством Π²Π΅Ρ‚ΠΎΠΊ. Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слияния всСгда соотвСтствуСт ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ HEAD Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Π­Ρ‚Π° стратСгия называСтся «Наша», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ всС измСнСния ΠΈΠ· Β«Ρ‡ΡƒΠΆΠΈΡ…Β» Π²Π΅Ρ‚ΠΎΠΊ. Π•Π΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” объСдинСниС истории Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ.

БтратСгия Β«ΠŸΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎΒ»

gitΒ mergeΒ -sΒ subtreeΒ branchAΒ branchB

Π­Ρ‚ΠΎ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ рСкурсивной стратСгии. ΠŸΡ€ΠΈ слиянии A ΠΈ B, Ссли B β€” Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ A, сначала обновляСтся B, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру A. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, обновляСтся Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся ΠΎΠ±Ρ‰ΠΈΠΌ для A ΠΈ B.

Π’ΠΈΠΏΡ‹ стратСгий слияния Π² Git

ЯвноС слияниС

Π―Π²Π½ΠΎΠ΅ слияниС β€” стандартный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. БлияниС называСтся явным, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ создаСтся Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния. ΠŸΡ€ΠΈ этом мСняСтся история ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ явно ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Π³Π΄Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ слияниС. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° слияния Ρ‚Π°ΠΊΠΆΠ΅ являСтся явным: ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ для ΠΊΠΎΠΌΠΌΠΈΡ‚Π° слияния. НСкоторыС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‚ явных слияний, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π‘ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ слияниС с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² rebase ΠΈΠ»ΠΈ fast-forward

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ явного слияния, ΠΏΡ€ΠΈ нСявном ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния Π½Π΅ создаСтся. Из Π²Π΅Ρ‚ΠΊΠΈ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ HEAD извлСкаСтся ряд ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΈ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. НСявныС слияния Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ событиями пСрСбазирования ΠΈΠ»ΠΈ ускорСнными слияниями. НСявноС слияниС прСдставляСт собой ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

Π‘ΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΠ΅ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Π΅Π· явного слияния)

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

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ рСкурсивной стратСгии слияния Π² Git

РассмотрСнная Π²Ρ‹ΡˆΠ΅ рСкурсивная стратСгия ΠΈΠΌΠ΅Π΅Ρ‚ свой ΠΏΠΎΠ΄Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

НС слСдуСт ΠΏΡƒΡ‚Π°Ρ‚ΡŒ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ со стратСгиСй слияния «Наша» (Ours). Он позволяСт автоматичСски Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ прСдпочтСния «нашСй» (ours) вСрсии. ИзмСнСния с Β«ΠΈΡ…Β» (theirs) стороны Π²Π½Π΅Π΄Ρ€ΡΡŽΡ‚ΡΡ автоматичСски, Ссли Π² Π½ΠΈΡ… ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ theirs, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², ΠΎΡ‚Π΄Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ‡ΡƒΠΆΠΎΠΌΡƒ Π΄Π΅Ρ€Π΅Π²Ρƒ слияния ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок слияния Π½Π° Π½Π΅Π²Π°ΠΆΠ½Ρ‹Ρ… ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… линиях. Π•Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Π΅Ρ‚ΠΊΠΈ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ слиянию, сильно расходятся.

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ позволяСт явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сравнСния. Алгоритмы сравнСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git diff.

ignore-*

Β Β Β Β ignore-space-change
Β Β Β Β ignore-all-space
Β Β Β Β ignore-space-at-eol
Β Β Β Β ignore-cr-at-eol

Набор ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° символы ΠΏΡ€ΠΎΠ±Π΅Π»Π°. Π›ΡŽΠ±Π°Ρ линия, которая соотвСтствуСт ΠΏΠΎΠ΄Π½Π°Π±ΠΎΡ€Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π°.

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запускаСт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ check-out ΠΈ check-in Π²ΠΎ всСх Ρ‚Ρ€Π΅Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΡΡ… Git ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² трСхстороннСго слияния. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ статусами checkin/checkout.

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ renormalize. Π­Ρ‚ΠΎ пСрСопрСдСляСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ merge.renormalize.

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΎ врСмя слияния.

Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΈ рСкурсивном слиянии поддСрТиваСтся ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ n ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ значСния сходства ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ n Ρ€Π°Π²Π½ΠΎ 100%.

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ являСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ стратСгии Β«ΠŸΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎΒ» (Subtree). Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ стратСгия Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с двумя Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ способ ΠΈΡ… совмСщСния Π² ΠΎΠ±Ρ‰Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅, этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡƒΡ‚ΠΈ Π΄Π΅Ρ€Π΅Π²Π° для обСспСчСния совмСщСния.

Наша ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° слияния Π² Git

Atlassian Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрытыС слияния. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° простая: явныС слияния ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ слСды ΠΈ контСкст Π² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡ‹Ρ… функциях. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ очистку локальной истории с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rebase, ΠΎΠ΄Π½Π°ΠΊΠΎ это Π½Π΅ мСняСт Π½Π°ΡˆΡƒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ, Π° дополняСт Π΅Π΅.

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² GIT

Π‘Π»ΡƒΡ‡Π°ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ происходит довольно Ρ€Π΅Π΄ΠΊΠΎ, Π½ΠΎ ΠΌΠ΅Ρ‚ΠΊΠΎ — это «ΠΠ°Π°Π°Π°, я накосячил Π² git!!!». Π£ мСня ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Ρ‚Π°ΠΊΠΎΠ΅ сСгодня, ΠΊΠΎΠ³Π΄Π° я сдСлал rebase со squash’Π΅ΠΌ локальной Π²Π΅Ρ‚ΠΊΠΈ, Π½Π΅ имСя этих ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅. Git Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°ΡΡΡŒ слил ΠΌΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ пСрСнёс Π΅Π³ΠΎ, Π° ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, создав Π½ΠΎΠ²Ρ‹ΠΉ squash-ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, здСсь я вспомнил ΠΏΡ€ΠΎ Π»ΠΎΠ³ΠΈ ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Git ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ практичСски Π»ΡŽΠ±Ρ‹Π΅ измСнСния. ВсС связанноС с ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ HEAD’Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ reset’ΠΎΠΌ. Π’ ΠΌΠΎΡ‘ΠΌ случаС ΠΎΡ‚ΠΌΠ΅Π½Π° rebase дСлаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ способом…

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ послСдниС измСнСния (бСзопасно):

git reflog # для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΆΠΌΠ΅ΠΌ q
# ΠΈΠ»ΠΈ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ послСдниС 10 дСйствий
git reflog -n 10
# ΠΈΠ»ΠΈ Ρ‚ΠΎΠΆΠ΅ самоС, Π½ΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅
git reflog -10

НапримСр, ΠΌΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄

$ git reflog -n 6
703952e HEAD@{0}: rebase -i (finish): returning to refs/heads/BPN-3546
703952e HEAD@{1}: rebase -i (squash): BPN-3546 Add content type for Gauge in Drupal
9a23f7e HEAD@{2}: rebase -i (squash): # This is a combination of 2 commits.
c1b984f HEAD@{3}: rebase -i (pick): BPN-3546 Add content type for Gauge in Drupal
c6be61c HEAD@{4}: rebase -i (start): checkout refs/heads/Gauge
cf81cc3 HEAD@{5}: commit (amend): BPN-3546 Add content type for Gauge in Drupal

Π”Π°Π»ΡŒΡˆΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ΄ Π΄ΠΎ Π΅Ρ‘ состояния. Π—Π΄Π΅ΡΡŒ я Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ послСдниС 5 Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚ΠΎΠ² связаны с Ρ€Π΅Π±Π΅ΠΉΠ·ΠΎΠΌ. Π― ΠΈΡ… ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽ ΠΈ двигаю HEAD Π½Π°Π·Π°Π΄ Π½Π° 6 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нСльзя ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ дСйствиС ΡΠΎΠ²Π΅Ρ€ΡˆΡ‘Π½Π½ΠΎΠ΅ Ρ€Π°Π½Π΅Π΅ (Ссли ΠΎΠ½ΠΎ Π½Π΅ послСднСС Π² истории). МоТно лишь Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΎΡ‚ΠΌΠ΅Π½ΠΈΠ² всС дСйствия ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°.

Π€Π»Π°Π³ --hard Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ измСнСния Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.
НапримСр, Ссли Π²Ρ‹ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ», Ρ‚ΠΎ послС ΠΎΡ‚ΠΊΠ°Ρ‚Π° этот Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΈΠ· рСпозитория.Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ --soft, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ послС ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Ρ„Π°ΠΉΠ» останСтся ΠΊΠ°ΠΊ Π½Π΅ зафиксированныС измСнСния.

git reset --hard HEAD@{5}
# для Windows ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ
git reset --hard "HEAD@{5}"

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

Как ΡΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Git

«Бквош» Π² Git ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ объСдинСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Git Β«Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹Β»), хотя Ρ‡Π°Ρ‰Π΅ всСго это дСлаСтся ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚Π²Π΅ΠΉ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git squash Π½Π΅ сущСствуСт. ВмСсто этого сТатиС — это, скорСС, опция ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Git, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ интСрактивная пСрСстановка ΠΈΠ»ΠΈ слияниС.

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git

НС Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ всС эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π°ΡˆΡƒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ Β«Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ ΠΏΠΎ GitΒ» — бСсплатно!

Когда ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, Β«Ρ€Π°Π·Π΄Π°Π²Π»ΠΈΠ²Π°Π½ΠΈΠ΅Β» Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚Π΅ нСсколько ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π»ΠΈ Π²Π°ΠΌ это Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ, это — Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни — вопрос ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ: Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сТатиС ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ способом слияния Π²Π΅Ρ‚ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π΄Π°Π²Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Ρ‚Π°ΠΊΡƒΡŽ ​​как Β«masterΒ» ΠΈΠ»ΠΈ основной».

Но Π·Π°Ρ‡Π΅ΠΌ Π²Π°ΠΌ это Π΄Π΅Π»Π°Ρ‚ΡŒ? Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим классичСский случай Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°: Π²Ρ‹, вСроятно, Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π»ΠΈ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² этом контСкстС. Π’ зависимости ΠΎΡ‚ слоТности ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ вашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ большоС количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ снова ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅ Ρ€Π°Π·Π΄Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚:

  • (a) , Ссли Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ слияниСм, Ρ‚ΠΎ всС эти ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² ΠΎΠ΄Π½Ρƒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² основной истории фиксации Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° фиксация для этой ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.
  • (b) , Ссли Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠŸΠ ΠžΠ’Π˜Π’ раздавливания , всС ваши ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ сохранСны ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅.

НСкоторыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ видят Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ прСимущСство Π² использовании (Π°) ΠΈ использовании сквоша: вмСсто мноТСства ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΡˆΠ΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΠΌΠΈ, Π² основной истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² появляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для поддСрТания порядка!

Однако нСльзя ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ (Π°) ΠΈΠ»ΠΈ (Π±) — это Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉΒ» способ дСйствий.Π£ ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² Π΅ΡΡ‚ΡŒ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это Π² основном вопрос ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ ΠΈ условностСй.

Как ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹

Π•ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ способы ΠΈ инструмСнты, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ раздавливания ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’ этом постС ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Interactive Rebase ΠΈ Merge ΠΊΠ°ΠΊ ΠΎ Π΄Π²ΡƒΡ… основных способах сквоша ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ Π±Π°Π·Π°

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ€Π°Π·Π΄Π°Π²ΠΈΡ‚ΡŒ свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² любоС врСмя, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Git Β«Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹Β».Π£Π³Π»ΡƒΠ±Π»Π΅Π½ΠΈΠ΅ Π² Interactive Rebase Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ (взглянитС Π½Π° First Aid Kit for Git , Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ сСрия бСсплатных ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠΎΠ² ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅), Π½ΠΎ ΠΌΡ‹ вмСстС рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Допустим, Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ «функция / Π»ΠΎΠ³ΠΈΠ½Β») ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Β«Π³Π»Π°Π²Π½ΡƒΡŽΒ» Π²Π΅Ρ‚ΠΊΡƒ. Но ΠΏΠ΅Ρ€Π΅Π΄ этим Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΡΠΆΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ :

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, запустив сСанс ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²ΠΊΠΈ:

  $ git rebase -i HEAD ~ 3
  

ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Interactive Rebase позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дСйствий с вашСй историСй ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²; Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, нас интСрСсуСт ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «ΡΠΊΠ²ΠΎΡˆ». Если Π²Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Π»ΠΈΠ½ΠΈΠΉ ΠΊΠ°ΠΊ «сквош», ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅:

ПослС Π²Π²ΠΎΠ΄Π° сообщСния ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ — ΠΈ Ρ‚Ρ€ΠΈ старых ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² ΠΎΠ΄ΠΈΠ½.

НаконСчник
ИспользованиС ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ пСрСбазирования Π² башнС

Π’ случаС, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Tower Git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Interactive Rebase для сТатия Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΎΡ‡Π΅Π½ΡŒ просто: просто Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ любой ΠΈΠ· Π½ΠΈΡ… ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Squash Revisions. .. «ΠΈΠ· контСкстного мСню.

БлияниС

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚Π²Π΅ΠΉ:

  $ git merge - функция сквоша / Π²Ρ…ΠΎΠ΄

АвтоматичСскоС объСдинСниС imprint.html
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ img / iconBlog.png
АвтоматичСскоС слияниС about.html
Ѐиксация сквоша - HEAD Π½Π΅ обновляСтся
АвтоматичСскоС слияниС ΠΏΡ€ΠΎΡˆΠ»ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ; остановлСн ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй ΠΏΠΎ запросу
  

Π­Ρ„Ρ„Π΅ΠΊΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ обсуТдали Ρ€Π°Π½Π΅Π΅: всС измСнСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ слиянии, Π½ΠΎ с использованиСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° --squash , вмСсто ΠΊΠΎΠΌΠΌΠΈΡ‚Π° слияния Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски создаСтся , Ρƒ вас остаСтся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², это позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ автоматичСской фиксации, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходит Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ слияния. Π‘ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° всСго Π·Π° ΠΎΠ΄Π½Ρƒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

Запросы Π½Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅

Π­Ρ‚Π° стратСгия — использованиС сквоша ΠΏΡ€ΠΈ слиянии — часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Pull Request Π·Π°ΠΊΡ€Ρ‹Ρ‚. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для размСщСния ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ GitHub, GitLab ΠΈΠ»ΠΈ Bitbucket, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ это Π² качСствС ΠΎΠΏΡ†ΠΈΠΈ ΠΏΡ€ΠΈ объСдинСнии Pull Request:

Π£Π·Π½Π°Ρ‚ΡŒ большС

github — Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ ΡΠΊΠ²ΠΎΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² git?

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rebase Π΅ΡΡ‚ΡŒ нСсколько Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ, доступных Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ --interactive (ΠΈΠ»ΠΈ -i ), ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… — это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΠ²ΠΎΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹.Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ нСбольшиС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΈΡ… Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ дСнь ΠΈΠ»ΠΈ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ свои измСнСния. ΠœΡ‹ собираСмся ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ это Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: Π”Π΅Π»Π°ΠΉΡ‚Π΅ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π²ΠΎ внСшний Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Если Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ мноТСство ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². Волько Π½Π΅ пСрСписывайтС свою ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Ссли Сю подСлились с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

Допустим, Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСлали нСсколько Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… ΠΎΠ΄Π½Ρƒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ нашСго рСпозитория Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ выглядит Ρ‚Π°ΠΊ:

ПослСдниС 4 ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ счастливСС, Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ вмСстС, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ пСрСназначСния:

  $ git rebase -i HEAD ~ 4

pick 01d1124 Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ
pick 6340aaa ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
pick ebfd367 Π”ΠΆΠ΅ΠΊΠΈΠ» осознал сСбя.
pick 30e0ccb Π’Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» слоган Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.# Rebase 60709da..30e0ccb Π½Π° 60709da
#
# ΠšΠΎΠΌΠ°Π½Π΄Ρ‹:
# p, pick = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ
# e, edit = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ Π½Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ
# s, squash = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ сливаСтся с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксациСй
#
# Если Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ здСсь строчку, ЧВО COMMIT Π‘Π£Π”Π•Π’ УВЕРЯНЫ.
# Однако, Ссли Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ всС, ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ.
#
  

Π˜Ρ‚Π°ΠΊ, здСсь ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ нСсколько Π²Π΅Ρ‰Π΅ΠΉ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, я сказал Git, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‡Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм послСдних Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… HEAD находится с HEAD ~ 4. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Git помСстил мСня Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ тСкстом ΠΈ нСбольшим объяснСниСм Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.На этом экранС Π²Π°ΠΌ доступно мноТСство ΠΎΠΏΡ†ΠΈΠΉ, Π½ΠΎ сСйчас ΠΌΡ‹ просто собираСмся ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС Π² ΠΎΠ΄Π½Ρƒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. Π˜Ρ‚Π°ΠΊ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… строк Ρ„Π°ΠΉΠ»Π° Π½Π° это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚:

  pick 01d1124 Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ
squash 6340aaa ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»
squash ebfd367 Π”ΠΆΠ΅ΠΊΠΈΠ» осознал сСбя.
squash 30e0ccb Π’Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» слоган Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.
  

Π’ основном это ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Git ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² спискС.Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ сдСлано ΠΈ сохранСно, появится Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ тСкстом:

  # Π­Ρ‚ΠΎ комбинация 4 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².
# Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:
Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ

# Π­Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

# Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Π”ΠΆΠ΅ΠΊΠΈΠ» осознал сСбя. 

# Π­Ρ‚ΠΎ 4-Π΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Π’Π°ΠΊΠΆΠ΅ измСнился слоган Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

    # ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС фиксации для Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π›ΠΈΠ½ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ
    # с '#' Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Π° пустоС сообщСниС ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.# Π―Π²Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π±Π΅Π· -i ΠΈΠ»ΠΈ -o; прСдполагая - Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚ΠΈ ...
    # Π’ настоящСС врСмя Π½Π΅Ρ‚ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅.
    # ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:
    # (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git reset HEAD <Ρ„Π°ΠΉΠ»> ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сцСну)
    #
    # Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: LICENSE
    # ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: README.textile
    # ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: Rakefile
    # ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: bin / jekyll
    #
  

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ объСдиняСм Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Git позволяСт Π²Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ сообщСниС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π° основС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², задСйствованных Π² процСссС.ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ сообщСниС ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ, Π·Π°Ρ‚Π΅ΠΌ сохранитС ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ сдСлано, ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Ρ‹!

  Π‘ΠΎΠ·Π΄Π°Π½ ΠΊΠΎΠΌΠΌΠΈΡ‚ 0fc4eea: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ ΠΈ созданиС самосознания jekyll.
 ИзмСнСно 4 Ρ„Π°ΠΉΠ»Π°, 27 вставок (+), 30 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ (-)
  Ρ€Π΅ΠΆΠΈΠΌ создания 100644 Π›Π˜Π¦Π•ΠΠ—Π˜Π―
    УспСшно ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ refs / Heads / master.
  

А Ссли Π΅Ρ‰Π΅ Ρ€Π°Π· Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽβ€¦

Π˜Ρ‚Π°ΠΊ, Π΄ΠΎ сих ΠΏΠΎΡ€ это Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ. Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ Π²ΠΎ врСмя пСрСбазирования, ΠΈΡ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ довольно Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΈ Git ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Ρ‡Π΅Ρ€Π΅Π· всС, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.ΠžΡΠ½ΠΎΠ²Ρ‹ этого — ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ, git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», Π° Π·Π°Ρ‚Π΅ΠΌ git rebase --continue Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ процСсс. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ git rebase --abort Π²Π΅Ρ€Π½Π΅Ρ‚ вас Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ состояниС, Ссли Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. Если ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π²Ρ‹ потСряли Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» ссылок, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎ этой ссылкС.

Руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎ ΡΠΆΠ°Ρ‚ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git Rebase | Бэм Линдстром

Git — это систСма контроля вСрсий, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для управлСния постоянно ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Β«Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚Β» свои измСнСния Π² локальном ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ вмСстС с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ запиской. Частично ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ Git Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΅Π³ΠΎ быстрой ΠΈ Π»Π΅Π³ΠΊΠΎΠΉ способности ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, сохраняя критичСскиС измСнСния ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ вСтвям для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Когда ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти измСнСния Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ довольно скрупулСзными с историСй фиксации своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΡΡ‚Ρ€Π΅ΠΌΡΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ обновлСния ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ ΠΈ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌΠΈ.

Π’ этом ΠΊΠ»ΡŽΡ‡Π΅ я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ для ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся сТатиС ΠΈΠ»ΠΈ сТатиС этих Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ сообщСний ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ объСдинСниСм Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ Π½Π° Π»ΠΈΡ‡Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Если Π²Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° мСня, Π²Ρ‹ ΠΎΡˆΠΈΠ±Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈ часто ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. ΠŸΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ эффСктом этого являСтся ΠΎΠ±ΠΈΠ»ΠΈΠ΅ Π»ΠΈΡˆΠ½ΠΈΡ… сообщСний ΠΎ фиксации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ git. Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ этих ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ понятным ΠΊΠ°ΠΊ для нас, Ρ‚Π°ΠΊ ΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ….

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ это, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ 10 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Π²Π΅Ρ‚ΠΊΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «домашняя страница».

 * 44d2565 (HEAD -> home_page, master) Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ 
* 1bd999c Бтилизация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… WIP. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅
* a135e04 Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ поиска для отобраТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
* 76e5811 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ для элСмСнтов списка Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ
* 97178bd ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ WIP
* c289adc Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ div для Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
* 14a64ff Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚Π΅Π»Π°
* 83c9bbb Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ список items to nav
* 60042c8 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ nav ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ
* c0fa78d ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация

Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ WIP (Work in Progress) вмСстС с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, относящимися ΠΊ части домашнСй страницы нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹, вСроятно, Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΆΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ наш ΠΆΡƒΡ€Π½Π°Π» git Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ.

Для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π½ΠΈΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ ΠΈ ввСсти Π½Π°ΡˆΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку:

 git rebase -i HEAD ~  

ΠΈΠ»ΠΈ

 git rebase -i  

Π€Π»Π°Π³ Β«-iΒ» Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ интСрактивная ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²ΠΊΠ° с «», ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΌ количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ввСсти:

 git rebase -i HEAD ~ 9 

ΠΈΠ»ΠΈ

 git rebase -i 60042c8 

Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ΠΊΡ€ΠΎΡŽΡ‚ интСрфСйс Π½ΠΈΠΆΠ΅ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ для выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

p, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ commit
r, ΠΏΠ΅Ρ€Π΅Ρ„Ρ€Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС фиксации
e, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
s, сквош = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксациСй
f, исправлСниС = ΠΊΠ°ΠΊ «сквош», Π½ΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° этой фиксации
x, exec = Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ строки) с использованиСм ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
d, drop = ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

 0 Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ 60042c8 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 
1 Π²Ρ‹Π±ΠΎΡ€ 83c9bbb Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты списка Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ
2 Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ 14a64ff Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π° для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚Π΅Π»Π°
3 Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ c289adc Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ элСмСнт div для Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
4 Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ 97178bd ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ WIP
5 Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ 76e5811 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² элСмСнты списка Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ
6 Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ a135e04 Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ поиск i nΠ²Π²ΠΎΠ΄ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ дисплСя
7 pick 1bd999c Бтилизация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… WIP.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅
8 pick 44d2565 Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ
9
10 # ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ c0fa78d..44d2565 Π½Π° c0fa78d (9 ΠΊΠΎΠΌΠ°Π½Π΄)
11 #
12 # ΠšΠΎΠΌΠ°Π½Π΄Ρ‹:
13 # p, pick = use commit
14 # r, reword = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС фиксации
15 # e, edit = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ для измСнСния
16 # s, squash = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксациСй
17 # f, fixup = like "squash" , Π½ΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° этой фиксации
18 # x, exec = run command (ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ строки) с использованиСм ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
19 # d, drop = remove commit
20 #
21 # Π­Ρ‚ΠΈ строки ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ; ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ свСрху Π²Π½ΠΈΠ·.
22 #
23 # Если Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ здСсь строчку, ΠšΠžΠœΠ˜Π’Π•Π’ Π‘Π£Π”Π•Π’ УВЕРЯН.
24 #
25 # Однако, Ссли Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ всС, ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ.
26 #
27 # ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ пустыС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

ΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΡΠΆΠ°Ρ‚ΡŒ сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ домашнюю страницу Π² наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Для этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ squash вмСсто fixup . Π­Ρ‚ΠΎ сохранит всС наши второстСпСнныС сообщСния ΠΎ фиксации Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сТатой фиксации.

Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅: Π§Ρ‚ΠΎ, Ссли Π±Ρ‹ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅? ВмСсто pick ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово drop , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ эту Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈΠ· нашСго ΠΊΠΎΠ΄Π°. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ просто ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку фиксации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΡΠ²Π½ΠΎΡΡ‚ΡŒ drop .

ПослС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π²Π΅Ρ‚ΠΊΠΈ наш ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΆΡƒΡ€Π½Π°Π» git выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

 * ca22552 (HEAD -> home_page) Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ домашнюю страницу Π½Π° Π²Π΅Π±-сайт 
* c0fa78d ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация

Бквош фиксируСтся Π² ΠΎΠ΄Π½Ρƒ с Git

— Написано Triangles 17 ноября 2017 Π³.
β€’ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 21 дСкабря 2020 Π³.
β€’ ID 60 —

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ способ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния, особСнно ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠΌΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

Π’ Git Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ пСрСбазирования . Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ я ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ довольно часто; ΠžΠ±Ρ‹Ρ‡Π½ΠΎ я ΡƒΠ±ΠΈΡ€Π°ΡŽ своС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство, объСдиняя нСсколько Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ.

Π¨Π°Π³ 1: Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ git для запуска ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ сСанса пСрСбазирования:

  git rebase - интСрактивная Π“ΠžΠ›ΠžΠ’ΠšΠ ~ N
  

Или, ΠΊΠΎΡ€ΠΎΡ‡Π΅:

  git rebase -i HEAD ~ N
  

, Π³Π΄Π΅ N — количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ, , начиная с самого послСднСго .НапримСр, это гипотСтичСский список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², взятых ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log , Π° я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Z:

.

  871adf Π₯ΠΎΡ€ΠΎΡˆΠΎ, функция Z ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° --- Π±ΠΎΠ»Π΅Π΅ новая фиксация
0c3317 Ой, Π΅Ρ‰Π΅ Π½Π΅Ρ‚ ...
87871a Π― Π³ΠΎΡ‚ΠΎΠ²!
643d0e ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π°
afb581 Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎ ΠΈ Ρ‚ΠΎ
4e9baa Классная рСализация
d94e78 ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ вСрстак для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Z
6394dc Feature Y --- Π±ΠΎΠ»Π΅Π΅ старая фиксация
  

А Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

  871adf Π₯ΠΎΡ€ΠΎΡˆΠΎ, функция Z ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° --- Π±ΠΎΠ»Π΅Π΅ новая фиксация --┐
0c3317 Ой, Π΅Ρ‰Π΅ Π½Π΅Ρ‚... |
87871a Π― Π³ΠΎΡ‚ΠΎΠ²! |
643d0e ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π° | - ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ΠΈΡ… Π² ΠΎΠ΄ΠΈΠ½
afb581 Π˜ΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΎ ΠΈ это |
4e9baa Классная рСализация |
d94e78 ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ вСрстак для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Z ------------------- β”˜
6394dc Feature Y --- Π±ΠΎΠ»Π΅Π΅ старая фиксация
  

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅:

  84d1f8 Feature Z --- Π±ΠΎΠ»Π΅Π΅ новая фиксация (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ rebase)
6394dc Feature Y --- Π±ΠΎΠ»Π΅Π΅ старая фиксация
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ с Π½ΠΎΠ²Ρ‹ΠΌ Ρ…Π΅ΡˆΠ΅ΠΌ ( 84d1f8 Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅).Π˜Ρ‚Π°ΠΊ, Π² этом случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚:

  git rebase --interactive HEAD ~ [7]
  

, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ послСдниС сСмь ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½, Π° d94e78 ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ вСрстак для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Z — сСдьмой.

Π£ мСня ΠΊΡƒΡ‡Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ²ΠΎΡˆΠΈΡ‚ΡŒ, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ?

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ стороной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rebase --interactive HEAD ~ [N] являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², считая ΠΈΡ… ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ.К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ:

  git rebase --interactive [Ρ…Π΅Ρˆ фиксации]
  

Π“Π΄Π΅ [commit-hash] — это Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ· . Π˜Ρ‚Π°ΠΊ, Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚:

  git rebase - ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ 6394dc
  

Π“Π΄Π΅ 6394dc Feature Y . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ всС это ΠΊΠ°ΠΊ:

Π‘Π»ΠΈΡ‚ΡŒ всС ΠΌΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π° [commit-hash] .

Намного ΠΏΡ€ΠΎΡ‰Π΅, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ?

Π¨Π°Π³ 2: сбор ΠΈ Ρ€Π°Π·Π΄Π°Π²Π»ΠΈΠ²Π°Π½ΠΈΠ΅

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ появится Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π²Π°ΠΌΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ со списком ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ сначала это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² порядкС , ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ , Π³Π΄Π΅ Π±ΠΎΠ»Π΅Π΅ старый ΠΊΠΎΠΌΠΌΠΈΡ‚ находится Π½Π°Π²Π΅Ρ€Ρ…Ρƒ. Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» --- Π±ΠΎΠ»Π΅Π΅ старыС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ --- Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ понятно, Π²Ρ‹ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ этих Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

  pick d94e78 ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ срСду для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Z --- Π±ΠΎΠ»Π΅Π΅ ранняя фиксация
Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ 4e9baa Классная рСализация
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ afb581 Π˜ΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ это ΠΈ это
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ 643d0e ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π°
Π·Π°Π±Ρ€Π°Ρ‚ΡŒ 87871a Π― Π³ΠΎΡ‚ΠΎΠ²!
pick 0c3317 Ой, ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚...
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ 871adf ОК, функция Z ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° --- Π±ΠΎΠ»Π΅Π΅ новая фиксация

[...]
  

Под списком ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π΅ΡΡ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ (ΠΎΠΏΡƒΡ‰Π΅Π½ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ описаны всС доступныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ΠΎ врСмя ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ пСрСстановки Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ мноТСство хитростСй, Π½ΠΎ ΠΏΠΎΠΊΠ° Π΄Π°Π²Π°ΠΉΡ‚Π΅ остановимся Π½Π° основах. Наша Π·Π°Π΄Π°Ρ‡Π° здСсь — ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΊΠ°ΠΊ сТимаСмыС , , ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ / Π±ΠΎΠ»Π΅Π΅ старого : ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ.

Π’Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚Π΅ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ ΡΠΆΠ°Ρ‚ΠΈΡŽ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² рядом с Π½Π΅ΠΉ слово pick Π½Π° squash (ΠΈΠ»ΠΈ s для краткости, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² коммСнтариях).Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚:

  pick d94e78 ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ срСду для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Z --- Π±ΠΎΠ»Π΅Π΅ ранняя фиксация
s 4e9baa Классная рСализация
s afb581 Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎ ΠΈ Ρ‚ΠΎ
s 643d0e ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π°
s 87871a Π― Π³ΠΎΡ‚ΠΎΠ²!
s 0c3317 Ой, Π΅Ρ‰Π΅ Π½Π΅Ρ‚ ...
s 871adf ОК, функция Z ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° --- Π±ΠΎΠ»Π΅Π΅ новая фиксация

[...]
  

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€.

Π¨Π°Π³ 3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

Π’Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сказали Git ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС сСмь ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² спискС.ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ имя: ваш Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ снова всплываСт с сообщСниСм ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, состоящим ΠΈΠ· ΠΈΠΌΠ΅Π½ всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ€Π°Π·Π΄Π°Π²ΠΈΠ»ΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всС ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, ΠΈ сообщСниС ΠΎ фиксации ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ списку всСх ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… фиксаций, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

  ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ срСду для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Z
Классная рСализация
Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎ ΠΈ Ρ‚ΠΎ
ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π°
Π― Π³ΠΎΡ‚ΠΎΠ²!
Упс, Π΅Ρ‰Π΅ Π½Π΅Ρ‚ ...
Π₯ΠΎΡ€ΠΎΡˆΠΎ, функция Z ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°
  

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ β€‹β€‹ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, поэтому я ΡΡ‚ΠΈΡ€Π°ΡŽ сообщСниС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ понятноС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ . РСализованная функция Z .

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ

Stackoverflow — Git rebase ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ послСдниС n ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (ссылка)
Stackoverflow — Как я ΠΌΠΎΠ³Ρƒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΠΎΠ΄Π½Ρƒ? (ссылка)
Gitready — Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (ссылка)

ВсСгда сТимайтС ΠΈ пСрСустанавливайтС свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Git

ИспользованиС git для управлСния вСрсиями обСспСчиваСт эффСктивноС сотрудничСство Π² тСхничСских ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…. Как ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ инструмСнт, ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ Π³ΠΎΠ»ΠΎΠ²Π½Ρ‹Π΅ Π±ΠΎΠ»ΠΈ. ΠŸΠΎΡ€Π°Π±ΠΎΡ‚Π°Π² с самыми Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄, я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс squash and rebase ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΎΠ»Π΅Π΅ эффСктивным ΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹ΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс пСрСбазирования сквоша?

Π­Ρ‚ΠΎ просто — ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² свою ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ (часто master ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ), ваша Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сТата Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сборочного ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈΠ· ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ основной Π²Π΅Ρ‚ΠΊΠ°. Π’ΠΎΡ‚ Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠ°.

ΠŸΠΎΡ‚ΡΠ½ΠΈΡ‚Π΅ Π²Π΅Π΄ΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ

git pull origin master

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ ошибки / Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

git checkout -b имя Π²Π΅Ρ‚ΠΊΠΈ

ВноситС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π³ΠΎΡ‚ΠΎΠ² ΠΊ сборкС ΠΈ всС тСсты ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Ρ‹.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с Π½Π°Ρ‡Π°Π»Π° вашСй Π²Π΅Ρ‚ΠΊΠΈ. Π•ΡΡ‚ΡŒ нСсколько способов ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ это. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто git log ΠΈ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ»ΠΈ

git log --graph --decorate --pretty = oneline --abbrev-commit

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

Бквош Π΄ΠΎ 1 фиксации.

git rebase -i HEAD ~ [ΠšΠžΠ›Π˜Π§Π•Π‘Π’Π’Πž ΠšΠžΠœΠ˜Π’Π•Π’ΠžΠ’]

Π˜Π›Π˜

git rebase -i [SHA]

Если Π²Ρ‹ Ρ€Π°Π½Π΅Π΅ отправляли свой ΠΊΠΎΠ΄ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

git push origin имя Π²Π΅Ρ‚ΠΊΠΈ --force

ΠžΡ‚Π΄Π΅Π»Π΅Π½ΠΈΠ΅ кассы

мастСр ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ git

ΠŸΠΎΡ‚ΡΠ½ΠΈΡ‚Π΅ Π²Π΅Π΄ΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ

git pull origin master

Ошибка оформлСния Π·Π°ΠΊΠ°Π·Π° / Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ°

git checkout branchName

Π Π΅Π±Π°Π·Π° ΠΎΡ‚ мастСра

git rebase master

ΠžΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ компилируСтся ΠΈ всС тСсты проходят.ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ.

git push origin имя Π²Π΅Ρ‚ΠΊΠΈ --force

ΠžΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π·, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² мастСр

мастСр ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ git

git merge branchName

git push origin master

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ этот Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс?

Если Π²Ρ‹ послСдуСтС этому процСссу, ΠΎΠ½ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π’Π‘Π• Π±ΡƒΠ΄ΡƒΡ‚ зафиксированы Π² основной сборкС ΠΈ ΠΏΡ€ΠΎΠΉΠ΄ΡƒΡ‚ тСсты. Π­Ρ‚ΠΎΡ‚ простой Ρ„Π°ΠΊΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git bisect ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π½Π°ΠΉΡ‚ΠΈ источник ошибки. Git bisect становится ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСэффСктивным, Ссли Π² основной Π²Π΅Ρ‚ΠΊΠ΅ Π΅ΡΡ‚ΡŒ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹; Ссли Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊ Π½Π΅Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ фиксации, Π±ΡƒΠ΄Π΅Ρ‚ слоТно ΠΈΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, внСсла Π»ΠΈ ΠΎΠ½Π° ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π­Ρ‚ΠΎΡ‚ процСсс Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ваш ΠΆΡƒΡ€Π½Π°Π» git. Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²ΠΈΠ΄Π΅Π»ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΆΡƒΡ€Π½Π°Π»Π° git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит Ρ‚Π°ΠΊ?

НСвСроятно слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит, особСнно Ссли ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ это с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΉ процСсс Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ каТдая фиксация содСрТит вСсь ΠΊΠΎΠ΄ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ исправлСния ошибки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всю Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² фиксации, ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ фиксации ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ.

Моим Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этого Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠ·-Π·Π° ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ сТались Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΉ фиксации, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с этими ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ сниТаСт риск ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².

Π’Π°ΠΊ Π² Ρ‡Π΅ΠΌ ΠΆΠ΅ нСдостатки?

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ сТимаСм ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΡƒΠ΅ΠΌ, ΠΌΡ‹ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ мСняСм ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ рСпозитория. НСкоторыС люди ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ история Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π²Π°ΡˆΡƒ ΠΈΡΡ‚ΠΈΠ½Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅, ΠΏΠ»ΠΎΡ…ΠΎΠ΅ ΠΈ ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ²ΠΎΠ΅.Π― полагаю, Ρ‡Ρ‚ΠΎ чистая история Π±ΠΎΠ»Π΅Π΅ Ρ†Π΅Π½Π½Π°, Ρ‡Π΅ΠΌ Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ. НС вся история потСряна; стойкиС ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Ρ‹ всС Π΅Ρ‰Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ ссылок. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ нСбольшой нСдостаток Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ тСряСм Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° сдавливаСм наши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Если Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚Π΅ ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ строил ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ» тСсты. Π₯отя этот Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ опасСн, Ссли Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, послС минимального образования Π² этом вопросС этот процСсс Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ бСзопасСн.

TLDR

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

____________________________________________________________________________________________________________________

НанимаСм! Π˜Ρ‰Π΅ΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ²-программистов, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ нашим ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Π² Π‘Π°Π½-Ѐранциско, Лос-АндТСлСсС, Нью-Π™ΠΎΡ€ΠΊΠ΅, Π¦Π”Π₯.

Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΈ ΠΏΠΎΠ΄Π°ΠΉΡ‚Π΅ заявку Π½Π° сайтС www.carbonfive.com/careers

Бквош и слияниС | GitLab

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ вСрсий

  • ΠŸΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° GitLab Free Π² вСрсии 11.0.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сквоша ΠΈ слияния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ вашСго ΠΌΠ΅Ρ€ΠΆ-рСквСста Π² ΠΎΠ΄ΠΈΠ½
ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‡ΠΈΡΡ‚ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ.

ΠžΠ±Π·ΠΎΡ€

Squashing позволяСт Π²Π°ΠΌ привСсти Π² порядок ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ фиксации Π²Π΅Ρ‚ΠΊΠΈ ΠΏΡ€ΠΈ принятии слияния.
запрос. Он примСняСт всС измСнСния Π² ΠΌΠ΅Ρ€ΠΆ-рСквСстС ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρƒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ,
Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ этот ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ слияния, установлСнный для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, сТатиС ΠΌΠ΅Ρ€ΠΆ-рСквСста ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²:

Π’ ΠΎΠ΄Π½Ρƒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ слиянии:

note Π—Π° сТатой фиксациСй Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ слСдуСт фиксация слияниСм, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ слияния для этого рСпозитория ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ слияния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ слияниСм Π²
Настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°> ΠžΠ±Ρ‰ΠΈΠ΅> Запросы Π½Π° слияниС> ΠœΠ΅Ρ‚ΠΎΠ΄ слияния> БлияниС с ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠΎΠΉ Π²ΠΏΠ΅Ρ€Π΅Π΄ .

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ фиксации сТатой фиксации:

  • Взято ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ многострочного сообщСния фиксации ΠΏΡ€ΠΈ слиянии.
  • Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΌΠ΅Ρ€ΠΆ-рСквСста, Ссли Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ многострочноС сообщСниС ΠΎ фиксации.

note Π­Ρ‚ΠΎ вступаСт Π² силу Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 2 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π°Π·Π΄Π°Π²ΠΈΡ‚ΡŒ, сообщСниС фиксации Π½Π΅ мСняСтся, Ссли Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 фиксация.

Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ объСдинСниСм запроса Π½Π° слияниС.

Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со стратСгиСй слияния с ускорСнной ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠΎΠΉ Π²ΠΏΠ΅Ρ€Π΅Π΄, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΈ слияниС с ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠΎΠΉ Π²ΠΏΠ΅Ρ€Π΅Π΄.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ использования

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

ΠŸΡ€ΠΈ использовании сквоша ΠΈ слияния, ΠΊΠΎΠ³Π΄Π° запрос Π½Π° слияниС Π³ΠΎΡ‚ΠΎΠ² ΠΊ слиянию,
всС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сТатиС, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ слияниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ
ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΠΌΠ΅Ρ€ΠΆ-рСквСстС Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, история вашСй Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ останСтся чистой с
Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ сообщСния фиксации ΠΈ:

  • ΠŸΡ€ΠΈ нСобходимости Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‰Π΅.
  • ОбъСдинСнная Π²Π΅Ρ‚ΠΊΠ° сохраняСт ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ фиксации.

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сквоша для ΠΌΠ΅Ρ€ΠΆ-рСквСста

Π›ΡŽΠ±ΠΎΠΉ, ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запрос Π½Π° слияниС, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ сТатиС
Π² Ρ„ΠΎΡ€ΠΌΠ΅ запроса слияния. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠ½ΡΡ‚ΡŒ Ρ„Π»Π°ΠΆΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ
ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ€ΠΆ-рСквСст:

ПослС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запроса Π½Π° слияниС Squash ΠΈ Merge всС Π΅Ρ‰Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹
ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π² описаниС ΠΌΠ΅Ρ€ΠΆ-рСквСста:

  1. ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ страницу слияния Π²Π²Π΅Ρ€Ρ… ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ .
  2. ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ запроса Π½Π° слияниС Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΈ установитС Ρ„Π»Π°ΠΆΠΎΠΊ
    Squash фиксируСтся, ΠΊΠΎΠ³Π΄Π° принят запрос Π½Π° слияниС .

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΎ врСмя принятия запроса Π½Π° слияниС.
Π’ ΠΊΠΎΠ½Ρ†Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΌΠ΅Ρ€ΠΆ-рСквСста рядом с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Merge стоит Ρ„Π»Π°ΠΆΠΎΠΊ Squash commitits
ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½ ΠΈΠ»ΠΈ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Squash ΠΈ Merge ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступны Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² фиксации Squash.

Π‘ΠΆΠ°Ρ‚Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅:

  • Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅: сообщСниС ΠΎ фиксации сквоша ΠΈΠ»ΠΈ настраиваСмоС сообщСниС.
  • Автор: Π°Π²Ρ‚ΠΎΡ€ слияния.
  • ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‚Π΅Ρ€: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΉ сквош.

Бквош ΠΈ быстрая ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ° Π²ΠΏΠ΅Ρ€Π΅Π΄

Когда Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° настройка слияния с ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠΎΠΉ Π²ΠΏΠ΅Ρ€Π΅Π΄, слияниС
запрос Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстрой пСрСсылки Π±Π΅Π· сТатия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ
Π­Ρ‚ΠΎ. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ сТатиС доступно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ принятии запроса Π½Π° слияниС,
поэтому ΠΌΠ΅Ρ€ΠΆ-рСквСст, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, потрСбуСтся ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ сТатиСм, Π΄Π°ΠΆΠ΅ Ссли
Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ само ΠΏΠΎ сСбС ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ эквивалСнтом пСрСбазирования.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ фиксации сквоша

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ вСрсий

  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΎ Π² GitLab 13.2.
  • Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎ Π·Π° Ρ„Π»Π°Π³ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ.
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² GitLab 13.3.
  • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π½Π° GitLab.com.
  • МоТно Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ для производствСнного использования.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Squash Commits Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Squash ΠΈ Merge для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² настройки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° > ΠžΠ±Ρ‰ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Merge requests .Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ запросы Π½Π° слияниС.
ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π² ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

  • НС Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ : ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Squash ΠΈ Merge для сТатия всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄
    слияниС. Π€Π»Π°ΠΆΠΎΠΊ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ снят ΠΈ скрыт ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
  • Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ : ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сТатиС ΠΈ слияниС Π½Π° основС запроса слияния.
    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π»Π°ΠΆΠΎΠΊ снят (ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½), Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.
  • Encourage : ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Squash ΠΈ Merge Π½Π° основС запроса слияния.
    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π»Π°ΠΆΠΎΠΊ установлСн (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΎΡ‰Ρ€ΡΡ‚ΡŒ Π΅Π³ΠΎ использованиС, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ
    ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈ это.
  • Π’Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ : Бквош ΠΈ слияниС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ для всСх запросов Π½Π° слияниС, поэтому ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всСгда.
    Π€Π»Π°ΠΆΠΎΠΊ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ установлСн ΠΈ скрыт ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π€Π»Π°ΠΆΠΎΠΊ Squash and Merge отобраТаСтся ΠΏΡ€ΠΈ создании запроса Π½Π° слияниС ΠΈ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ описания ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ случая, ΠΊΠΎΠ³Π΄Π° для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Squash Commit Options установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НС Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π’Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ссли для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ . НС Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Squash and Merge, Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ всС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ
squash фиксируСтся локально Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° свою ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π΄ слияниСм.

Git Interactive Rebase, Squash, Amend ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы пСрСзаписи истории

Β«ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, сдСлайтС пСрСустановку ΠΏΠΎΠ²Π΅Ρ€Ρ… мастСра, ΠΈ ΠΌΡ‹ объСдиним ваш запрос Π½Π° пСрСнос».

«НС ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ вмСстС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ чистый, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹ΠΉ git.
история? Β».

Β«ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ сообщСниС вашСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ,
Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΈ ΠΊΠ°ΠΊ это Ρ€Π΅ΡˆΠ°Π΅Ρ‚? Β».

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ вопросы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Π΄Π°ΡŽΡ‚ Π² запросах Π½Π° вытягиваниС. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ
ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΊΠ°ΠΊ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ, ΠΈ ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Одно ΠΈΠ· самых простых пСрСписываний истории, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git, — это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ послСднСго
Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС. Допустим, сразу послС фиксации Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ Π²
description, ΠΈΠ»ΠΈ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ описания Π½Π°Π±ΠΎΡ€Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ
исправлСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ выполняСтС:

ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€
с послСдним сообщСниСм ΠΎ фиксации, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ПослС сохранСния новая фиксация
Π±ΡƒΠ΄Π΅Ρ‚ создан с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ измСнСниями ΠΈ Π½ΠΎΠ²Ρ‹ΠΌ сообщСниСм, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΌ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ
с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ сообщСниСм.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΠΈΠ»ΠΈ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ зафиксировали. Для этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ измСнСния
Π° Π·Π°Ρ‚Π΅ΠΌ внСситС ΠΏΠΎΠΏΡ€Π°Π²ΠΊΡƒ:

  git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ README.md config / routes.rb
git rm notes.txt
git commit --amend
  

Помимо рСдактирования сообщСния фиксации, новая фиксация Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ измСнСния
указываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git add ΠΈ git rm . Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π°. Для
ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  git commit --amend --author = "Π’ΡƒΡ‚ ΠšΠΎΡΡ‚Π° ΠΈ Дэн ΠšΡ€ΠΎΡƒΠΊ "
  

ДостиТСниС Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΎ! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ
ваш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ измСнСния Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ / ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ
Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС.Но Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ всС ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅
послСдний Ρ€Π°Π·Π΄Π΅Π» этого сообщСния Π² Π±Π»ΠΎΠ³Π΅ ΠΎΠ·Π°Π³Π»Π°Π²Π»Π΅Π½ «ОПАБНОБВЬ».

Π₯ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± этом сСйчас, Π½ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅
инструмСнт Ρ€Π°Π½ΡŒΡˆΠ΅. Π–Π΄ΠΈΡ‚Π΅ продолТСния! ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ станСт ΠΏΡ€ΠΎΡ‰Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ о…

git rebase ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ примСняСт ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ
ΠΎΠ΄ΠΈΠ½, ΠΏΠΎ порядку, ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²
ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это лишь Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΠ° айсбСрга, достаточная для прСодолСния
Ρ€Π°Π·Ρ€Ρ‹Π² ΠΌΠ΅ΠΆΠ΄Ρƒ коммСнтариями StackOverflow ΠΈΠ»ΠΈ GitHub ΠΈ страницами руководства git.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ — - ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ( -i для краткости), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ
ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ со списком ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚
list ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, позволяя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список ΠΏΠ΅Ρ€Π΅Π΄ запуском
ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дСйствиС.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Допустим, я Ρ…ΠΎΡ‡Ρƒ ΠΏΠ΅Ρ€Π΅Ρ„Ρ€Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· послСдних 4 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² этого Π±Π»ΠΎΠ³Π°. Π― Ρ‚ΠΎΠ³Π΄Π° Π±Π΅Π³Ρƒ
git rebase -i HEAD ~ 4 , ΠΈ Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ я Π²ΠΈΠΆΡƒ:

  pick 07c5abd Знакомство с OpenPGP ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ основам использования
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ de9b1eb Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PostChecker :: Post # urls
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ 3e7ee36 Π­ΠΉ, рСбята, ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ fa20af3 git ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, сквош, ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°

# Rebase 8db7e8b..fa20af3 Π½Π° 8db7e8b
#
# ΠšΠΎΠΌΠ°Π½Π΄Ρ‹:
# p, pick = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ
# r, reword = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС фиксации
# e, edit = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ Π½Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ
# s, squash = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ сливаСтся с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксациСй
# f, fixup = ΠΊΠ°ΠΊ "squash", Π½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° этой фиксации
# x, exec = run ΠΊΠΎΠΌΠ°Π½Π΄Π° (ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ строки) с использованиСм ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ
#
# Π­Ρ‚ΠΈ строки ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ; ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ свСрху Π²Π½ΠΈΠ·.
#
# Если Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ здСсь строчку, ЧВО COMMIT Π‘Π£Π”Π•Π’ УВЕРЯНЫ.
#
# Однако, Ссли Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ всС, ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ.#
# ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ пустыС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹
  

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΎΡ‚ старых ΠΊ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌ. Π‘ΠΌ. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΏΠΎΠ΄
список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²? Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ объяснСнию, ΠΌΠ΅Ρ€Π·Π°Π²Π΅Ρ†! pick ( p для краткости) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
дСйствиС. Π’ этом случаС ΠΎΠ½ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΅Π³ΠΎ
содСрТаниС ΠΈΠ»ΠΈ сообщСниС. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ (ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅) этого Ρ„Π°ΠΉΠ»Π° Π½Π΅ повлияСт Π½Π°
Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Если я скаТу reword ( r для краткости) Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, я Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

  pick 07c5abd Знакомство с OpenPGP ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ основам использования
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ de9b1eb Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PostChecker :: Post # urls
r 3e7ee36 Π­ΠΉ, рСбята, ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ свСт
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ fa20af3 git ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, сквош, ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°
  

Когда я ΡΠΎΡ…Ρ€Π°Π½ΡΡŽ ΠΈ Π²Ρ‹Ρ…ΠΎΠΆΡƒ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, git Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ описанным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, ΠΏΡ€ΠΈΠ·Π΅ΠΌΠ»ΡΡΡΡŒ
я снова Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ я исправил commit 3e7ee36 .Π― Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽ это
Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, ΠΈ Π²ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  robots.oughttbot.com tc-git-rebase% git rebase -i HEAD ~ 4
[detached HEAD dd62a66] ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅
 Автор: КалСб Π₯Π°Ρ€Ρ‚
 Π”Π°Ρ‚Π°: 31 ΠΎΠΊΡ‚, ΠΏΡ‚, 10:52:26 2014 -0500
 2 Ρ„Π°ΠΉΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, 39 вставок (+), 42 удалСния (-)
Refs / Heads / tc-git-rebase ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹.
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ КалСб Π² своСм сообщСнии фиксации Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: Β«ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅Β», нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ,
Ρ€Π΅Π±Π΅Π½ΠΎΠΊ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

ДостиТСниС Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΎ! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС любого
ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, просто ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ «ОПАБНОБВЬ»
Ρ€Π°Π·Π΄Π΅Π».

Π”Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ пСрСбазирования Π½Π°ΠΌ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚:

  • squash ( s для краткости), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ (
    ΠΎΠ΄ΠΈΠ½ Π² строкС ΠΏΠ΅Ρ€Π΅Π΄)
  • fixup ( f для краткости), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСйствуСт ΠΊΠ°ΠΊ «сквош», Π½ΠΎ отбрасываСт эту Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ
    сообщСниС

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ пСрСбазирования, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ.
Π΄ΠΎ. Π£ нас Π±Ρ‹Π»ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΌΠΎΠΈ собствСнныС для этого сообщСния Π² Π±Π»ΠΎΠ³Π΅, ΠΈ
Ρ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡ‚ КалСба, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ связаны с Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ постом Π½Π° PGP:

  pick 07c5abd Знакомство с OpenPGP ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ основам использования
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ de9b1eb Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PostChecker :: Post # urls
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ 3e7ee36 Π­ΠΉ, рСбята, ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ fa20af3 git ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, сквош, ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°
  

Допустим, я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ КалСба, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚
Ρ‚ΠΎΡ‚ ΠΆΠ΅ логичСский Π½Π°Π±ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ git, Ссли ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ
ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ эти измСнСния Π² этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ
ΠΏΠ΅Ρ€Π²ΠΎΠ΅ сообщСниС фиксации ΠΈ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π΄Π²Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ фиксации Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅
ΠΎΠ΄ΠΈΠ½. Π― мСняю pick Π½Π° squash Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

  pick 07c5abd Знакомство с OpenPGP ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ основам использования
s de9b1eb Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PostChecker :: Post # urls
s 3e7ee36 Π­ΠΉ, рСбята, ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ fa20af3 git ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, сквош, ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°
  

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅, ΠΈ я попадаю Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ сообщСниС фиксации объСдинСнного
Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (посмотритС, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ):

  # Π­Ρ‚ΠΎ комбинация 3 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².# Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:
Знакомство с OpenPGP ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ основам использования

Помимо дСмистификации ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТного инструмСнта, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ этикСта,
этот пост ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΠΊ описанная Π²
этот Ρ‚Π²ΠΈΡ‚:

> ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ с PGP. Они ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ ΠΌΠΎΠΈΠΌ
> исходноС элСктронноС письмо, всС Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ тСкста. Они этого Π½Π΅ осознавали.

# Π­Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PostChecker :: Post # urls

# Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Π­ΠΉ, Π΄Π΅Ρ‚ΠΊΠΈ, ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ

# ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС фиксации для Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.Π›ΠΈΠ½ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ
# с '#' Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Π° пустоС сообщСниС ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.
#
# Автор: КалСб Π₯Π°Ρ€Ρ‚
# Π”Π°Ρ‚Π°: Π’Ρ‚, 2 сСнтября, 09:39:07 2014 -0500
#
# выполняСтся ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅; Π½Π° 71d4789
# Π’ настоящСС врСмя Π²Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π²Π΅Ρ‚ΠΊΠΈ 'tc-git-rebase' Π½Π° '71d4789'.
  

Π― Ρ€Π΅ΡˆΠ°ΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ сообщСниС ΠΎ фиксации ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π²
Π²Ρ‚ΠΎΡ€ΠΎΠ΅ сообщСниС фиксации. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹
Π½Π° Π΄Π²Π°: ΠΎΠ΄Π½ΠΎ ΠΎΡ‚ Π₯Π°Π»Π΅Π²Π° ΠΈ ΠΌΠΎΠ΅ послС.Π₯ΠΎΡ€ΠΎΡˆΠΎ!

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ fixup , Ссли Π±Ρ‹ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ€Π°Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ
измСняСтся, Π½ΠΎ Π½Π΅ сообщСниС фиксации Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ фиксации. Π’ этом случаС
ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выглядСли Π±Ρ‹ Ρ‚Π°ΠΊ:

  pick 07c5abd Знакомство с OpenPGP ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ основам использования
s de9b1eb Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PostChecker :: Post # urls
f 3e7ee36 Π­ΠΉ, рСбята, ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ свСт
Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ fa20af3 git ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, сквош, ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ°
  

ΠŸΡ€ΠΈ сохранСнии Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π±Ρ‹ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ сообщСниС фиксации
ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ для нас:

  # Π­Ρ‚ΠΎ комбинация 3 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².# Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:
Знакомство с OpenPGP ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ основам использования

Помимо дСмистификации ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТного инструмСнта, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ этикСта,
этот пост ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΠΊ описанная Π²
этот Ρ‚Π²ΠΈΡ‚:

> ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ с PGP. Они ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ ΠΌΠΎΠΈΠΌ
> исходноС элСктронноС письмо, всС Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ тСкста. Они этого Π½Π΅ осознавали.

- https://twitter.com/csoghoian/status/505366816685060096

* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ `gpg2`.
* ΠžΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ Π²  URL  s
  ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΈΡ…

  Markdown позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ Π²  URL  для escape-символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ нСпосрСдствСнно Π²
   URL , поэтому `http: // some \ _url.com`
  становится http: // some_url.com.

  Π­Ρ‚ΠΎ смягчаСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с подсвСткой синтаксиса ΡƒΡ†Π΅Π½ΠΊΠΈ, полагая, Ρ‡Ρ‚ΠΎ
  Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ тСкст начался, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ `_this text_`.

# Π­Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PostChecker :: Post # urls

# Π’Ρ€Π΅Ρ‚ΡŒΠ΅ сообщСниС фиксации Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ:

# Π­ΠΉ, Π΄Π΅Ρ‚ΠΊΠΈ, ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΡŒΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ свСт

# ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС фиксации для Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π›ΠΈΠ½ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ
# с '#' Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Π° пустоС сообщСниС ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.
#
# Автор: КалСб Π₯Π°Ρ€Ρ‚
# Π”Π°Ρ‚Π°: Π’Ρ‚, 2 сСнтября, 09:39:07 2014 -0500
#
# выполняСтся ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅; Π½Π° 71d4789
# Π’Ρ‹ сСйчас Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π΅Ρ‚ΠΊΠΈ 'tc-git-rebase' Π½Π°
Β«71d4789Β». 

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ вывСсти:

  [ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π“ΠžΠ›ΠžΠ’Π 809241b] ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ OpenPGP ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ основам использования
 Автор: КалСб Π₯Π°Ρ€Ρ‚
 Π”Π°Ρ‚Π°: 2 сСн, Π²Ρ‚ΠΎΡ€Π½ΠΈΠΊ, 09:39:07 2014 Π³. -0500
 2 Ρ„Π°ΠΉΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, 1429 вставок (+), 1 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (-)
 Ρ€Π΅ΠΆΠΈΠΌ создания 100644 source / posts / 2014 / 10-31-pgp-and-you.md
Refs / Heads / tc-git-rebase ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹.
  

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅: 2 ΠΊΠΎΠΌΠΌΠΈΡ‚Π° вмСсто 4, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π±Π»ΠΎΠ³ΠΎΠΌ.
ΠŸΠΎΡ‡Ρ‚Π°.

ДостиТСниС Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΎ! Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ вмСстС.Как
всСгда ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅ ОПАБНОБВЬ.

ΠœΡ‹ развСтвляСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΈ осваиваСм
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ Ρ€Π°Π·Π²Π΅Π΄ΠΊΠ΅ ΠΈ Π΄ΠΎΠ±Ρ‹Ρ‡Π΅ продвигаСтся Π²ΠΏΠ΅Ρ€Π΅Π΄. Наша история выглядит Ρ‚Π°ΠΊ:

  A --- B --- C функция
     /
D --- E --- F --- G восходящий / Π³Π»Π°Π²Π½Ρ‹ΠΉ
  

Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Β«ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ… мастСра», поэтому ΠΌΡ‹ исправляСм любоС слияниС
ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π΅ΠΈΠΌΠΈ вСтвями, ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ наш Π½Π°Π±ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ вмСстС.
Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π²Ρ€ΠΎΠ΄Π΅:

  Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ A '- B' - C '
             /
D --- E --- F --- G восходящий / Π³Π»Π°Π²Π½Ρ‹ΠΉ
  

ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ наши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, ΠΏΠΎ порядку, ΠΊ Π²Π΅Π΄ΡƒΡ‰Π΅ΠΌΡƒ устройству восходящСго ΠΏΠΎΡ‚ΠΎΠΊΠ°.ΠŸΠΎΡ…ΠΎΠΆΠ΅ Π½Π° описаниС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rebase! ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚
ΠΏΠΎΡΠ°Π΄ΠΈΡ‚ΡŒ нас Π² ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ сцСнарий:

  # НаправляСм наш ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ `upstream` Π½Π° ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Π²ΠΈΠ»ΠΊΡƒ
git ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ https://github.com/gotitbot/factory_girl.git

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· `upstream` (исходный Ρ„ΠΎΡ€ΠΊ)
git fetch Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ

# ΠžΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π· Π½Π° Π½Π°ΡˆΡƒ Π²Π΅Ρ‚ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
функция ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ git

# ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊ мастСру апстрима
git rebase upstream / master

# Π˜ΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, Π·Π°Ρ‚Π΅ΠΌ `git rebase --continue`, повторяйтС, ΠΏΠΎΠΊΠ° Π½Π΅ сдСлаСтС
# НаТимаСм Π½Π° Π½Π°ΡˆΡƒ Π²ΠΈΠ»ΠΊΡƒ
git push - Ρ„ΠΎΡ€ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ происхоТдСния
  

ДостиТСниС Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΎ! Π’Π°ΡˆΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ
Π²Π΅Ρ€ΡˆΠΈΠ½Π° послСднСго мастСра ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π²ΠΈΠ»ΠΊΠΈ.

Π˜Ρ‚Π°ΠΊ, получаСм…

Π’ΠΈΠ΄ΠΈΡ‚Π΅ --force Π² послСднСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git push ? Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ пСрСзаписываСм
история рСпозитория. Π­Ρ‚ΠΎ всСгда бСзопасно Π΄Π΅Π»Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Π½Π΅ дСлимся
Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ Π² Π½Π°ΡˆΠΈΡ… Ρ„ΠΈΠ»ΠΈΠ°Π»Π°Ρ… (см. ΠΌΠΎΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Ρ‹ Π²
ΠΏΡ€ΠΈΠΌΠ΅Ρ€ этого сообщСния Π² Π±Π»ΠΎΠ³Π΅).

Но Ссли Π²Ρ‹ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ выпуски, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ (ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΌΠΎΠ΅Π³ΠΎ рСпозитория, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я внСс Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ PGP
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹), Ρ‚ΠΎΠ³Π΄Π° всС Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π°ΡΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

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

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