Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Π₯Π²Π°Ρ‚ΠΈΡ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡ€Π° ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ. Π§Π°ΡΡ‚ΡŒ 2. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΡ‘Π» (Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π»)

Π’ послСдний Ρ€Π°Π· ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² скопированном ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ создаёт ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сидит сСбС Ρ‚ΠΈΡ…ΠΎ ΠΏΠΎΠΊΠ° ΠΎΠ±Π΅ ΠΊΠΎΠΏΠΈΠΈ Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π΅ ΡΠΎΠ»ΡŒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΈ Π² ΠΎΡ‡Π΅Π½ΡŒ ΠΎΡ‚Π΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Но Π·Π½Π°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияний?

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ любого ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.

Π”Π°Π²Π°ΠΉΡ‚Π΅ вСрнёмся ΠΊ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ ситуации:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° «feature» сущСствуСт ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΈ пСриодичСски сливаСтся Π² «master». Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ срСз Π΄Π΅Ρ€Π΅Π²Π° сразу послС послСднСго слияния А. ΠœΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ спринтом Π² «feature», ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ строка «apple» находится Π² Ρ„Π°ΠΉΠ»Π΅ настроСк, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ„ΠΈΡ‡Π΅ΠΉ. ОбС Π²Π΅Ρ‚ΠΊΠΈ Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ M1 ΠΈ F1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°ΡŽΡ‚ этот Ρ„Π°ΠΉΠ».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ прСдставим Ρ‡Ρ‚ΠΎ ΠΌΡ‹ нашли ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² старой Ρ„ΠΈΡ‡Π΅, которая ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€ΡƒΡˆΠΈΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π Π΅Π·ΠΊΠΎ прСсСкая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΌΡ‹ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„ΠΈΡ‡Ρƒ, мСняя строку Π½Π° «berry» ΠΈ фиксируя измСнСния ΠΊΠ°ΠΊ F2.

Π’ ΠΆΠΈΠ·Π½ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ строки c

Но Ρ€Π°Π· ΡƒΠΆ я Π½Π°Ρ‡Π°Π» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ «apple» ΠΈ «berry», ΠΏΡƒΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΠΎΠ½ΠΈ ΠΈ останутся.

Π₯ΠΎΡ€ΠΎΡˆΠΎ, ΠΌΡ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Ρ„ΠΈΡ‡Ρƒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅Ρ‚, ΠΈ скопировали ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² «master». Π€ΡƒΡ…, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄ΠΎΡ…Π½ΡƒΡ‚ΡŒ, ΠΊΡ€ΠΎΠ²ΠΎΡ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ остановлСно, Ρƒ нас Π΅ΡΡ‚ΡŒ врСмя ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ ΠΈ ΠΊΠ°ΠΊ это Ρ‡ΠΈΠ½ΠΈΡ‚ΡŒ.

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„ΠΈΡ‡Ρƒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² «master», Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² «feature», ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠΉ ΠΆΠ΅.

Пока ΠΌΡ‹ исслСдуСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρ€Π°Π±ΠΎΡ‚Π° Π² «master» Π²Π΅Ρ‚ΠΊΠ΅ продолТаСтся. ПозТС ΠΌΡ‹ Ρ‡ΠΈΠ½ΠΈΠΌ Π±Π°Π³, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Ρ„ΠΈΡ‡Ρƒ ΠΈ фиксируСм измСнСния ΠΊΠ°ΠΊ F3 Π² «feature» Π²Π΅Ρ‚ΠΊΠ΅. Π”Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выглядит Ρ‚Π°ΠΊ:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Новый нСсвязанный с «berry» ΠΊΠΎΠΌΠΌΠΈΡ‚ M3 Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Π²Π΅Ρ‚ΠΊΡƒ «master». Π’ «feature» ΠΌΡ‹ Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ «apple» ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ F3.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ «feature» Π² «master» Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΈΡ‡ΠΈ Π±Ρ‹Π»ΠΎ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ фиксом. Но вмСсто этого послС слияния ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

БлияниС ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ M4, Π½ΠΎ Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ оТиданиям строка всё Π΅Ρ‰Ρ‘ содСрТит «berry». Π’ «master» ΠΏΠ΅Ρ€Π΅ΠΊΠΎΡ‡Π΅Π²Π°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ„ΠΈΡ‡ΠΈ! Π”Π°ΠΆΠ΅ Ρ…ΡƒΠΆΠ΅, Π² «master» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ находятся ΠΎΠ±Π° фикса: ΠΊΠ°ΠΊ основной, Ρ‚Π°ΠΊ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ. Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ½ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ, ΠΈ появятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠ²Ρ‹Π΅ Π±Π°Π³ΠΈ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ„ΠΈΡ‡Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²Π΅Ρ‚ΠΊΠ΅ «feature», Π° Π² «master» Π²ΠΎΠΎΠ±Ρ‰Π΅ нСпонятно Ρ‡Ρ‚ΠΎ.

РазбСрёмся ΠΏΠΎΡ‡Π΅ΠΌΡƒ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΎΠΏΠΈΡˆΡƒ ΠΊΠ°ΠΊ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ.

ВСрнёмся ΠΊ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π΄ΠΎ слияния:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

ΠŸΡ€ΠΈ слиянии Git смотрит Π½Π° Π±Π°Π·Ρƒ слияния (merge base): блиТайшСго родствСнника ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Π² нашСм случаС это ΠΊΠΎΠΌΠΌΠΈΡ‚ А. Π—Π°Ρ‚Π΅ΠΌ Git выполняСт Ρ‚Ρ€Ρ‘Ρ…-стороннСС слияниС (three-way merge), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ А ΠΊΠ°ΠΊ Π±Π°Π·Ρƒ, M3 ΠΊΠ°ΠΊ HEAD, Π° F3 ΠΊΠ°ΠΊ Π²Π»ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ нас интСрСсуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅Π»ΡŒΡ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π°Π·ΠΎΠΉ ΠΈ двумя послСдними ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΡƒΠ±Π΅Ρ€Ρ‘ΠΌ вся лишнСС ΠΈΠ· Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Бравнивая Π±Π°Π·Ρƒ с Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΠΎΠΉ «master» Π²Π΅Ρ‚ΠΊΠΈ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ «apple» помСнялась Π½Π° «berry». Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ с «feature» Π½Π΅ Π΄Π°Ρ‘Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ строка «apple» ΠΎΡΡ‚Π°Π»Π°ΡΡŒ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ Π² «feature», слияниС Π΅Ρ‘ Π² «master» Ρ‚Π°ΠΊΠΆΠ΅ оставит всё ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ «master» Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ «berry» послС слияния.

Но это Π΅Ρ‰Ρ‘ Π½Π΅ всё, Ссли Π·Π°Ρ‚Π΅ΠΌ ΡΠ»ΠΈΡ‚ΡŒ «master» Π² «feature», Ρ‚ΠΎ нСвСрная строка «berry» распространится ΠΈ Π² «feature»:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ мСстами ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ ΠΈ ΠΎΡ‚Π΄Π°ΡŽΡ‰Π°Ρ сторона. Π’ основании (ΠΊΠΎΠΌΠΌΠΈΡ‚ А) строка «apple», Π² Π²Π΅Ρ‚ΠΊΠ΅ «feature» ΠΎΠ½Π° остаётся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π² Π½Π΅Ρ‘ Π²Π»ΠΈΠ²Π°ΡŽΡ‚ «berry» ΠΈΠ· «master». И здСсь Π΄Π°ΠΆΠ΅ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ быстрая ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ° (fast-forward) ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

МногиС Π΄ΡƒΠΌΠ°ΡŽΡ‚ ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΊΠ°ΠΊ ΠΎ «Ρ‡Π°ΡΡ‚ΠΈΡ‡Π½Ρ‹Ρ… слияниях, ΠΏΡ€Π΅Π΄Π²ΠΎΡΡ…ΠΈΡ‰Π°ΡŽΡ‰ΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ слияниС», ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ»ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ. Π’Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ»ΡŒΡ‘Ρ‚Π΅ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² Π³Π»Π°Π²Π½ΡƒΡŽ, ΡΠΎΠ»ΡŒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠ²Ρ‹Π΅ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Если ΠΆΠ΅ Π²Ρ‹ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π΅Ρ‚Π΅ строк, задСйствованных ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, оТидания ΠΎΠΏΡ€Π°Π²Π΄Π°ΡŽΡ‚ΡΡ. Π˜Π½Π°Ρ‡Π΅, вмСсто слияния Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°. Π₯ΡƒΠΆΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ваши измСнСния ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‚ скопированныС, Ρ‚ΠΎ Π²Ρ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΏΡ€ΠΈ слиянии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π» Π±Ρ‹ Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ. Π’Π½ΡƒΡ‚Ρ€ΠΈ нашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это АБА ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ρ‚.ΠΊ. сначала строка содСрТала А, Π·Π°Ρ‚Π΅ΠΌ Π΅Ρ‘ помСняли Π½Π° Π‘, Π‘ скопировали, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ А прямо ΠΏΠ΅Ρ€Π΅Π΄ слияниСм Π² «master».

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ получаСтся ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ частичноС слияниС ΠΈΠ· «feature» Π² «master», Π½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ «Ρ‡Π°ΡΡ‚ΠΈΡ‡Π½ΠΎΠ³ΠΎ» слияния Π½Π΅Ρ‚.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ.

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

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния

Azure Repos | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015

Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015

ΠŸΡ€ΠΈ объСдинСнии ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ измСнСния Ρ„Π°ΠΉΠ»Π° ΠΈΠ· фиксаций Π² ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с измСнСниями Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Git пытаСтся Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти измСнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΆΡƒΡ€Π½Π°Π»Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Если Π½Π΅ ясно, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ измСнСния, Git останавливаСт слияниС ΠΈ сообщаСт, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚.

Из этого руководства Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°Ρ… слияния

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ рисункС ΠΏΠΎΠΊΠ°Π·Π°Π½ самый простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Git. ОбС Π²Π΅Ρ‚Π²ΠΈ Main ΠΈ бугфикс ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ строки исходного ΠΊΠΎΠ΄Π°.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ бугфикс Π² Main, Git Π½Π΅ смоТСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² объСдинСнной вСрсии. Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ внСсти измСнСния Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, Π²Π΅Ρ‚Π²ΡŒ бугфикс ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сочСтаниС этих Π΄Π²ΡƒΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². УстранитС этот ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с фиксациСй слияния Π² основной Π²Π΅Ρ‚Π²ΠΈ, которая согласовываСт ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния ΠΌΠ΅ΠΆΠ΄Ρƒ двумя вСтвями.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

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

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Git для прСдотвращСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния?

Git Ρ…Ρ€Π°Π½ΠΈΡ‚ вСсь ΠΆΡƒΡ€Π½Π°Π» всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсСнных Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Git ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот ΠΆΡƒΡ€Π½Π°Π», Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ фиксациями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ ΠΎΠ½ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ измСнСния ΠΈ автоматичСски Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ слияниС. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π½Π΅ ясно, ΠΊΠ°ΠΊ измСнСния Π² ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ строках Π² ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π°Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹.

ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Visual Studio 2019 вСрсии 16.8 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, ΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ систСму управлСния вСрсиями Git. Π£Π·Π½Π°ΠΉΡ‚Π΅, Ρ‡Π΅ΠΌ интСрфСйс Git отличаСтся ΠΎΡ‚ Team Explorer, Π½Π° страницС наглядного сравнСния.

Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½Ρ‹ ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°Ρ… слияния ΠΏΡ€ΠΈ вытягиваниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‚Π²ΠΈ.

ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ссылку » ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ «, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ устранСниС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ².

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Π‘ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ. Π’Ρ‹Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»Π° позволяСт ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния Π² исходной Π²Π΅Ρ‚Π²ΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся слияниС, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π²Π·ΡΡ‚ΡŒ источник ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния Π² Π²Π΅Ρ‚Π²ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ выполняСтся слияниС, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ » ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΡŒ«. МоТно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ слияниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π²Ρ‹Π±Ρ€Π°Π² ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ ввСдя измСнСния нСпосрСдствСнно Π² срСдство слияния, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Git.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°ΠΆΠΊΠΈ рядом со строками, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ измСнСниями, ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ нСпосрСдствСнно Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² исходном ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π² прСдставлСнии diff.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ прСдставлСниС измСнСния Π² Team Explorer ΠΈ зафиксируйтС измСнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ слияния ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

сравнитС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ фиксации, Π° Ρ‚Π°ΠΊΠΆΠ΅ различия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ‰ΠΈΠΌ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠΌ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π² срСдствС слияния Visual Studio.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

Π Π°Π·Π΄Π΅Π» являСтся измСнСниями ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ фиксации, ======= отдСляСт измСнСния ΠΈ >>>>>>> для Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰Π΅ΠΉ фиксации.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ проглядСли, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git add для размСщСния Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git add (сохранСния Ρ„Π°ΠΉΠ»Π°) ΠΈΠ»ΠΈ git rm (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°).

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

Π›ΡƒΡ‡ΡˆΠΈΠΉ Pull Request

ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΌΠ½Π΅ ΠΏΠΎΡΡ‡Π°ΡΡ‚Π»ΠΈΠ²ΠΈΠ»ΠΎΡΡŒ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Bitbucket Server Π² Atlassian (Π΄ΠΎ сСнтября ΠΎΠ½ Π±Ρ‹Π» извСстСн ΠΊΠ°ΠΊ Stash). Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠ½Π΅ стало Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ, ΠΊΠ°ΠΊ этот ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ освСщён Π½Π° Π₯Π°Π±Ρ€Π΅, ΠΈ ΠΊ ΠΌΠΎΠ΅ΠΌΡƒ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡŽ, нашлось лишь нСсколько Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΎ Π½Ρ‘ΠΌ, ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π° сСгодняшний дСнь ΡƒΠΆΠ΅ устарСло.

Π’ связи с этим я Ρ€Π΅ΡˆΠΈΠ» ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π² Ρ€ΠΎΠ»ΠΈ рассказчика ΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ сторону Bitbucket. ΠŸΡ€ΠΎΡˆΡƒ Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΡ‘ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, ΠΈΠ±ΠΎ я ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΡ€Π΅ΡΠ»Π΅Π΄ΡƒΡŽ эту Ρ†Π΅Π»ΡŒ. Если эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ интСрСс со стороны Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, я Π±ΡƒΠ΄Ρƒ Ρ€Π°Π΄ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΡƒ ΠΈ ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ вопросы.

ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΡΡ‚Π°Ρ‚ΡŒΠΈ Π’ΠΈΠΌΠ° ΠŸΠ΅Ρ‚Ρ‚Π΅Ρ€ΡΠ΅Π½Π° Β«A better pull requestΒ» ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ pull request, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивно Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π²ΠΎΠ·Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° Π½Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡Ρƒ.

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

МнС Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ названиями ΠΈ Π² письмСнной Ρ€Π΅Ρ‡ΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ я Π½Π΅ Π±ΡƒΠ΄Ρƒ Π΄Π°ΠΆΠ΅ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, Π½Π° ΠΌΠΎΠΉ взгляд, ΠΎΠ½ΠΈ становятся слишком корявыми, ΠΈ ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΎΡΡ‚Π°Π²Π»ΡŽ ΠΈΡ… Π² английском написании, β€” ΠΏΡ€ΠΎΡˆΡƒ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, я ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠ΅ ΠΈ прСдлоТСниям, поэтому Ссли Π²Ρ‹ считаСтС, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΏΡ€ΠΎΡˆΡƒ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ этими мыслями. Бпасибо.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Git, Ρ‚ΠΎ навСрняка ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ ΠΈ pull request-Π°ΠΌΠΈ. Они Π² Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° появлСния распрСдСлённых систСм управлСния вСрсиями. Π”ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Bitbucket ΠΈ GitHub ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²Π΅Π±-интСрфСйс, pull request ΠΌΠΎΠ³ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой простоС письмо ΠΎΡ‚ Алисы с ΠΏΡ€ΠΎΡΡŒΠ±ΠΎΠΉ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния ΠΈΠ· Π΅Ρ‘ рСпозитория. Если ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ стóящими, Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π»ΠΈΡ‚ΡŒ эти измСнСния Π² Π²Π°ΡˆΡƒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ master:

РазумССтся, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ измСнСния ΠΎΡ‚ Алисы Π² master Π½Π΅ глядя β€” это Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π»ΡƒΡ‡ΡˆΠ°Ρ идСя: вСдь master содСрТит ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ навСрняка Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅Π³ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚. Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, Ρ‡Π΅ΠΌ простоС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² master, β€” это сначала Π²Π»ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ cΠ»ΠΈΠ²Π°Ρ‚ΡŒ Π² master:

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° git diff с синтаксисом Ρ‚Ρ€Ρ‘Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ (Π² дальнСйшСм Β«triple dotΒ» git diff) ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ измСнСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ alice/branch ΠΈ Π΅Ρ‘ merge base β€” ΠΎΠ±Ρ‰ΠΈΠΌ ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ с локальной Π²Π΅Ρ‚ΠΊΠΎΠΉ master, ΠΈΠ½Π°Ρ‡Π΅ говоря, с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ расхоТдСния истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² этих Π²Π΅Ρ‚ΠΎΠΊ. Π’ сущности, это Π±ΡƒΠ΄ΡƒΡ‚ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Π΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Алиса просит нас Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния
git diff master. alice/master эквивалСнтСн git diff A B

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, это каТСтся Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ способом ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ pull request-Π°. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сравнСния примСняСтся Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ pull request-ΠΎΠ² Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ инструмСнтов, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… хостинг git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

НСсмотря Π½Π° это, Π΅ΡΡ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² использовании Β«triple dotΒ» git diff для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ pull request-Π°. Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ основная Π²Π΅Ρ‚ΠΊΠ°, скорСС всСго, Π±ΡƒΠ΄Π΅Ρ‚ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ любой Π²Π΅Ρ‚ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Π² дальнСйшСм feature-Π²Π΅Ρ‚ΠΊΠ°). Π Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ вСдётся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² master. Когда master продвигаСтся Π²ΠΏΠ΅Ρ€Ρ‘Π΄, простой git diff ΠΎΡ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ feature-Π²Π΅Ρ‚ΠΊΠΈ Π΄ΠΎ Π΅Ρ‘ merge base ΡƒΠΆΠ΅ нСдостаточСн для отобраТСния настоящСго различия ΠΌΠ΅ΠΆΠ΄Ρƒ этими Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ: ΠΎΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ feature-Π²Π΅Ρ‚ΠΊΠΈ лишь с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… состояний master.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния
Π’Π΅Ρ‚ΠΊΠ° master продвигаСтся Π·Π° счёт вливания Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ git diff master. alice/master Π½Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ master.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ эти измСнСния Π² Ρ…ΠΎΠ΄Π΅ Π°Π½Π°Π»ΠΈΠ·Π° pull request-Π° являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ? Π’ΠΎΠΌΡƒ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹.

ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния (merge conflicts)

Π‘ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π²Ρ‹ навСрняка рСгулярно ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ β€” ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния. Если Π² вашСй feature-Π²Π΅Ρ‚ΠΊΠ΅ Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½ Π² master, git diff ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния, сдСланныС Π²Π°ΠΌΠΈ Π² feature-Π²Π΅Ρ‚ΠΊΠ΅. Однако ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git merge Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Ρ‘Ρ‚Π΅ΡΡŒ с ошибкой: git расставит ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π°Ρ… вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сливаСмыС Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹Π΅ измСнСния, β€” Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ git Π½Π΅ Π² состоянии Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… стратСгий слияния.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния
ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Вряд Π»ΠΈ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ нравится Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния, Π½ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ любой систСмы контроля вСрсий, β€” ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΈΠ· Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ„Π°ΠΉΠ»Π° (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΈΠΌΠ΅Π΅Ρ‚ ряд своих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ).

Однако ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния β€” это мСньшая Π½Π΅ΠΏΡ€ΠΈΡΡ‚Π½ΠΎΡΡ‚ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ использовании Β«triple dotΒ» git diff для pull request-ΠΎΠ², ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ: особый Ρ‚ΠΈΠΏ логичСского ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ слит, Π½ΠΎ смоТСт внСсти ΠΊΠΎΠ²Π°Ρ€Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ.

ЛогичСскиС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π΅Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π²ΠΎ врСмя слияния

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

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ путями, ΠΎΠ΄Π½Π°ΠΊΠΎ самым распространённым являСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° случайно Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ…. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Π½Π° javascript вычисляСт ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π°Π²ΠΈΠ°Π±ΠΈΠ»Π΅Ρ‚Π°:

Π—Π΄Π΅ΡΡŒ содСрТится очСвидная ошибка: Π°Π²Ρ‚ΠΎΡ€ Π·Π°Π±Ρ‹Π» Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² расчёт Ρ‚Π°ΠΌΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ сбор!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΄Π²ΡƒΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Алису ΠΈ Π‘ΠΎΠ±Π°, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» эту ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ исправил Π΅Ρ‘ нСзависимо ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π² своСй Π²Π΅Ρ‚ΠΊΠ΅.

Алиса Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° строку для ΡƒΡ‡Ρ‘Ρ‚Π° customsFee ΠΏΠ΅Ρ€Π΅Π΄ immigrationFee:

Π‘ΠΎΠ± сдСлал Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΠΏΡ€Π°Π²ΠΊΡƒ, ΠΎΠ΄Π½Π°ΠΊΠΎ помСстил Π΅Ρ‘ послС immigrationFee:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих Π²Π΅Ρ‚ΠΎΠΊ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ строки ΠΊΠΎΠ΄Π°, слияниС ΠΎΠ±Π΅ΠΈΡ… с master ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠ΄Π½ΠΎ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Однако Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ master Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ строки, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ сбор:

(Π­Ρ‚ΠΎ, разумССтся, Π½Π°Π΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ вСсьма ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΄Ρ‹Ρ€Ρƒ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SSL/TLS Π² iOS.)

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ сначала слили Π² master измСнСния pull request-Π° Алисы. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π» Π±Ρ‹ pull request Π‘ΠΎΠ±Π°, Ссли Π±Ρ‹ Π²Ρ‹ использовали Β«triple dotΒ» git diff:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ измСнСния ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ‰ΠΈΠΌ ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ, Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ прСдупрСТдСния ΠΎΠ± ΡƒΠ³Ρ€ΠΎΠ·Π΅ ошибки, которая случится, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°ΠΆΠΌΡ‘Ρ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ слияния.

На самом ΠΆΠ΅ Π΄Π΅Π»Π΅, ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ pull request-Π° Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ master измСнится послС слияния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ Π‘ΠΎΠ±Π°:

Π—Π΄Π΅ΡΡŒ явно ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚ pull request-Π°, Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строчку ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΡ‚ Π‘ΠΎΠ±Π° ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈ Ρ‚Π΅ΠΌ самым ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎΠΉ ошибки Π² master ΠΈ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счётС, Π² Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² pull request-Π°Ρ… Π² Bitbucket. ΠŸΡ€ΠΈ просмотрС pull request-Π° Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Π½Π° самом Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слияния (Ρ‚.Π΅. фактичСски, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ это, ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ настоящСС слияниС Π²Π΅Ρ‚ΠΎΠΊ ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΌΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΈ Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΠΎΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ pull request-Π°:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния
git diff C D, Π³Π΄Π΅ D β€” это ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ слияния, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС различия ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

Если Π²Π°ΠΌ интСрСсно, я размСстил ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… хостингах, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ сами смогли ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ сравнСния:

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния D Π½Π° самом Π΄Π΅Π»Π΅ Π΅Ρ‰Ρ‘ Π½Π΅ сущСствуСт, Π° Π΅Π³ΠΎ созданиС β€” ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ процСсс. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, нСдостаточно просто ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ D ΠΈ Π½Π° этом Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ: B ΠΈ C, Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ для нашСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° слияния, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² любоС врСмя. ΠœΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ любого ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² пСрСсмотром (rescope) pull request-Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ, ΠΏΠΎ сути, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ слияния pull request-Π°. Если ваш pull request Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° Π½Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π²Ρ€ΠΎΠ΄Π΅ master, ΠΎΠ½ навСрняка пСрСсматриваСтся ΠΎΡ‡Π΅Π½ΡŒ часто.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния
ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ слияния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° любая ΠΈΠ· Π²Π΅Ρ‚ΠΎΠΊ pull request-Π° измСняСтся

ЀактичСски, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ ΠΈΠ»ΠΈ сливаСт pull request Π² master ΠΈΠ»ΠΈ feature-Π²Π΅Ρ‚ΠΊΡƒ, Bitbucket Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² pull request-Π΅.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния

Другая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ слияния для отобраТСния Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅Π΄ΠΆΡƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² pull request-Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Π°ΠΌ придётся ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ слияния. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ git сСрвСр Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΊΠΎΠΌΡƒ. Π­Ρ‚ΠΎ Π΅Ρ‰Ρ‘ большС услоТняСт Π·Π°Π΄Π°Ρ‡Ρƒ, Π½ΠΎ Π½Π° Π΄Π΅Π»Π΅ оказываСтся прСимущСством. Π’ Bitbucket ΠΌΡ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π² ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния D, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌ ΠΈΡ… ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ pull request содСрТит ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния
Π—Π΅Π»Ρ‘Π½Ρ‹Π΅ строки Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹, красныС β€” ΡƒΠ΄Π°Π»Π΅Π½Ρ‹, Π° ΠΆΡ‘Π»Ρ‚Ρ‹Π΅ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ выявляСм, Ρ‡Ρ‚ΠΎ pull request содСрТит ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, Π½ΠΎ ΠΈ позволяСм Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚Π°ΠΌ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ всСгда Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π΄Π²Π΅ стороны, ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ pull request β€” это Π»ΡƒΡ‡ΡˆΠ΅Π΅ мСсто для нахоТдСния подходящСго способа Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

НСсмотря Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ€Π΅ΡΡƒΡ€ΡΠΎΡ‘ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π½Π°ΠΌΠΈ Π² Bitbucket ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ прСдоставляСт Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ pull request-Π°.

Автор ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Π’ΠΈΠΌ ΠŸΠ΅Ρ‚Ρ‚Π΅Ρ€ΡΠ΅Π½, участвовал Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ JIRA, FishEye/Crucible ΠΈ Stash. Π‘ Π½Π°Ρ‡Π°Π»Π° 2013 Π³ΠΎΠ΄Π° ΠΎΠ½ рассказываСт ΠΎ процСссах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, git, Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ поставкС (continuous integration/deployment) ΠΈ инструмСнтах Atlassian для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², особСнно ΠΎ Bitbucket. Π’ΠΈΠΌ рСгулярно ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎΠ± этих ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‰Π°Ρ… Π² Twitter ΠΏΠΎΠ΄ псСвдонимом @kannonboy.

НадСюсь, Ρ‡Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ оказалась интСрСсной. Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° вопросы ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

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

Π‘Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Merge ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π² Git

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ читатСлям «Π₯Π°Π±Ρ€Π°Ρ…Π°Π±Ρ€Π°» ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ «Painless Merge Conflict Resolution in Git»
ΠΈΠ· Π±Π»ΠΎΠ³Π° blog.wuwon.id.au.

Π’ ΠΌΠΎΠ΅ΠΉ повсСднСвной Ρ€Π°Π±ΠΎΡ‚Π΅, часто приходится ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ со мноТСством git Π²Π΅Ρ‚Π²Π΅ΠΉ (branch). Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ², Π²Π΅Ρ‚Π²ΠΈ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ API находящиСся Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΈΠ»ΠΈ Π²Π΅Ρ‚Π²ΠΈ с ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ свойствами. Π›Ρ‘Π³ΠΊΠΎΡΡ‚ΡŒ создания Π²Π΅Ρ‚Π²Π΅ΠΉ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ Git Ρ‚Π°ΠΊ ΠΈ соблазняСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ всС большС ΠΈ большС Π²Π΅Ρ‚Π²Π΅ΠΉ, ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ брСмя ΠΎΡ‚ большого количСства Π²Π΅Ρ‚Π²Π΅ΠΉ становится ΠΎΡ‡Π΅Π½ΡŒ ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° приходится всС эти Π²Π΅Ρ‚Π²ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ пСриодичСски Π΄Π΅Π»Π°Ρ‚ΡŒ слияния (merge) с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ вСтвями.

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

Π£Π΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ доступныС инструмСнты ΠΈ интСрфСйсы ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для выполнСния слияний, Π½Π΅ достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΎ оснащСны для эффСктивного выполнСния этого процСсса. Часто программист просто надССтся Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git merge сдСлаСт Π·Π° Π½Π΅Π³ΠΎ всю Ρ€Π°Π±ΠΎΡ‚Ρƒ. Но ΠΊΠΎΠ³Π΄Π° всС-Ρ‚Π°ΠΊΠΈ происходит ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ стратСгия слияния Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π±Π΅Π³Π»ΠΎΠΌ просмотрС ΠΊΠΎΠ΄Π° Π²ΠΎΠΊΡ€ΡƒΠ³ строки ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎΠΌ ΡƒΠ³Π°Π΄Ρ‹Π²Π°Π½ΠΈΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ кусок ΠΊΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅ΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я надСюсь ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ процСсс Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пошагово Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Ρ‚Π°ΠΌ ΡƒΠ³Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ.

Π“ΠΎΠ»ΡƒΠ±Ρ‹Π΅ Π ΠΎΠ·Ρ‹ (Roses are Blue)

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ‡Ρ‚ΠΎ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠΎΡ€ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ поэмы Π² ΠΎΡ‚Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ для этих Ρ†Π΅Π»Π΅ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. (Какой ΠΊΠΎΡˆΠΌΠ°Ρ€!) А Π²Π°ΠΌ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ самоС Π³Π»Π°Π²Π½ΠΎΠ΅ β€” Π΄Π΅Π»Π°Ρ‚ΡŒ слияния послСдних фиксов ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ master Π² Π²Π΅Ρ‚ΠΊΡƒ beta. Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ Π² Π²Π΅Ρ‚ΠΊΡƒ beta ΠΈ выполняСтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Ого, это ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. Π’Ρ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся git:

Π—Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ! Π’Π΅ΡΡŒ Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Listing 1, находится Π² ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½ΠΎΠΌ состоянии. Какой ΠΆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ„Π°ΠΉΠ»Π° являСтся Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ? Оба Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° выглядят ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написан Π² Ρ…Π°ΠΊΠ΅Ρ€-стилС с элСмСнтами Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² стилС HTML ΠΈ с использованиСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строчных Π±ΡƒΠΊΠ². НиТний Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ выглядит Π±ΠΎΠ»Π΅Π΅ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½ΠΎ, с использованиСм ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ ΠΈ Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… Π±ΡƒΠΊΠ².

Если Π±Ρ‹ это Π±Ρ‹Π» ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π²Ρ‹ Π±Ρ‹ ΠΌΠΎΠ³Π»ΠΈ просто Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈ ΠΏΠΎΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ с этим слияниСм. Но ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это Π½Π΅ ваша поэма, Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ‡ΠΈΡ‚Π°Π»ΠΈ эту поэму Ρ€Π°Π½ΡŒΡˆΠ΅, Π½Π΅ Π±Ρ‹Π»ΠΈ отвСтствСнны Π·Π° написаниС ΠΈΠ»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Π²Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ Π² случаС Π½Π΅ Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‡ΡŒΡ-Ρ‚ΠΎ тяТёлая Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°Π½ΡƒΡ‚ΡŒ Π² Π½Π΅Π±Ρ‹Ρ‚ΠΈΠ΅. Однако вас всё ΠΆΠ΅ Π½Π°Π·Π½Π°Ρ‡ΠΈΠ»ΠΈ отвСтствСнным ΠΏΠΎ слиянию этих Π²Π΅Ρ‚ΠΎΠΊ. Π§Ρ‚ΠΎ ΠΆΠ΅ Π²Π°ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ?

Назад ΠΊ Π‘Π°Π·Π΅ (Back to Base)

Π₯ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Listing 1 Π½Π΅ Π΄Π°Ρ‘Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ слияния. На самом Π΄Π΅Π»Π΅, Π² процСссС слияния ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… части ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (состояния), Ρ‚Ρ€ΠΈ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°. Π’ случаС Listing 1, Git прСдоставил Π²Π°ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° состояния.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ эти Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ состояния:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Бостояния (B) ΠΈ Β© относятся ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ полоТСниям (head) Π²Π΅Ρ‚ΠΎΠΊ master ΠΈ beta соотвСтствСнно, эти Π΄Π²Π° состояния ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚Π°ΠΊΠΈ ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² Listing 1. БостояниС (D) это Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слияния, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ/ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ (Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Git автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ состояниС (D)). БостояниС (А) Π½Π° самом Π²Π΅Ρ€Ρ…Ρƒ, прСдставляСт собой Π±Π°Π·Ρƒ (основу) слияния Π²Π΅Ρ‚ΠΎΠΊ master ΠΈ beta. Π‘Π°Π·Π° слияния (A) это послСдний ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΎΠΊ Π²Π΅Ρ‚ΠΎΠΊ master ΠΈ beta, ΠΈ ΠΏΠΎΠΊΠ° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ‡Ρ‚ΠΎ это Π±Π°Π·Π° слияния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°. Как ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅ состояниС (A) ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². На Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ я Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Ρ€Π°Π·ΠΈΠ» Π΄Π΅Π»ΡŒΡ‚Ρ‹ 1 ΠΈ 2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ измСнСния ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями (A)-(B), ΠΈ (A)-Β© соотвСтствСнно. Зная состояния (A), (B) ΠΈ Β© Π΄Π΅Π»ΡŒΡ‚Ρ‹ 1 ΠΈ 2 ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ (вычислСны). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»ΡŒΡ‚Ρ‹ 1 ΠΈ 2 ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Но для Π½Π°ΡˆΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ Π±ΡƒΠ΄Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ всС Π΄Π΅Π»ΡŒΡ‚Ρ‹ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ состояниС (D), Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ опСрация слияния пытаСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. БостояниС (D) Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой сочСтаниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсённых Π² Π²Π΅Ρ‚ΠΊΡƒ master ΠΈ beta соотвСтствСнно. Π’.Π΅. Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами сочСтаниС Π΄Π΅Π»ΡŒΡ‚ 1 ΠΈ 2. ИдСя проста Π½Π° повСрхности ΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° со стороны Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ особых случаСв ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΡŒΡ‚Ρ‹ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ наслаиваСмыС (ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ) части Ρ„Π°ΠΉΠ»Π°. Π’ Ρ‚Π°ΠΊΠΎΠΉ ситуации Π²Π°ΠΌ трСбуСтся ΠΏΠΎΠΌΠΎΡ‡ΡŒ машинС ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (D), ΠΏΡƒΡ‚Ρ‘ΠΌ сравнСния Π΄Π΅Π»ΡŒΡ‚ 1 ΠΈ 2.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠžΡ‚Π»ΠΈΡ‡ΠΈΠΉ (Identifying the Differences)

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ измСнСния внСсённыС Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ выглядит Π±Π°Π·Π° слияния, состояниС (A). Π‘Π°ΠΌΡ‹ΠΉ простой ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π±Π°Π·Π΅ слияния, это установка ΠΎΠΏΡ†ΠΈΠΈ merge.conflictstyle Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ diff3

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ посСрСдинС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ являСтся Π±Π°Π·ΠΎΠΉ слияния ΠΈΠ»ΠΈ состояниС (A). ИзмСнСния Π²ΠΈΠ΄Π½Ρ‹ ΠΊΠ°ΠΊ Π½Π° Π»Π°Π΄ΠΎΠ½ΠΈ: Π² Π²Π΅Ρ‚ΠΊΠ΅ beta (HEAD) чСловСчСскиС названия Ρ†Π²Π΅Ρ‚ΠΎΠ² Π±Ρ‹Π»ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° HTML ΠΊΠΎΠ΄Ρ‹, Π° Π² Π²Π΅Ρ‚ΠΊΡƒ master Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠ°ΠΏΠΈΡ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. ΠžΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° этих знаниях, ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π½Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя ΠΊΠ°ΠΏΠΈΡ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΈ HTML ΠΊΠΎΠ΄Ρ‹ Ρ†Π²Π΅Ρ‚ΠΎΠ².

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π½Π° этом ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ достигнут. Но Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅.

ГрафичСскоС БлияниС (GUI Merging)

Π₯отя ΠΈ простоС тСкстовоС прСдставлСниС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° слияния Π΄Π΅Π»Π°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² простых случаях, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ слоТными. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ графичСскиС инструмСнты. Мой Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ°Π» Π½Π° простой инструмСнт написанный Π½Π° Python ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ meld, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ графичСский инструмСнт, способный ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ слияниС Π² Ρ‚Ρ€Ρ‘Ρ…-ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

Для использования графичСского инструмСнта (ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн), послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ git поТаловался Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠŸΠΎΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ вопрос ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ для слияния Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, просто Π²Π²Π΅Π΄ΠΈΡ‚Π΅ meld ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ (подразумСваСтся опция merge.conflictstyle Π½Π΅ Π±Ρ‹Π»Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°):

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ информация прСдставлСна Π±ΠΎΠΊ ΠΎ Π±ΠΎΠΊ, ΠΎΠ½Π° Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π² Listing 2. ΠœΡ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ здСсь Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π±Π°Π·Ρ‹ слияния (состояния (A)), Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ это Ρ„Π°ΠΉΠ» roses.txt.LOCAL.2760.txt Π² Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΠΈ Ρ„Π°ΠΉΠ» roses.txt.REMOTE.2760.txt Π² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΠΈ Ρ„Π°ΠΉΠ» посСрСдинС это Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ слияниС. Π’.Π΅. ΠΏΠΎ сути Π½Π°ΠΌ прСдставили состояния (B), Β© ΠΈ Π½Π΅ΡΠΎΡΡ‚ΠΎΡΠ²ΡˆΠ΅Π΅ΡΡ состояниС (D), Π½ΠΎ состояниС (A) отсутствуСт.

ΠŸΡ€Π°Π²Π΄Π° отсутствуСт? Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π² старом Π΄ΠΎΠ±Ρ€ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅:

Π’ΠΈΠ΄ΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ нас Ρ„Π°ΠΉΠ»: roses.txt.BASE.2760.txt. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π±Π°Π·Ρ‹ слияния. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ всСго лишь Π½Π°ΠΉΡ‚ΠΈ измСнСния внСсённыС Π² Π²Π΅Ρ‚ΠΊΠΈ master ΠΈ beta, ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π±Π°Π·Π΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это двумя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ meld:

(ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ, ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ порядок Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„Π°ΠΉΠ» Π±Π°Π·Ρ‹ находился Π² Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Π² ΠΎΠ±ΠΎΠΈΡ… случаях, Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ порядок сохраняСт ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Ρ‚Ρ€Ρ‘Ρ…-ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Π°Π·Π° остаётся ΠΏΠΎ сСрСдинС.) Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния β€” Π΄Π²Π° ΠΎΠΊΠ½Π° ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слиянияв ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° справа Π½Π°Π»Π΅Π²ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ, становится ясно ΠΊΠ°ΠΊ дСнь, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ meld любСзно подсвСтил всС измСнСния, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ практичСски Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΌΠ΅Π»ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ (ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠ³Π° «of» ΠΏΡ€ΠΈ просмотрС тСкстового прСдставлСния Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Listing 1 ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Listing 2?)

Π’ΠΎΠΎΡ€ΡƒΠΆΠΈΠ²ΡˆΠΈΡΡŒ этими знаниями, ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Ρ‚Ρ€Ρ‘Ρ…-ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ измСнСния. Моя стратСгия Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ слияния это Π²Π·ΡΡ‚ΡŒ вСсь тСкст ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ с Π±ΠΎΠ»Π΅Π΅ вСсомыми измСнСниями (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС master/REMOTE Ρ‚.Π΅. beta), ΠΈ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ, Ρ‚.Π΅. Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния сдСланныС Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ (master). Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всё вмСстС (All Together Now)

И Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π² ваш

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git mergetool для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, ΠΎΡ‚ΠΊΡ€ΠΎΡŽΡ‚ΡΡ всС Ρ‚Ρ€ΠΈ ΠΎΠΊΠ½Π°:

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

Бонус ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°

Для Ρ‚Π΅Ρ… ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ tmux ΠΈ n?vim, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скрипт gitmerge:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ссли Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ эту ΠΎΠΏΡ†ΠΈΡŽ Π² своСм

/.tmux.conf, Ρ‚ΠΎ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Π΄Π²ΡƒΡ… послСдних строках «$sn:1» Π½Π° «$sn:0»

БоотвСтствСнно Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π² ваш

Π’ΠΎΡ€ΠΊΡ„Π»ΠΎΡƒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Пока ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌ вопрос (Was the merge successful [y/n]?) ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π² сСссию ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ gitmerge (сочСтаниС TMUXPREFIX + s):

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Π’ΠΈΠ΄ΠΈΠΌ нашС Ρ‚Ρ€Ρ‘Ρ…-ΠΎΠΊΠΎΠ½Π½ΠΎΠ΅ прСдставлСниС Π½Π° ΠΎΠ΄Π½ΠΎΠΌ экранС. Π¦ΠΈΡ„Ρ€Π°ΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ сплиты (panes) tmux’a, Π±ΡƒΠΊΠ²Π°ΠΌΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ состояния. Π”Π΅Π»Π°Π΅ΠΌ ΠΏΡ€Π°Π²ΠΊΠΈ для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, Ρ‚.Π΅. Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ состояниС (D) ΠΈ сохраняСм. ПослС этого возвращаСмся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ сСссию tmux’a ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ слияниС ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

git rebase master

Π›ΠΈΡ‡Π½ΠΎ я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ сначала rebase master Π² Π²Π΅Ρ‚ΠΊΠ΅ beta, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² master ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ git merge beta. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π²ΠΎΡ€ΠΊΡ„Π»ΠΎΡƒ Π½Π΅ сильно отличаСтся, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Ρ€Ρ‘Ρ…-ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π² сСссию gitmerge

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ состояния (B) ΠΈ Β© помСнялись мСстами:

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ всСм ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ рСпозитария хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΏΠΎ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ схСмС. Π›ΠΈΡ‡Π½ΠΎ я большС Π½Π΅ гадаю Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ «Accept theirs» ΠΈΠ»ΠΈ «Accept yours».

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

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

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