с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹

Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ рассмотрим нСсколько основных способов ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ сдСланных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, Π½Π΅ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ! Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Ρ€Π΅Π΄ΠΊΠΈΡ… областСй Git, Π³Π΄Π΅ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌΠΈ дСйствиями ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ (индСкс) для внСсСния ΠΏΡ€Π°Π²ΠΎΠΊ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚. Если Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ мСняли с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° сразу послС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°), Ρ‚ΠΎ снимок состояния останСтся Π² точности Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅, Π° всё Ρ‡Ρ‚ΠΎ Π²Ρ‹ смоТСтС ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ β€” это вашС сообщСниС ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.

Запустится Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ сообщСниС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ сообщСниС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

НапримСр, Ссли Π²Ρ‹ сдСлали ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ поняли, Ρ‡Ρ‚ΠΎ Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’ ΠΈΡ‚ΠΎΠ³Π΅ получится Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ β€” Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ.

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ вноситС ΠΏΡ€Π°Π²ΠΊΠΈ Π² послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, Π²Ρ‹ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ исправляСтС Π΅Π³ΠΎ, сколько замСняСтС Π½ΠΎΠ²Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π΅Π³ΠΎ пСрСзаписываСт. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ всё выглядит Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ сущСствовал, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎΠ½ большС Π½Π΅ появится Π² истории вашСго рСпозитория.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, смысл измСнСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΎΠΊ Π² послСдниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ, ΠΏΡ€ΠΈ этом, Π² ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠΈ засорСния истории сообщСниями Π²ΠΈΠ΄Π° «Ой, Π·Π°Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Β» ΠΈΠ»ΠΈ Β«Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ грамматичСской ошибки».

ΠžΡ‚ΠΌΠ΅Π½Π° индСксации Ρ„Π°ΠΉΠ»Π°

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° Ρ€Π°Π·Π΄Π΅Π»Π° Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с индСксом ΠΈ измСнСниями Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Π Π°Π΄ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ опрСдСляСтС состояниС этих областСй, Ρ‚Π°ΠΊΠΆΠ΅ подсказываСт Π²Π°ΠΌ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ измСнСния Π² Π½ΠΈΡ…. НапримСр, Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π½ΠΎ случайно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git add * ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² индСкс ΠΎΠ±Π°. Как ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· индСкса ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ…? Команда git status Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ Π²Π°ΠΌ:

ΠŸΡ€ΡΠΌΠΎ ΠΏΠΎΠ΄ тСкстом Β«Changes to be committedΒ» говорится: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git reset HEAD …​ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ· индСкса. Π”Π°Π²Π°ΠΉΡ‚Π΅ послСдуСм этому совСту ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΠΌ индСксированиС Ρ„Π°ΠΉΠ»Π° CONTRIBUTING.md :

Команда выглядит нСсколько странно, Π½ΠΎ β€” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚! Π€Π°ΠΉΠ» CONTRIBUTING.md ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, Π½ΠΎ большС Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² индСкс.

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

Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· послСднСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Π—Π΄Π΅ΡΡŒ явно сказано ΠΊΠ°ΠΊ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊ ΠΈ сдСлаСм:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΎΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅, Π½ΠΎ прямо сСйчас ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ способы ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ припрятываниС β€” ΠΌΡ‹ рассмотрим ΠΈΡ… Π² Π³Π»Π°Π²Π΅ Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Π² Git.

ΠžΡ‚ΠΌΠ΅Π½Π° дСйствий с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git restore

ΠžΡ‚ΠΌΠ΅Π½Π° индСксации Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git restore

Π€Π°ΠΉΠ» CONTRIBUTING.md ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, Π½ΠΎ снова Π½Π΅ индСксирован.

ΠžΡ‚ΠΊΠ°Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git restore

Он довольно нСдвусмыслСнно Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сдСланныС Π²Π°ΠΌΠΈ измСнСния. Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ написано:

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ git restore β€” опасная ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π›ΡŽΠ±Ρ‹Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния, внСсСнныС Π² этот Ρ„Π°ΠΉΠ», исчСзнут β€” Git просто Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Ρ„Π°ΠΉΠ» послСднСй зафиксированной вСрсиСй. Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ссли Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Π½ΡƒΠΆΠ½Ρ‹ Π»ΠΈ Π²Π°ΠΌ эти нСсохранСнныС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния.

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

Git, я Ρ…ΠΎΡ‡Ρƒ всС ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ! ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ исправлСния Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ошибок

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

Git β€” удобная, Π½ΠΎ довольно слоТная систСма. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ Π½Π΅Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°Ρ‚Π΅ΠΌ слоТно ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. ДокумСнтация Git прСдоставляСт описаниС мноТСства ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

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

Π§Π΅Ρ€Ρ‚, я сдСлал Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎ. Π”Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π²ΠΎΠ»ΡˆΠ΅Π±Π½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ!

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° позволяСт Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ случайно ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΠ² слияниС, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ Π½Π΅ΠΏΡ€ΠΈΡΡ‚Π½ΠΎΡΡ‚ΡŒ. refLog ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Ρƒ ΠΎΡ‡Π΅Π½ΡŒ часто β€” Π΄Π°Π²Π°ΠΉΡ‚Π΅ скаТСм спасибо Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

Π― сдСлал ΠΊΠΎΠΌΠΌΠΈΡ‚, Π½ΠΎ сразу ΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ!

NB! Никогда Π½Π΅ измСняйтС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ лишь для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² локальной Π²Π΅Ρ‚ΠΊΠ΅, ΠΈΠ½Π°Ρ‡Π΅ Ρƒ вас Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π₯ΠΎΡ‡Ρƒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°!

Π­Ρ‚ΠΎ просто… Π³Π»ΡƒΠΏΡ‹Π΅ трСбования ΠΊ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ сообщСний.

Π― случайно Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ» Π² мастСр, хотя это Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ!

Если Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ»ΠΈ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. Π’ этом случаС ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ git reset HEAD@ <ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ>вмСсто HEAD

Ну Π²ΠΎΡ‚, я ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ» Π½Π΅ Π² Ρ‚Ρƒ Π²Π΅Ρ‚ΠΊΡƒ

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ большоС количСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² β€” это cherry-pick.

МнС Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ diff, Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ получаСтся

Если Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ измСнСния Π±Ρ‹Π»ΠΈ внСсСны, Π½ΠΎ diff пустой, Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ индСксировали измСнСния Ρ‡Π΅Ρ€Π΅Π· add. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, это Π½Π΅ Π±Π°Π³, Π° Ρ„ΠΈΡ‡Π°, Π½ΠΎ ΠΎΠ½Π° чСртовски нСочСвидная Β―\_(ツ)_/Β―

МнС срочно Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сдСлан 5 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π½Π°Π·Π°Π΄

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π°Π·Π°Π΄ Π½Π° 5 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², занимаясь копипастом старых ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ revert.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π½ΠΎ ΠΈ Ρ†Π΅Π»Ρ‹ΠΉ Ρ„Π°ΠΉΠ». ΠŸΡ€Π°Π²Π΄Π°, это ΡƒΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ команды…

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅

А Π²ΠΎΡ‚ ΠΈ ΠΎΠ½ΠΈ, эти Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Когда я Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ нашСл эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, это Π±Ρ‹Π»ΠΎ КРУВО, КРУВО, К-Π -Π£-Π’-О. Но Ссли Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ β€” ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ checkout β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Π΅? :shakes-fist-at-linus-torvalds:

Бпасибо Eric V. Π—Π° этот способ. И всС ΠΆΠ°Π»ΠΎΠ±Ρ‹ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ использования sudo адрСсуйтС Π΅ΠΌΡƒ.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΡƒΠ»ΠΈΡ‚ΡŒ измСнСния ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ исходной вСрсии, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ. Но ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ β€” эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΈ Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ являСтся ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ руководством. И Π΄Π°, Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅. Но я ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ этим Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ± ΠΈ ошибок. ΠŸΠΎΡ‚ΠΎΠΌ Ρƒ мСня появилась ΡΡƒΠΌΠ°ΡΡˆΠ΅Π΄ΡˆΠ°Ρ идСя ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π½Π°Ρ…ΠΎΠ΄ΠΊΠ°ΠΌΠΈ. Π‘Π΅Ρ€ΠΈΡ‚Π΅ это ΠΈΠ»ΠΈ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚Π΅!

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

Π”Π°Π½ΠΈΠΈΠ» ПилипСнко, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΏΠΎΠ΄Π±ΠΎΡ€Π° IT-спСциалистов SymbioWay ΠΈ СвангСлист бэкСнд-направлСния ΠΎΠ½Π»Π°ΠΉΠ½-унивСрситСта Skillbox, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ» ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΎ Git ΠΈ Π΅Π³ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Git появился Π² 2005-ΠΎΠΌ Π³ΠΎΠ΄Ρƒ, ΠΈ ΠΎΠ½ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ сразу занял Ρ€Ρ‹Π½ΠΎΠΊ. Помню, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΅Ρ‰Ρ‘ Π² 2008-ΠΎΠΌ Π³ΠΎΠ΄Ρƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² внСдряли SVN. И Π΄Π°ΠΆΠ΅ Π² 2012-ΠΎΠΌ ΠΎΠ΄Π½Π° близкая ΠΊΠΎ ΠΌΠ½Π΅ компания усилСнно внСдряла Mercurial. Π‘ Π³ΠΎΠ΄Π°ΠΌΠΈ для ΠΌΠ½ΠΎΠ³ΠΈΡ… стало ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Git β€” это Π»ΡƒΡ‡ΡˆΠ°Ρ систСма контроля вСрсий, ΠΈ Π΅Ρ‘ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ практичСски всС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ.

Если Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Git! Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ систСма контроля вСрсий ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π°, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π²Π΅Ρ‚ΠΊΠ°, ΠΊΠ°ΠΊ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сдСланныС измСнСния Π½Π° сСрвСр, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ измСнСния с сСрвСра, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ merge, ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹Π²Π°ΡŽΡ‚ Π²ΠΈΠ΄Ρ‹ β€œreset”. ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ эта Ρ‚Π΅ΠΌΠ° Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСпонятной ΠΈ слоТной, Π½ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ лишь ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Git, ΠΈ ΠΎΡ‚Π²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ Π²Ρ‹ ΡƒΠΆΠ΅ Π½Π΅ смоТСтС.

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

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

Допустим, Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ Π² Git ΠΈ Π²Π΄Ρ€ΡƒΠ³ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ ΠΏΠΎ ΠΏΠ»Π°Π½Ρƒ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ваш послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ? Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся!

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ двумя способами. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΠΎΠ±Π°.

Команда git revert

Команда git revert создаСт ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ измСнСния, внСсСнныС с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚:

Найти имя ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Π²Ρ‹Π΄Π°Ρ‡Π΅ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ вашим послСдним созданным ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ…ΡΡˆ (Ρ†ΠΈΡ„Ρ€ΠΎΠ±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ revert.

Команда git reset

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git reset. Но Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны: это ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠŸΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΠΎΡ€Π΅ΠΆΠ΅.

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° смСщаСт HEAD Π½Π° послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция β€”mixed. ВсС измСнСния послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° останутся Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΊΠ°ΠΊ нСотслСТиваСмыС.

ΠžΠΏΡ†ΠΈΡ β€”soft позволяСт ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ измСнСния (Ссли ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ) ΠΊΠ°ΠΊ staged.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ всС Π΄ΠΎ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ измСнСния, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ β€”hard.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½ΠΎ вмСстС с Ρ‚Π΅ΠΌ сотрСтС всС измСнСния, Π½Π΅ попавшиС Π² ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π§Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ: reset ΠΈΠ»ΠΈ revert?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ reset ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для сброса ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… лишь локально. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° мСняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². А это ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ сотрСтС.

Команда revert создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ измСнСния, ΠΈ Π½Π΅ пСрСзаписываСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ, ΡƒΠΆΠ΅ Π±Ρ‹Π» Π·Π°ΠΏΡƒΡˆΠ΅Π½ Π² ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ revert.

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

ΠœΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ Π΄Π²Π° способа ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Π²Π΄Ρ€ΡƒΠ³ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ Π±Π°Π³ Π² вашСм послСднСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΈΠ»ΠΈ окаТСтся, Ρ‡Ρ‚ΠΎ измСнСния вовсС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚!

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

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ commit ΠΈ Π½Π΅ ΠΎΠ±Π»Π°ΠΆΠ°Ρ‚ΡŒΡΡ

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Но Π½Π° ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΠΏΡƒΡ‚ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, допустим, Π½Π° Π΄Π²Π΅ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ Π΄Π° ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Но ΠΎΠ½ ΡƒΠΆΠ΅ Π½Π°Ρ‡Π°Π» Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΡƒΠΆΠ΅ созданы, ΠΈ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ? НС ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΆΠ΅!

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

git revert

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

Π Π°Π±ΠΎΡ‚Π° ΠΊΠΈΠΏΠΈΡ‚ ΠΈ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π΄Π΅Π»ΠΎ Π·Π° ΠΌΠ°Π»Ρ‹ΠΌ β€” ΡΠΌΠ΅Ρ€Π΄ΠΆΠΈΡ‚ΡŒ мастСр с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

И Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ? Ни класса Arithmetic, Π½ΠΈ класса Numerical!
А всС Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git revert создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ с ΠΎΡ‚ΠΌΠ΅Π½ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π½Π΅ удаляСт ΠΈΠ· истории ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. И Π² нашСм случаС послС слияния Π²Π΅Ρ‚ΠΎΠΊ получаСтся 4 ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с ΠΎΡ‚ΠΌΠ΅Π½ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ revert Π²Ρ‹ΡˆΠ΅Π» Π½Π°ΠΌ Π±ΠΎΠΊΠΎΠΌ.

git reset

git rebase

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git rebase для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ВСрнСмся ΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ создания Π΄Π²ΡƒΡ… Π²Π΅Ρ‚ΠΎΠΊ numerical ΠΈ arithmetic ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ pick Π½Π° drop. И Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ сбросятся ΠΈΠ· истории. НапримСр Π² Π²Π΅Ρ‚ΠΊΠ΅ numerical :

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

Π’ΠΎΠ³Π΄Π° Π² истории Ρƒ нас останутся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ Π² master ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΠ±Π° класса.

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ условии Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² частной Π²Π΅Ρ‚ΠΊΠ΅, Π½ΠΎ Ссли эти манипуляции провСсти Π² ΠΎΠ±Ρ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ( git push ) git сообщаСт, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° устарСла, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ отмСняСт ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ с git, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π°Ρ€Π°Π½Π΅Π΅, Π° Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ»ΠΎΠ²ΠΈΡ‚ΡŒ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·. Π‘Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ Π»ΠΈ Π²Ρ‹ с Ρ‚Π°ΠΊΠΈΠΌΠΈ ситуациям, ΠΈ Ссли Π΄Π°, Ρ‚ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ ΠΈΠ· Π½ΠΈΡ…?

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

ΠžΡ‚ΠΌΠ΅Π½Π° дСйствий Π² Git

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

Apr 24, 2020 Β· 3 min read

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ дСйствиС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ

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

НС сущСствуСт ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ способа ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ дСйствий Π² Git. ΠžΡ‚ΠΌΠ΅Π½Π° производится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄. ΠœΡ‹ рассмотрим β€œΠΏΠ΅Ρ€Π²ΡƒΡŽ пятСрку” сцСнариСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒΡΡ дальшС.

ΠžΡ‚ΠΌΠ΅Π½Π° Git Add

Од ΠΈ Π½ ΠΈΠ· самых распространСнных вопросов Π² сообщСствС Git Π·Π²ΡƒΡ‡ΠΈΡ‚ Ρ‚Π°ΠΊ: β€œΠšΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ git add ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ?” Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ дСйствия Π½Π°Π΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ всС внСсСнныС измСнСния.

РСшСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ потрСбуСтся для этого, вСсьма простоС. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», просто Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git reset :

Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ запуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Как ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Git Merge

ОбъСдинСниС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ. Но, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ свою ΠΎΡˆΠΈΠ±ΠΊΡƒ! Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим сцСнарий, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ измСнСния ΠΈ осознали, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сдСланноС объСдинСниС.

Π—Π°Ρ‚Π΅ΠΌ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΊ упомянутому ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Git Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ объСдинСнии Π²Π΅Ρ‚ΠΎΠΊ.

Как ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Git Reset

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ супСркороткий способ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git reset:

ΠžΡ‚ΠΌΠ΅Π½Π° послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Git

ΠšΠΎΠΌΠ°Π½Π΄Ρƒ git reset ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ внСсСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

x Π²Π²Π΅Π΄ΠΈΡ‚Π΅ число. НапримСр, Ссли Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” это ΠΊΠΎΠΌΠ°Π½Π΄Π° git revert HEAD

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² случаС с ΠΎΠ±Ρ‰ΠΈΠΌΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ рСпозиториями.

ΠžΡ‚ΠΌΠ΅Π½Π° Git Rebase

Допустим, Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git rebase Π² локальной Π²Π΅Ρ‚ΠΊΠ΅ git ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π΅Π΅ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π‘Π»Π΅Π΄ΠΎΠΌ Π²Ρ‹ поняли, Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ вашим оТиданиям, ΠΈ Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сдСланноС.

Π‘Π°ΠΌΡ‹ΠΉ простой способ β€” Π½Π°ΠΉΡ‚ΠΈ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ вашСй Π²Π΅Ρ‚ΠΊΠΈ, запустив ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

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

Π’ΠΎΡ‚ ΠΈ всС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Git. Π₯ΠΎΡ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈ Π½Π΅Ρ‚, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ ошибкС.

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

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

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