πŸ‘ Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² GIT, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всСм Π±Ρ‹Π»ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ написанныС сообщСния ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ Π² Git ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для дальнСйшСй Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ стратСгиями написания Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… сообщСний ΠΈ ΠΈΡ… использования для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Данная ΡΡ‚Π°Ρ‚ΡŒΡ являСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ. Бсылка Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π».

Как часто Π²Ρ‹ Π»ΠΎΠ²ΠΈΠ»ΠΈ сСбя Π½Π° мысли:

  1. Какой смысл Π² этом ΠΊΠΎΠ΄Π΅?
  2. Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π΅ устарСл?
  3. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ устарСл? Π― Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это описываСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я Π²ΠΈΠΆΡƒ.
  4. Π­Ρ‚ΠΎΡ‚ ΠΏΡƒΠ»-рСквСст ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½, с Ρ‡Π΅Π³ΠΎ ΠΌΠ½Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ?
  5. ΠžΡ‚ΠΊΡƒΠ΄Π° взялся этот Π±Π°Π³?

Π”Π°Π½Π½Ρ‹Π΅ вопросы Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ для совмСстно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°. Π₯отя Π΅ΡΡ‚ΡŒ способы частично ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ (ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΊΠΎΠ΄Ρƒ, руководства ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ, трСбования ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ), ΠΌΡ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Ρ‚Ρ€Π°Ρ‚ΠΈΠΌ часы Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ΄. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, инструмСнты, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, всСгда Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ!

ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Git-рСпозиториях β€” это большС, Ρ‡Π΅ΠΌ просто Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния ΠΈΠ»ΠΈ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. ΠŸΡ€ΠΎΡ†ΠΈΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ гитхабовский Β«Git GuidesΒ»:

[ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹] β€” это зафиксированныС снимки состояния (snapshots) всСго вашСго рСпозитория Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя… основанныС Π½Π° логичСских Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Бпустя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ вашСго рСпозитория ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ стал Ρ‚Π°ΠΊΠΈΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ½ Π΅ΡΡ‚ΡŒ сСйчас.

ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ β€” это хронологичСская запись ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ появилась каТдая строка ΠΊΠΎΠ΄Π°. Они Π΄Π°ΠΆΠ΅ приходят с ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌΠΈ сообщСниями! Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ история ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для объяснСния ΠΈ понимания ΠΊΠΎΠ΄Π°.

По ΠΌΠΎΠ΅ΠΌΡƒ ΠΎΠΏΡ‹Ρ‚Ρƒ, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивны, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ максимально Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚Π°ΠΌ, Π΄Ρ€ΡƒΠ³ΠΈΠΌ участникам ΠΈ Π΄Π°ΠΆΠ΅ сСбС Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Π’ этом постС Π±ΡƒΠ΄ΡƒΡ‚:

  1. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ пСрСсмотру ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².
  2. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… руководящих ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ².
  3. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ составлСнной истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Как ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅

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

Пока Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ эти Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡ‚Π΅ΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС эти совСты Π²ΠΎ врСмя написания ΠΊΠΎΠ΄Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ постСпСнно Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π² свой процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ совСт ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ написали вСсь свой ΠΊΠΎΠ΄.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ описаниС

Как ΠΈ Π² вашСм любимом Ρ€ΠΎΠΌΠ°Π½Π΅, сСрия ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ²Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ структуру, которая контСкстуализируСт Β«ΡΡŽΠΆΠ΅Ρ‚Β» вашСго измСнСния Π² ΠΊΠΎΠ΄Π΅. Π”ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ описаниС Π²Π΅Ρ‚ΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠΌΠΏΡ€ΠΎΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ сознания. НапримСр:

  1. ΠšΠΎΠΌΠΌΠΈΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° A, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° B, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΎΠ΄ΠΈΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ A.
  2. ΠœΡƒΠ»ΡŒΡ‚ΠΈ-ΠΊΠΎΠΌΠΌΠΈΡ‚ с нСсколькими ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ Π² ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ снова ΠΈ снова ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис CI.
  3. ΠšΠΎΠΌΠΌΠΈΡ‚, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.
  4. ΠšΠΎΠΌΠΌΠΈΡ‚ со ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ всСх ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ².
  5. ΠšΠΎΠΌΠΌΠΈΡ‚ слияния, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠΎΠΉ main.

НСсмотря Π½Π° Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ пСрСсказ вашСго ΠΏΡƒΡ‚ΠΈ, подобная Π²Π΅Ρ‚Π²ΡŒ рассказываСт Β«ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽΒ», которая Π½Π΅ являСтся Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, Π½ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰Π΅ΠΉΡΡ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

БСссистСмныС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±Π΅Π· Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ повСствования ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ ΠΈ Π½Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ (Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚), ΠΈ Π½Π° самого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π·Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ β€” это самый простой способ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ измСнСниями Π² достаточно большом ΠΏΡƒΠ»-рСквСстС. Если эти ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π΅ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΅Π΄ΠΈΠ½ΡƒΡŽ, ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ для понимания ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚Ρƒ придСтся постоянно ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ авторскиС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΡΠΊΠ°ΠΊΠΈΠ²Π°ΡŽΡ‚ с Ρ‚Π΅ΠΌΡ‹ Π½Π° Ρ‚Π΅ΠΌΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСны для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ использования вновь созданной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚, получаСтся, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ описаниС сам; для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ измСнСния ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ контСкст, ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ смутно ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ°Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Β«Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚Β» ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, создаст слоТности для опрСдСлСния ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Но ΠΊΠ°ΠΊ лСгкомыслСнноС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ созданию описания ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ? Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ часто Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΠ»Π΅Π±Π»ΡŽΡ‰ΠΈΠΉΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Β«Π·Π°Π±Π°Π²Π½Ρ‹ΠΌΒ» ΠΈ Β«Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΒ», Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π΄Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Π½ΠΎ ΠΎΠ½ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ эффСктивСн. Π”Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π·Π΄ΡƒΠΌΠ½ΠΎ β€” Π±Π΅Π· Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ слСдования ΠΏΠ»Π°Π½Ρƒ β€” Π·Π½Π°Ρ‡ΠΈΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ этот процСсс ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ.

РСшСниС

Π‘ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠ»Π°Π½ ΠΈ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΅ΠΌΡƒ.

ΠŸΠΎΠ²Π΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅, рассказанноС вашими ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ смысл Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈ любая история, повСствованиС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой структуры ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹.

Π’Π°ΡˆΠ° Π²Π΅Ρ‚ΠΊΠ° β€” это ваша история. Π₯отя повСствованиС зависит ΠΎΡ‚ вас, Π²ΠΎΡ‚ нСсколько Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… совСтов ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

ДЕЛАЙВЕ НЕ ДЕЛАЙВЕ
ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² описаниС ΠΏΡƒΠ»-рСквСста. Π‘ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠ»Π°Π½ Π² самом ΠΊΠΎΠ½Ρ†Π΅ β€” ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ!
ΠŸΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ΄Π½ΠΎΠΉ высокоуровнСвой ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ. УслоТнитС процСсс ΠΈ сдСлайтС Π΅Π³ΠΎ Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ.
Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ свой ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽΒ» сразу послС Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Π³ΠΎ устанавливаСт. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌΠ°ΠΌΠΈ Π² своСй Π²Π΅Ρ‚ΠΊΠ΅.
ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅ΡΡŒ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ ΠΊΠ°ΠΊ ΠΊ Β«ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠ°ΠΌΒ» Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²: исправлСниС ошибок, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, стилистичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Ρ„ΠΈΡ‡Π° ΠΈ Ρ‚. Π΄. Π‘ΠΌΠ΅ΡˆΠ°ΠΉΡ‚Π΅ нСсколько Ρ‚ΠΈΠΏΠΎΠ² Β«ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ²Β» Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

Π’Π΅Ρ‚ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь β€” скопируйтС Π΅Π΅ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ!

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ скриптом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΌΠ½Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, внСсти Π² Π½Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚Π°), Π° Π·Π°Ρ‚Π΅ΠΌ Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Π»ΠΈΠ±ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π½ΠΎΠ²ΠΎΠΌ мСстС. Моя Π²Π΅Ρ‚ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я Π½Π°Π·Π²Π°Π» feature/image-modifier, Π² настоящСС врСмя выглядит Ρ‚Π°ΠΊ (отобраТаСтся с послСдними ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ Π²Π½ΠΈΠ·Ρƒ):

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, я Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ линию повСствования. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС моя «история» Ρ‚Π°ΠΊΠΎΠ²Π°:

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ сцСнарий (Π±Π΅Π· ΠΎΠΏΡ†ΠΈΠΉ, просто ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅).
  2. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ –output.
  3. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ( --invert ΠΈ --grey/ --gray).
  4. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ GitHub Actions CI для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² соотвСтствии с этим ΠΏΠ»Π°Π½ΠΎΠΌ, я Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git rebase -i.

git rebase -i main

ПослС запуска пСрСбазирования ΠΌΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ открываСтся git-rebase-todo со списком ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², упорядочСнных ΠΎΡ‚ самого старого (Π²Π²Π΅Ρ€Ρ…Ρƒ) Π΄ΠΎ самого Π½ΠΎΠ²ΠΎΠ³ΠΎ (Π²Π½ΠΈΠ·Ρƒ). Π’Π΅ΠΏΠ΅Ρ€ΡŒ я просто Π²Ρ‹Ρ€Π΅Π·Π°ΡŽ ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡŽ строки Π² Π½ΠΎΠ²ΠΎΠΌ порядкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π²Π΅Ρ‚ΠΊΠΈ:

Π”ΠΎ

pick 6a885eb WIP

pick 692f477 Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт

pick b3348a0 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ --invert ΠΈ --grey

pick 9512893 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --output

pick 1689371 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ GitHub Actions CI .yml

pick 6af4476 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ requirements.txt + Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния сборки

pick 9cd6412 Позволили ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написания --gray 

# ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΡƒΠ΅ΠΌ 00a3ff6..9cd6412 ΠΊ 00a3ff6 (7 ΠΊΠΎΠΌΠ°Π½Π΄)

# ...

ПослС

pick 6a885eb WIP

pick 692f477 Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт

pick 9512893 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --output # пСрСносим

pick b3348a0 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ --invert ΠΈ --grey

pick 9cd6412 Позволили ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написания --gray # пСрСносим

pick 1689371 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ GitHub Actions CI .yml

pick 6af4476 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ requirements.txt + Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния сборки

# ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΡƒΠ΅ΠΌ 00a3ff6..9cd6412 ΠΊ 00a3ff6 (7 ΠΊΠΎΠΌΠ°Π½Π΄)

# ...

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ я ΡΠΎΡ…Ρ€Π°Π½ΡΡŽ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽ свой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, начинаСтся ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π― столкнулся с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ пСрСбазирования, Π½ΠΎ я ΠΌΠΎΠ³Ρƒ ΠΈΡ… Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git rebase --continue, ΠΏΠΎΠΊΠ° всС ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΊ Π²Π΅Ρ‚ΠΊΠ΅ Π² ΠΈΡ… Π½ΠΎΠ²ΠΎΠΌ порядкС:

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста»

ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ стабилизация ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

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

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

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

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшСго количСства ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π½ΠΎ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ позволяСт ΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²ΠΎ врСмя прочтСния. Когда Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚Β» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π»Π΅Π³ΠΊΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ связи с Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΌ контСкстом. Π­Ρ‚ΠΎ усугубляСтся, ΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ отмСняСт Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅Π³ΠΎ частичного ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Β«ΠžΡ‚Ρ‚ΠΎΠΊΒ» Π² этих ситуациях ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ становится слоТнСС, ΠΎΡ‚ΡΡŽΠ΄Π° Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ послСдствия, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со слишком большими ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ.

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

РСшСниС

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ «малСньким» ΠΈ Β«Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌΒ».

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ усилия, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для понимания ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ вносят. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ усилия связаны с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Β«Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎΒ» количСства ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠ»ΡŽΡ‡ ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ β€” ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ установлСнным Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΌ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

МалСнький ΠΊΠΎΠΌΠΌΠΈΡ‚ β€” это ΠΊΠΎΠΌΠΌΠΈΡ‚ с минимальной ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ дСйствия: ΠΎΠ½ выполняСт всСго ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π­Ρ‚ΠΎ часто ΠΊΠΎΡ€Ρ€Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚ с ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ конуса, Π½ΠΎ это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅. НапримСр, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ измСнСнию сотСн строк ΠΊΠΎΠ΄Π°, Π½ΠΎ Π΅Π΅ ограничСнная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠ°ΠΊ объяснСниС, Ρ‚Π°ΠΊ ΠΈ просмотр.

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

Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

ВСрнСмся ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ скрипту Β«ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ изобраТСния». Π’Π°ΠΌ, Π³Π΄Π΅ ΠΌΡ‹ Π² послСдний Ρ€Π°Π· Π΅Π³ΠΎ оставили, Π²Π΅Ρ‚ΠΊΠ° feature/image-modifier выглядСла Ρ‚Π°ΠΊ:

ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ объСм. Π― Π½Π°Ρ‡Π½Ρƒ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ:

β€” 3f1e287 (Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ --invert ΠΈ --grey)β€” хотя этот ΠΊΠΎΠΌΠΌΠΈΡ‚ нСбольшой, ΠΎΠ½ содСрТит Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ Β«Π²Π΅Ρ‰ΠΈΒ»: --invert ΠΈ –grey. Π’ соотвСтствии с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ малоразмСрности ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° я Ρ…ΠΎΡ‡Ρƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ.

β€” 60f352d (Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ requirements.txt + Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния сборки)β€” Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ requirements.txt Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ запуска скрипта Π² любом контСкстС, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния сборки относятся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ GitHub Action CI. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… вопросов, относящихся ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ аспСктам повСствования, я Ρ€Π°Π·Π΄Π΅Π»ΡŽ ΠΈΡ….

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ…, я Π±ΡƒΠ΄Ρƒ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, описанному Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Git, ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΡƒΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΊΠΎΠΌ edit ΠΈΠ»ΠΈ e:

Π”ΠΎ

pick 6a885eb WIP

pick 692f477 Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт

pick d897cc6 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --output

pick 3f1e287 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ --invert ΠΈ --grey

pick 1c26b4c Позволили ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --gray

pick d113307 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ GitHub Actions CI .yml

pick 60f352d Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ requirements.txt + Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния сборки

ПослС

pick 6a885eb WIP

pick 692f477 Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт

pick d897cc6 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --output

edit 3f1e287 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ --invert ΠΈ --grey # Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ -> Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

pick 1c26b4c Позволили ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написания --gray 

pick d113307 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ GitHub Actions CI.yml

edit 60f352d Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ requirements.txt + Π΄Ρ€ΡƒΠ³ΠΈΠ΅ исправлСния сборки

ПослС сохранСния ΠΈ закрытия ΠΌΠΎΠ΅Π³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° rebase примСняСт ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΏΠΎΠΊΠ° Π½Π΅ достигнСт ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π° Π½Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ раздСлСния я ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git reset, Π·Π°Ρ‚Π΅ΠΌ дСлю Π΅Π³ΠΎ содСрТимоС Π½Π° Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ git add -p ΠΈ git commit), Π·Π°Ρ‚Π΅ΠΌ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git rebase --continue. Когда ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Ρ€Π°Π½Π΅Π΅:

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг β€” ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ слишком малСнькими ΠΏΠΎ ΠΈΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

β€” 6a885eb (WIP) ΠΈ 692f477 (Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт)β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ являСтся Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ, Π° послСдний Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ сцСнария.

– 692f477 (Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт) ΠΈ 54b3e6d (Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ requirements.txt)– requirements.txt – Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости Π² «минимальном» скриптС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

– 9c049cb (Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ GitHub Actions CI .yml) ΠΈ (73e6da5) ΠŸΠΎΡ„ΠΈΠΊΡΠΈΠ»ΠΈ CI build β€” всС исправлСния CI β€” это исправлСния исходного сцСнария GitHub Actions, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ сборки.

Π― дСлаю это с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ, Π½Π° этот Ρ€Π°Π· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ fixup (ΠΈΠ»ΠΈ f) ΠΈΠ»ΠΈ squash (ΠΈΠ»ΠΈ s) Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽ Π»ΠΈ я Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ сообщСниСм, соотвСтствСнно:

Π”ΠΎ

pick 6a885eb WIP

pick 692f477 Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт

pick d897cc6 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --output

pick 18dc6af Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --invert 

pick babc825 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --grey 

pick 851f2a0 Позволили ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написания --gray option

pick 9c049cb Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ GitHub Actions CI .yml

pick 54b3e6d Π‘ΠΎΠ·Π΄Π°Π»ΠΈ requirements.txt

pick 73e6da5 ΠŸΠΎΡ„ΠΈΠΊΡΠΈΠ»ΠΈ CI build

ПослС

pick 6a885eb WIP

squash 692f477 Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт # Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ -> ΡΠΊΠ»Π΅ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹

fixup 54b3e6d Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ requirements.txt # пСрСнСсСно, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ -> Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ

pick d897cc6 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --output 

pick 18dc6af Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --invert 

pick babc825 Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ --grey 

pick 851f2a0 Позволили ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написания --gray 

pick 9c049cb Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ GitHub Actions CI .yml

fixup 73e6da5 ΠŸΠΎΡ„ΠΈΠΊΡΠΈΠ»ΠΈ CI build # Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ -> Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ

Когда я Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, я создаю Π½ΠΎΠ²ΠΎΠ΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° для ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Β«WIPΒ» ΠΈ Β«Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт» ΠΈΠ·-Π·Π° использования squash:

# Π­Ρ‚ΠΎ комбинация Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

# Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ сообщСниС:

WIP

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

Π—Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ скрипт

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Π²Π²ΠΎΠ΄Π°

# ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° для Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π― измСняю сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π° Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ скрипта ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° изобраТСния», ΡΠΎΡ…Ρ€Π°Π½ΡΡŽ свой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽ. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ β€˜fixup’ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ², поэтому ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅:

ОбъясняСм контСкст

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: xkcd.ru

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

Π”Π°ΠΆΠ΅ с Ρ‡Π΅Ρ‚ΠΊΠΈΠΌ повСствованиСм ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Π·Π°ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ. Π­Ρ‚ΠΎ особСнно Π²Π΅Ρ€Π½ΠΎ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Π³Π΄Π΅ Ρ€Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΉ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ (Π΄Π°ΠΆΠ΅ Π²Ρ‹ сами!), скорСС всСго, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ освСдомлСны ΠΎ дСталях Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π½ΡŽΠ°Π½ΡΠ°Ρ… ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ.

Код Ρ€Π΅Π΄ΠΊΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π°Π²Ρ‚ΠΎΡ€Ρƒ, ΠΈ Π΄Π°ΠΆΠ΅ простыС измСнСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ истолкованы. НапримСр, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ошибкой, Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ связанной с Π½Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. НС понимая Ρ†Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ измСнСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ каТСтся ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ошибкой. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΊΠ°ΠΊ Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽΒ», которая Π³ΠΎΠ΄Π°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

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

РСшСниС

ΠžΠΏΠΈΡˆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ это Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π² сообщСнии ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ для Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ. Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΆΠ΅ достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹ΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΈΡ…. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ слишком Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ (ΠΈ склонныС ΠΊ ΡƒΡΡ‚Π°Ρ€Π΅Π²Π°Π½ΠΈΡŽ) ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ всС Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ΅ описаниС ΠΏΡƒΠ»-рСквСста, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ частям ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΡ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ измСнСнию.

Β«Π§Ρ‚ΠΎΒ» ΠΈ Β«ΠΏΠΎΡ‡Π΅ΠΌΡƒΒ» Π΄Π°Π»Π΅Π΅ Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° Π΄Π΅Ρ‚Π°Π»ΠΈ высокого ΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, всС ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… вопросов, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сообщСнии ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Π§Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ это Π΄Π΅Π»Π°Π΅Ρ‚Π΅
Высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ (стратСгичСский) ЦСль (Ρ‡Ρ‚ΠΎ это Π΄Π°Π΅Ρ‚?) ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ (ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ сСйчас?)
НизкоуровнСвый (тактичСский) РСализация (Ρ‡Ρ‚ΠΎ Π²Ρ‹ сдСлали для достиТСния своСй Ρ†Π΅Π»ΠΈ?) ОбоснованиС (ΠΏΠΎΡ‡Π΅ΠΌΡƒ внСсСно это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅?)

Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

ΠžΠ³Π»ΡΠ΄Ρ‹Π²Π°ΡΡΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π· Π½Π° Π²Π΅Ρ‚ΠΊΡƒ feature/image-modifier:

ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π½Π° рассмотрСниС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ пСрСписан, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Ρ†Π΅Π»ΡŒ, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, контСкст ΠΈ обоснованиС ΠΈΡ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ измСнСния. Π Π°Π΄ΠΈ этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написания –grayΒ».

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π΅ самый послСдний Π² Π²Π΅Ρ‚ΠΊΠ΅ (Π² этом случаС я ΠΌΠΎΠ³Π»Π° Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git commit --amend для Π΅Π³ΠΎ измСнСния), поэтому ΠΌΠ½Π΅ снова Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ внСсти Π² Π½Π΅Π³ΠΎ измСнСния. На этот Ρ€Π°Π· СдинствСнноС, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ с pick Π½Π° reword (ΠΈΠ»ΠΈ r):

Π”ΠΎ

pick 096ee13 Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ скрипт для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изобраТСния

pick 381d3af Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ --output 

pick 3e5e5f6 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ --invert 

pick 2d164e2 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ --grey 

pick bfa3f6f Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ --gray

pick 3bf4ec4 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ GitHub Actions CI .yml

ПослС

pick 096ee13 Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ скрипт для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ изобраТСния

pick 381d3af Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ --output 

pick 3e5e5f6 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ --invert 

pick 2d164e2 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ --grey 

reword bfa3f6f Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написания --gray # pick -> reword (Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ -> ΠΏΠ΅Ρ€Π΅Ρ„Ρ€Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ)

pick 3bf4ec4 Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ GitHub Actions CI.yml

ПослС закрытия git-rebase-todo открываСтся Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° с исходным сообщСниСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ написания --gray 

# ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° для Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

...

Π­Ρ‚ΠΎ сообщСниС, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ однострочныС сообщСния фиксации, содСрТит лишь расплывчатоС описаниС Ρ†Π΅Π»ΠΈ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отсутствуСт объяснСниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

Когда я ΠΏΠ΅Ρ€Π΅ΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΌΠ½Π΅ нравится ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Β«Ρ‡Ρ‚ΠΎΒ» ΠΈ Β«ΠΏΠΎΡ‡Π΅ΠΌΡƒΒ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  1. ЦСль (как названиС)
  2. ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚
  3. ОбоснованиС
  4. РСализация

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ этот ΠΏΠ»Π°Π½ ΠΊ фиксации, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я здСсь Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽ, я ΠΏΠΈΡˆΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ (ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΌΡƒ) ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта:

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ псСвдоним '--gray' для'--grey'

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ прСдоставляСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ '--gray' (вмСсто допустимого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° '--grey') скрипту ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° изобраТСния, ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС:

image-modifier.py: ошибка: нСраспознанныС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹: -- gray

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈ " grey", ΠΈ " gray " ΡΠ²Π»ΡΡŽΡ‚ΡΡ распространСнными Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ написания ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ слова, Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΎΠ±ΠΎΠΈΠΌ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ прСобразования Π² ΠΎΡ‚Ρ‚Π΅Π½ΠΊΠΈ сСрого, Π΄ΠΎΠ±Π°Π²ΠΈΠ² "--gray" ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° 'argparse'.

Π’Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΠΎΠ΅ сообщСниС ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ вСсь контСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ, Π½ΠΎ являСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½Ρ‹ΠΌ объяснСниСм Ρ‚Π°ΠΊΠΎΠ³ΠΎ простого измСнСния. Π₯отя ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сообщСниС Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Ρ†Π΅Π»ΠΈ/Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ/контСкста/обоснования, Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊ слоТности измСнСния. НапримСр, Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅, Π½ΠΎ всС ΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ объяснСнноС сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ вмСсто этого Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ псСвдоним '--gray' для '--grey'

Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ '--gray' Π±Ρ‹Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ для '--grey' Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ 'argparse', Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ±Π° названия.

Π”Π΅Π»Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ влияниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠΎΠ΄Π°, поиск ошибок ΠΈ Π°Π½Π°Π»ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΏΡ€ΠΈΡ‡ΠΈΠ½.

Код-Ρ€Π΅Π²ΡŒΡŽ

Π Π΅Ρ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡƒΠ»-рСквСстов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ управляСмым ΠΈ простым процСссом, Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π½Π° основС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π·Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ. КаТдоС ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΉ, описанных Ρ€Π°Π½Π΅Π΅, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ; Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ руководящиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π² качСствС шаблона.

  1. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ повСствованиС, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² описаниС запроса Π½Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Если каТСтся, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΡΠΊΠ°ΠΊΠΈΠ²Π°ΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌΠ°ΠΌΠΈ ΠΈΠ»ΠΈ адрСсами, ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ с ΠΏΡ€ΠΎΡΡŒΠ±ΠΎΠΉ внСсти уточнСния ΠΈΠ»ΠΈ внСсти измСнСния.
  2. МСльком просмотритС сообщСниС ΠΈ содСрТимоС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, начиная с Π½Π°Ρ‡Π°Π»Π° Π²Π΅Ρ‚ΠΊΠΈ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΌΠ°Π»ΠΎΡ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ выполняСт ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ дСйствия.
  3. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° достаточно ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΊΠΎΠ΄, сначала ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ², Ρ‡Ρ‚ΠΎ рСализация соотвСтствуСт Ρ†Π΅Π»ΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ соотвСтствуСт заявлСнной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ контСкст ΠΈ обоснованиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ΄. Если какая-Π»ΠΈΠ±ΠΎ нСобходимая информация отсутствуСт, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π·Π° Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ ΠΊ Π°Π²Ρ‚ΠΎΡ€Ρƒ.
  4. НаконСц, Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π²ΡΠ΅ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰ΠΈΠΌ описаниСм, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ эффСктивСн ΠΈ Π½Π΅ содСрТит ошибок.

Поиск ошибок с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git bisect

Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с ошибками Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π½Π΅ Π·Π½Π°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° это ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, инструмСнт git bisect для вас. Π’ частности, git bisect – это инструмСнт, встроСнный Π² Git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ исправных ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, вашСго послСднСго ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ развСртывания) ΠΈ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ ΠΏΠ»ΠΎΡ…ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (сломанных) Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… ошибка.

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

Анализ ΠΏΡ€ΠΈΡ‡ΠΈΠ½

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

Π•ΡΡ‚ΡŒ Π΄Π²Π° основных инструмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ срСди ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²: git blame ΠΈ git log.

git blame Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π΅Π³ΠΎ послСдним:

$ git blame -s my-file.py

abd52642da46 my-file.py 1) import os

603ab927a0dd oldname.py 3) import re

603ab927a0dd oldname.py 4)

603ab927a0dd oldname.py 5) print(β€œHello world”)

abd52642da46 my-file.py 5) print(os.stat(β€œREADME”))

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠ»ΠΎΡ…ΠΎ Π»ΠΈ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚.

Для Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ поиска фиксации Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git log. Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ git log ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ хронологичСском порядкС, начиная с HEAD:

$ git log --oneline

09823ba09de1 README.md: ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

abd52642da46 my-file.py: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ README 

7392d7dbb9ae my-file.py: ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ oldname.py

5ad823d1bc48 test.py: ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ настройку тСстирования

603ab927a0dd oldname.py: ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ скрипт ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ (Ρ„Π°ΠΉΠ»Π°ΠΌ), ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ строк Π² Ρ„Π°ΠΉΠ»Π΅, ΠΏΠΎ тСксту сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ Ρ‚. Π΄. Как ΠΈ Π² случаС с git blame, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ списки ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ вас ΠΊ основной ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ вашСй ошибки.

И напослСдок

Π₯отя качСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² являСтся ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‰ΠΈΠΌΡΡ количСствСнной ΠΎΡ†Π΅Π½ΠΊΠ΅, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для качСства ΠΆΠΈΠ·Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² любом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅: старом ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠΌ, большом ΠΈΠ»ΠΈ малСньком, с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‡Π°ΡΡ‚ΡŒΡŽ вашСго процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, слСдуйтС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ рСкомСндациям:

  1. ΠžΡ€Π³Π°Π½ΠΈΠ·ΡƒΠΉΡ‚Π΅ свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² повСствованиС.
  2. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊ малСнькой, Ρ‚Π°ΠΊ ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ.
  3. ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅ Β«Ρ‡Ρ‚ΠΎΒ» ΠΈ Β«ΠΏΠΎΡ‡Π΅ΠΌΡƒΒ» Π² вашСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π² сообщСнии ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

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

***

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

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

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
18 октября 2017

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ прСдставлСны основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Git сСгодня - это ΠΎΡ‡Π΅Π½ΡŒ популярная систСма контроля вСрсий. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡˆΠΏΠ°Ρ€Π³Π°Π»...
admin
21 июня 2017

ΠŸΡ€ΠΎ Git, Github ΠΈ Gitflow простыми словами

НС самоС ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅Π΅, Π½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡ…ΠΎΠ΄Ρ‡ΠΈΠ²ΠΎΠ΅ руководство ΠΏΠΎ Git, Gith...
admin
23 фСвраля 2017

Git Π·Π° полчаса: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π’ послСдниС Π³ΠΎΠ΄Ρ‹ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ git дСмонстрируСт Π²Π·Ρ€Ρ‹Π²Π½ΠΎΠΉ рост. Π­Ρ‚Π° систСма ...