Π Π°Π·Π½ΠΎΠ΅

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС измСнСния git: GIT. ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния / Вяпк

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

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Git – Zencoder

ΠžΠ±ΡˆΠΈΡ€Π½Π°Ρ ΠΈ достаточно слоТная Ρ‚Π΅ΠΌΠ°. Однако нСобходимая, Ссли стоит Π·Π°Π΄Π°Ρ‡Π° ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Git.

Π­Ρ‚Π° Ρ‚Π΅ΠΌΠ° касаСтся ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Git. Π’Π°ΠΊ ΠΊΠ°ΠΊ эта систСма контроля вСрсий прСдставляСт ΠΈΠ· сСбя Ρ‚Ρ€ΠΈ Π²Π΅Ρ‚ΠΊΠΈ — рабочая дирСктория, Π±ΡƒΡ„Π΅Ρ€, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ — Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны всС Ρ‚Ρ€ΠΈ способа.

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git checkout -- name_of_file

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Git Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ состояниС Ρ„Π°ΠΉΠ»Π° Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ зафиксировано Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ сброс ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»Π° Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ являСтся Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ дСфис. Π­Ρ‚ΠΎ β€œΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚β€ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ , Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅ (branche).

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±ΡƒΡ„Π΅Ρ€Π΅

Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git reset HEAD name_of_file

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° β€œΠ²Π΅Ρ€Π½Π΅Ρ‚β€ Ρ„Π°ΠΉΠ» ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Π§Ρ‚ΠΎ касаСтся рСпозитория, Ρ‚ΠΎ здСсь ситуация Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС. Бвязано это с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ взаимосвязаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой.

НСльзя просто Ρ‚Π°ΠΊ Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ — всС ΠΎΠ½ΠΈ находятся Π² своСобразной Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ проистСкаСт ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΅ΡΡ‚ΡŒ свой ΠΊΠΎΠΌΠΌΠΈΡ‚-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ — это Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Ρ‹Ρ€Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· этой Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ взаимосвязСй. Π’Π΅ΠΌ самым Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡΡ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ всСго рСпозитория ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Git Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡΡ. Π’Π΅Π΄ΡŒ Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сама ΡΡƒΡ‚ΡŒ систСмы контроля вСрсий Git основана Π½Π° Ρ‚Π°ΠΊΠΎΠΉ взаимосвязанной Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² — ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ проистСкаСт ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Как ΠΆΠ΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ ситуации?

НС всС Ρ‚Π°ΠΊ ΠΌΡ€Π°Ρ‡Π½ΠΎ, ΠΊΠ°ΠΊ каТСтся Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд. На самом Π΄Π΅Π»Π΅ сущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ способов ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. НиТС ΠΌΡ‹ познакомимся с Π½ΠΈΠΌΠΈ.

ΠžΠΏΡ†ΠΈΡ amend

Если ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· логичСского рассуТдСния, прСдставлСнного Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΎ получаСтся, Ρ‡Ρ‚ΠΎ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ — Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» внСсСн совсСм Π½Π΅Π΄Π°Π²Π½ΠΎ. Π£ этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, Π½ΠΎ Π½Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ этот ΠΊΠΎΠΌΠΌΠΈΡ‚ — ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅.

БоотвСтствСнно, Ρ€Π°Π· Ρƒ этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π΅ ΠΏΠΎΠ²Π»Π΅Ρ‡Π΅Ρ‚ Π·Π° собой Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ цСлостности всСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот ΠΊΠΎΠΌΠΌΠΈΡ‚ — ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ просто пСрСзаписав Π΅Π³ΠΎ. Для этой Ρ†Π΅Π»ΠΈ слуТит ΠΊΠ»ΡŽΡ‡ . Команда Π² Ρ†Π΅Π»ΠΎΠΌ прСдставляСт ΠΈΠ· сСбя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

git commit --amend -m "Add some commit"

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° подобная ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ (Ρ‚ΠΎΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ HEAD) Π±ΡƒΠ΄Π΅Ρ‚ пСрСзаписан ΠΈ это ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ — достаточно ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму SHA этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄ΠΎ ΠΈ послС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Команда checkout

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚ рСпозитория Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ вСрсии. Π”Π°Π½Π½Ρ‹ΠΉ способ основан Π½Π° самом Ρ„Π°ΠΊΡ‚Π΅ сущСствования Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Ρ€ΠΎΠ»ΠΈ ΡƒΠ·Π»ΠΎΠ² Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ сами ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹.

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

Команда ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ HEAD Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄, Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ мСсто остановки — Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. И Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ этот ΠΊΠΎΠΌΠΌΠΈΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ — ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΌ.

ВсС Ρ‡Ρ‚ΠΎ для этого Π½ΡƒΠΆΠ½ΠΎ — это ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ HEAD. Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ просто — Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΅ΡΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ — ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ SHA-сумма.

Команда Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ выглядит Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

git checkout -- 4a2f59a32bd1074c42 name_of_file

МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ SHA-суммы, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅.

И Ρ‚ΠΎΠ³Π΄Π° Git ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ‚ сброс состояния (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сдСланы Π² послСднСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅) Ρ„Π°ΠΉΠ»Π° Π² Π±ΡƒΡ„Π΅Ρ€. Если ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ Π±ΡƒΠ΄ΡƒΡ‚ измСнСния, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ для ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π­Ρ‚ΠΎ Ρ‚Π΅ самыС измСнСния Ρ„Π°ΠΉΠ»Π° , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ β€œΠ²Ρ‹Π±Ρ€ΠΎΡΠΈΠ»ΠΈβ€ ΠΈΠ· рСпозитория.

Π”Π°Π»ΡŒΡˆΠ΅ выполняСм β€œΠ²Ρ‹Π±Ρ€ΠΎΡβ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ смогли внСсти ΠΏΡ€Π°Π²ΠΊΠΈ Π² этот Ρ„Π°ΠΉΠ»:

git reset HEAD name_of_file

ВсС, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ внСсСно Π² этот Ρ„Π°ΠΉΠ», Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½ΠΎ — Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡƒΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму. А ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ — это ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ совсСм Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π—Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Одной ΠΈΠ· Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Git для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ являСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° .

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

Бинтаксис ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ revert Ρ‚Π°ΠΊΠΆΠ΅ прост:

git revert 4a2f59a32bd1074c42

Π³Π΄Π΅ — это Ρ‡Π°ΡΡ‚ΡŒ SHA-суммы ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Команда reset

Команда Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git. Π”Π΅Π»Π°Π΅Ρ‚ ΠΎΠ½Π° это ΠΏΡƒΡ‚Π΅ΠΌ смСщСния указатСля HEAD Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

ПослС Ρ‚Π°ΠΊΠΎΠ³ΠΎ смСщСния HEAD всС Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ ΠΏΡ€ΠΎΠΏΠ°Π΄ΡƒΡ‚ ΠΈΠ· рСпозитория — ΠΎΠ½ΠΈ всС Π΅Ρ‰Π΅ Ρ‚Π°ΠΌ. Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ любоС Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² — ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ потСряны навсСгда.

Битуация ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ΅ сравнСниС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Git с ΠΌΠ°Π³Π½ΠΈΡ‚ΠΎΡ„ΠΎΠ½Π½ΠΎΠΉ Π»Π΅Π½Ρ‚ΠΎΠΉ. Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠΎΡ‚Π°Ρ‚ΡŒ Π»Π΅Π½Ρ‚Ρƒ Π½Π° 10-20 ΠΌΠΈΠ½ΡƒΡ‚ Π½Π°Π·Π°Π΄ ΠΈ снова Π½Π°Ρ‡Π°Ρ‚ΡŒ запись, Ρ‚ΠΎ всС Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ записи (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ этого мСста) Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны.

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

Команда

1
git reset --soft 4a2f59a32bd1074c42

ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ‚ смСщСниС указатСля HEAD Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ 4a2f59a32bd1074c42. ΠŸΡ€ΠΈ этом Git ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ‚ сброс ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±ΡƒΡ„Π΅Ρ€. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΡ„Π΅Ρ€ ΠΈ рабочая дирСктория Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ собой; Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π΅Π΅ состояниС.

Команда

1
git reset --mixd 4a2f59a32bd1074c42

Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ. Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ смСщСниС указатСля HEAD. Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Git сбросит измСнСния Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π±ΡƒΡ„Π΅Ρ€ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅ΠΌ состоянии.

Команда

1
git reset --hard 4a2f59a32bd1074c42

самая β€œΠΆΠ΅ΡΡ‚ΠΊΠ°Ρβ€. Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ смСщСниС указатСля HEAD Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π½ΠΎ ΠΏΡ€ΠΈ этом Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ сброс всСх Ρ‚Ρ€Π΅Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² Git — рСпозитория, Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. ВсС Ρ‚Ρ€ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ.

Команда clean

Π’ систСмС Git сущСствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π° для удалСния Π½Π΅ отслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΎΠ½ΠΈ Π²Ρ€ΠΎΠ΄Π΅ ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ. Но Π½Π° самом Π΄Π΅Π»Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ всС Π΅Ρ‰Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² систСмС Git. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Ρ€Π°Π·Π΄Π΅Π» мусора ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ мусором.

Команда ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ выполняСт очистку мусора Π² систСмС. Она удаляСт всС Π½Π΅ отслСТиваСмыС ΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

Но Π΄Π°ΠΆΠ΅ это ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ остороТно. Если просто Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ , Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚. БистСма Git скаТСт, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ , Π»ΠΈΠ±ΠΎ с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ .

Запуск — это тСстовый запуск ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ удалСния. НичСго ΡƒΠ΄Π°Π»Π΅Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ — систСма лишь ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° собираСтся ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹.

А Π²ΠΎΡ‚ запуск ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Git считаСт мусором. И Π² этом случаС эти Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ потСряны навсСгда.

На этом всС.


git

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

НС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ-Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ, Π½ΠΎ ΠΈ ярым профСссионалам приходится ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ ΠΎΡ‚ΠΌΠ΅Π½Π΅ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. И Ρ‚ΠΎΠ³Π΄Π°, ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡƒΠΌ, β€” это ΠΊΠΎΠΌΠ°Π½Π΄Π° git revert, ΠΊΠ°ΠΊ самый бСзопасный способ. И Ρ‚ΡƒΡ‚ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ, ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ.

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

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚.Π΄.)
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ числовыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ числа ΠΈ Ρ‚.Π΄.)

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

Рассмотрим Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ наш Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ создал Π²Π΅Ρ‚ΠΊΡƒ functions, класс Arithmetic, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (ΠΊΠΎΠΌΠΌΠΈΡ‚ А), ΠΈ класс Numerical, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ числовых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (ΠΊΠΎΠΌΠΌΠΈΡ‚ N). Π˜Ρ‚ΠΎΠ³ΠΎ Π΄Π²Π° класса ΠΈ Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

git revert

РСшСно, Π΄Π°Π±Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ functions ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ numerical ΠΈ arithmetic. И соотвСтствСнно ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git revert N Π² Π²Π΅Ρ‚ΠΊΠ΅ arithmetic ΠΈ git revert A Π² Π²Π΅Ρ‚ΠΊΠ΅ numerical. Π“Π΅Π½ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΈ просто!

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

И Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ? Ни класса Arithmetic, Π½ΠΈ класса Numerical!

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

A ⟢ N ⟢ revert A ⟢ revert N

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

git reset

И Ρ‚ΡƒΡ‚ ΠΌΡ‹ вспоминаСм, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ такая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠ°ΠΊ reset, Π²ΠΎΡ‚ ΠΎΠ½Π° Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ revert Ρ‚ΠΎΡ‡Π½ΠΎ удаляСт ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· истории. Но Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΠžβ€¦ ΠΎΠ½Π° сбрасываСт всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.

git rebase

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git rebase для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ВСрнСмся ΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ создания Π΄Π²ΡƒΡ… Π²Π΅Ρ‚ΠΎΠΊ numerical ΠΈ arithmetic ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ

git rebase -i –root

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

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ Π² master ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΠ±Π° класса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

git ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС нСзафиксированныС ΠΈΠ»ΠΈ нСсохранСнныС измСнСния — git

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС измСнСния, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ со Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΅Π³ΠΎ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π― ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» git reset --hard ΠΈ git reset --hard HEAD послС просмотра этого поста . Π― ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽ с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° 18c3773… Π½ΠΎ ΠΊΠΎΠ³Π΄Π° я ΡΠΌΠΎΡ‚Ρ€ΡŽ Π½Π° свой Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ источник, всС Ρ„Π°ΠΉΠ»Ρ‹ всС Π΅Ρ‰Π΅ Ρ‚Π°ΠΌ. Π§Ρ‚ΠΎ я ΡƒΠΏΡƒΡΠΊΠ°ΡŽ ΠΈΠ· Π²ΠΈΠ΄Ρƒ?

git

command-line

undo

git-reset

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

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


Antarr Byrd Β  Β 

28 дСкабря 2012 Π² 20:46

6 ΠžΡ‚Π²Π΅Ρ‚ΠΎΠ²



1345

  • Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ с git add :

    git reset
    
  • Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΎΡ‚ΠΌΠ΅Π½Π΅ всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… нСзафиксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ Π Π•ΠŸΠž):

    git checkout .
    

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ нСзафиксированныС измСнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ:

    git checkout [some_dir|file.txt]
    

    Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС нСзафиксированныС измСнСния (дольшС Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ· любого ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°):

    git reset --hard HEAD
    
  • Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… нСотслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ git отслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ²:

    git clean -fdx
    

    WARNING: -x Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ всС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² .gitignore ! Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ -n для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра удаляСмых Ρ„Π°ΠΉΠ»ΠΎΠ².


Подводя ΠΈΡ‚ΠΎΠ³: Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² основном эквивалСнтно fresh git clone ΠΈΠ· исходного ΠΊΠΎΠ΄Π° (Π½ΠΎ ΠΎΠ½ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅Ρ‚, поэтому Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС):

git reset
git checkout .
git clean -fdx

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

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


mvp Β  Β 

28 дСкабря 2012 Π² 21:04



127

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ «ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ» всС нСзафиксированныС измСнСния, просто запуститС:

git stash
git stash drop

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, запустив git status ), ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΈ запускС:

git clean -fdx

git stash создаСт Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ станСт stash@{0} . Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сначала, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git stash list , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ список Π²Π°ΡˆΠΈΡ… Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ². Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

stash@{0}: WIP on rails-4: 66c8407 remove forem residuals
stash@{1}: WIP on master: 2b8f269 Map qualifications
stash@{2}: WIP on master: 27a7e54 Use non-dynamic finders
stash@{3}: WIP on blogit: c9bd270 some changes

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π½Π°Π·Π²Π°Π½ Π² Ρ‡Π΅ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ сообщСниС.

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


Abram Β  Β 

18 июля 2014 в 20:59



18

сущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ git stash -which «stashes» ваши Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ врСмя ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½, Ссли большС Π½Π΅ трСбуСтся

большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°Ρ…

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


keshav Β  Β 

28 дСкабря 2012 Π² 21:17



11

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ исходноС Π΄Π΅Ρ€Π΅Π²ΠΎ…. МоТно Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС нСсохранСнныС измСнСния Π² 2 простых шага:

1) просто Π½ΡƒΠΆΠ½ΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ статус Ρ„Π°ΠΉΠ»Π° Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ пространства

2) Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ всС Ρ„Π°ΠΉΠ»Ρ‹ unstage (command +a), Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ просто πŸ˜€

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


user1872384 Β  Β 

14 июля 2016 в 17:19



5

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ добрался сюда Π² поисках возмоТности ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ git clean -f -d , с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½ Ρ„Π°ΠΉΠ», созданный Π² eclipse ,

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΈΠ· UI, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ «restore from local history» для ref: Restore from local history

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


Abdul Rahman K Β  Β 

28 августа 2015 Π² 09:31



2

Государства, пСрСходящиС ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ

0. last commit,i.e. HEAD commit
1. Working tree changes, file/directory deletion,adding,modification.
2. The changes are staged in index
3. Staged changes are committed

ДСйствиС для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² состояниС

0->1: manual file/directory operation
1->2: git add .
2->3: git commit -m "xxx"

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° diff

0->1: git diff
0->2: git diff --cached
0->1, and 0->2: git diff HEAD
last last commit->last commit: git diff HEAD^ HEAD

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ послСднСй фиксации

2->1: git reset
1->0: git checkout .     #only for tracked files/directories(actions include modifying/deleting tracked files/directories)
1->0: git clean -fdx     #only for untracked files/directories(action includes adding new files/directories)
2->1, and 1->0: git reset --hard HEAD

Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ git clone, Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ

git reset; git checkout .; git clean -fdx

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


Zii Β  Β 

01 июля 2016 в 08:54


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

Π”Π΅Π»Π°Π΅Ρ‚ Π»ΠΈ git stash stash всС измСнСния ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСзафиксированныС

Если я Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ измСнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСзафиксированныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π² git?

SourceTree рассматриваСт ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠ°ΠΊ нСзафиксированныС измСнСния

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСизвСстных случаях, ΠΊΠΎΠ³Π΄Π° я Π²Ρ‹Ρ‚Π°ΡΠΊΠΈΠ²Π°ΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SourceTree, ΠΎΠ½ рассматриваСт всС Π²Ρ‹Ρ‚Π°Ρ‰Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠ°ΠΊ нСзафиксированныС измСнСния ΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ большС Π²Ρ‹Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ/Ρ‚ΠΎΠ»ΠΊΠ°Ρ‚ΡŒ, Ссли Π½Π΅…

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ git —abort

МоТно Π»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Ρƒ git? Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ я Π±Ρ‹Π» слияниС Π΄Π²ΡƒΡ… Π²Π΅Ρ‚Π²Π΅ΠΉ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git ΡΠ»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС, Ρƒ вас Π΅ΡΡ‚ΡŒ нСзафиксированныС измСнСния, поэтому я…

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС нСзафиксированныС измСнСния Π² Perforce?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° p4 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ всС ΠΌΠΎΠΈ нСзафиксированныС измСнСния Π² ΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области Perforce? ΠŸΡ€ΠΈ использовании Git аналогичная ΠΊΠΎΠΌΠ°Π½Π΄Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: git reset —hard

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС нСзафиксированныС измСнСния, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

Как Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ нСзафиксированныС измСнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git? Π― Ρ‡ΠΈΡ‚Π°ΡŽ это, Π½ΠΎ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг. git ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС нСзафиксированныС ΠΈΠ»ΠΈ нСсохранСнныС измСнСния git…

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ мСстных нСзафиксированныС измСнСния Π² эгит (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, svn Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ)

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²Π΅Ρ‚Π²Π΅ΠΉ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠ°ΠΊ нСзафиксированныС измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅?

Допустим, Ρ‡Ρ‚ΠΎ я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ branchA , ΠΈ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС нСзафиксированныС измСнСния. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ я создаю branchB ΠΈ всС Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽ. Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС эти…

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ git ΠΏΡƒΡˆ ΠΏΠ»ΠΎΡ…ΠΎ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ нСсохранСнныС измСнСния

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΌΠΎΠΈ измСнСния, ΠΈ Ссли ΠΎΠ½ΠΈ Π² порядкС, ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΈΡ… Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ: mvn install && git push ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π·Π°…

Git — ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚Π²Π΅ΠΉ всС нСзафиксированныС измСнСния исчСзли

Π― сдСлал Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡ‚ΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… Π² ΠΌΠΎΠ΅ΠΌ локальном Π Π•ΠŸΠž git. Но ΠΊΠΎΠ³Π΄Π° я ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ» Π²Π΅Ρ‚ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ mac Git-Client Π±Π΅Π· фиксации ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, появилось ΠΎΠΊΠ½ΠΎ прСдупрСТдСния ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ…

Как Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠΎΠΈ нСзафиксированныС измСнСния послС git rebase?

Π£ мСня Π±Ρ‹Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСзафиксированныС измСнСния Π½Π° ΠΌΠΎΠ΅ΠΌ локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅,ΠΈ я Ρ…ΠΎΡ‚Π΅Π» ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос Π½Π° вытягиваниС. Π― сдСлал git pull —rebase ΠΈ Π·Π°Π±Ρ‹Π» ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ свои Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния. git…

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

Из ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний Git-ΠΊΠΎΠΌΠΌΠΈΡ‚. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСория, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

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

Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ нонсСнс, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд. Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ выполняСтся пустой ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ удаляСт Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния послС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

git revert HEAD

Команда revert ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ состояния ΠΊ HEAD – послСднСму ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Π² Π²Π΅Ρ‚ΠΊΠ΅.

ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

Если ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, ΠΊ исходной ΠΊΠΎΠΌΠ°Π½Π΄Π΅ добавляСтся --no-edit. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

git revert HEAD --no-edit

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС сдСлано ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, выполняСтся:

git log

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π»ΠΎΠ³Π°Ρ…, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Git-статус ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git status

Если Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ, вмСсто HEAD вписываСтся Π΅Π³ΠΎ Ρ…Π΅Ρˆ ΠΈΠ»ΠΈ Ρ‚Π΅Π³ (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π»ΠΎΠ³Π°Ρ…/истории). Иногда такая ΠΎΡ‚ΠΌΠ΅Π½Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈΠ·-Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Git Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для дальнСйшСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ git status.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, revert оставляСт «слСды» Π² истории Π²Π΅Ρ‚ΠΊΠΈ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ. К возмоТностям reset относятся:

  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.
  2. Бброс Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΉ Π·ΠΎΠ½Ρ‹ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ).
  3. Бброс Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ).

Для Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ:

git tag oops

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ сброс Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° oops:

git reset --hard t1

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ:

git hist

Однако всС Ρ€Π°Π²Π½ΠΎ Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ тСряСтся. ЗапуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ отобраТСния всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²:

git hist --all

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

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы удалСния Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Git — git

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° добавлСния ΠΎΡ‚Π²Π΅Ρ‚Π° Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ :

Π”ΠΎ сих ΠΏΠΎΡ€ я добавлял Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ «ΠΎΡ‚Π²Π΅Ρ‚Ρ‹» ΠΊ самому ΠΌΠΎΠ΅ΠΌΡƒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ вопросу, дСлая вопрос ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, пСрСходя ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ.

Π― Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΌΠ½Π΅ Π½Π° git, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π΅Ρ‰Π΅.

Π’ основном для очистки всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
$ git reset --hard ΠΈ
$ git clean -d -f


ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² являСтся настройка вашСго ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ email, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ появляСтся вмСстС с вашим ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

#Sets имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΊ вашим транзакциям фиксации

$ git config --global user.name "[name]"

#Sets Ρ‚ΠΎΡ‚ email, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

$ git config --global user.email "[email address]"

#List глобальная конфигурация

$ git config --list

#List ΠΏΡƒΠ»ΡŒΡ‚ дистанционного управлСния URL

$ git remote show origin

#check статус

git status

#List всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΠΈΠ°Π»Ρ‹

git branch -a

#create ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ этой Π²Π΅Ρ‚Π²ΡŒΡŽ

git checkout -b "branchname" 

ΠΈΠ»ΠΈ ΠΆΠ΅ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сдСлано Π² Π²ΠΈΠ΄Π΅ двухэтапного процСсса

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ: git branch branchname
Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ этой Π²Π΅Ρ‚ΠΊΠΎΠΉ: git checkout branchname

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

git add <path to file>

git commit -m "commit message"

#checkout ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ мСстный Ρ„ΠΈΠ»ΠΈΠ°Π»

git checkout "local branch name"

#remove всС измСнСния Π² локальной Π²Π΅Ρ‚ΠΊΠ΅ [ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ внСсли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния Π² локальной Π²Π΅Ρ‚ΠΊΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ», ΠΈΠ»ΠΈ сдСлали Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ это большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ]
git clean -d -f ΠΈ git reset --hard [ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния, внСсСнныС Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ локальной фиксации]

git stash -u Ρ‚Π°ΠΊΠΆΠ΅ удаляСт всС измСнСния

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:
ясно, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ
(1) комбинация git clean –d –f ΠΈ git reset --hard
OR
(2) git stash -u
для достиТСния ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1: Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это слово ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ » Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ (Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ) бСзопасно ΠΈ Ρ‚Π°ΠΉΠ½ΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ мСстС.- Π­Ρ‚ΠΎ всСгда ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash pop. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ-это Π²Ρ‹Π·ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2: git reset --hard ΡƒΠ΄Π°Π»ΠΈΡ‚ измСнСния Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сохранитС всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.

# ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π² курсС событий.

git checkout master

git fetch [это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ (Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ git) для получСния ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π° origin / master ]

git pull

# ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ.

git merge feature_branch

# Бброс Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ Π² исходноС состояниС.

git reset origin/master

#Accidentally ΡƒΠ΄Π°Π»ΠΈΠ» Ρ„Π°ΠΉΠ» ΠΈΠ· локального, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ?
Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git status , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСсурса

git checkout branchname <file path name>

Π²ΠΎΡ‚ ΠΈ всС!

#Merge главная Π²Π΅Ρ‚Π²ΡŒ с ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΡ‡Π΅Ρ€ΠΊΠΎΠΌ

git checkout master
git merge someotherbranchname

ΠœΠ΅ΡΡ‚Π½ΠΎΠ΅ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈΠ΅ #rename

git branch -m old-branch-name new-branch-name

#delete мСстного отдСлСния

git branch -D branch-name

Π£Π΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ #delete

git push origin --delete branchname

ΠΈΠ»ΠΈ

git push origin :branch-name

#revert фиксация ΡƒΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

git revert hgytyz4567

#branch ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксации с использованиСм GIT

git branch branchname <sha1-of-commit>

#Change сообщСниС ΠΎ фиксации самой послСднСй фиксации, которая ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π°

git commit --amend -m "new commit message"
git push --force origin <branch-name>

# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² этой Π²Π΅Ρ‚ΠΊΠ΅ [ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²]

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° этой Π²Π΅Ρ‚ΠΊΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΠΉ «upstream» этой Π²Π΅Ρ‚Π²ΠΈ, просто запуститС

git reset --hard @{u}

Бсылка: http://sethrobertson.github.io/GitFixUm/fixup.html
ΠΈΠ»ΠΈ do git reset --hard origin/master [Ссли локальная Π²Π΅Ρ‚Π²ΡŒ являСтся Π³Π»Π°Π²Π½ΠΎΠΉ]

# ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΡƒΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ?

$ git revert ab12cd15

#Delete ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксации ΠΎΡ‚ мСстных Ρ„ΠΈΠ»ΠΈΠ°Π»ΠΎΠ² ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ„ΠΈΠ»ΠΈΠ°Π»ΠΎΠ²

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования: Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ внСсли измСнСния Π² свою Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΈ сразу ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ осознав, О Π½Π΅Ρ‚! МнС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Ρ‹. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ?

git reset --hard HEAD~1 [для удалСния этой фиксации ΠΈΠ· локальной Π²Π΅Ρ‚Π²ΠΈ. 1 ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ сдСланный Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ ONE]

git push origin HEAD --force [ΠΎΠ±Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹. Для удалСния ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ]. Π’ настоящСС врСмя извлСчСнная Π²Π΅Ρ‚Π²ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π²Π΅Ρ‚Π²ΡŒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅ эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.

#Delete Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½Π΅Π΄Π°Π²Π½ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ· локального ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π Π•ΠŸΠž ΠΈ сохранСния Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π²Π°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚. ( своСго Ρ€ΠΎΠ΄Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ· локального ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ)

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ вас Π΅ΡΡ‚ΡŒ 3 ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ‘ develop

commitid-1 done at 9am
commitid-2 done at 10am
commitid-3 done at 11am. // latest commit. HEAD is current here.

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ старой фиксации (ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС Π²Π΅Ρ‚Π²ΠΈ)

git log --oneline --decorate --graph // Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹

git clean -d -f / / очиститС всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния

git reset --hard commitid-1 / / локально Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ этому commitid

git push -u origin +develop / / пСрСмСститС это состояниС Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅. + Π΄Π΅Π»Π°Ρ‚ΡŒ силовой Ρ‚ΠΎΠ»Ρ‡ΠΎΠΊ

# Π£Π΄Π°Π»ΠΈΡ‚ΡŒ локальноС слияниС git:
Case:
Π― Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ ΠΈ слил Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ с Π½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚Π²ΡŒΡŽ phase2

$ git status

На Π²Π΅Ρ‚ΠΊΠ΅ мастСр

$ git merge phase2
$ git status

На Π²Π΅Ρ‚ΠΊΠ΅ мастСр

Π’Π°ΡˆΠ° Π²Π΅Ρ‚ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ ‘origin/master’ Π½Π° 8 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Вопрос: Как ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ этого локального слияния git? ΠŸΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» git reset --hard ΠΈ git clean -d -f -ΠΎΠ±Π° Π½Π΅ сработали.
ЕдинствСнноС, Ρ‡Ρ‚ΠΎ сработало , — это любой ΠΈΠ· ниТСпСрСчислСнных:

$ git reset —hard origin / master

ΠΈΠ»ΠΈ

$ git сброс —ТСсткий HEAD~8

ΠΈΠ»ΠΈ

$ git reset --hard 9a88396f51e2a068bb7 [sha commit code — это Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присутствовал Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ слияния ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ]

#create Ρ„Π°ΠΉΠ» gitignore

touch .gitignore / / ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² mac ΠΈΠ»ΠΈ unix ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠΎΠ±Ρ€Π°Π·Π΅Ρ† .gitignore содСрТаниС:

.project
*.py
.settings

Бсылка Π½Π° ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ GIT: https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слияниС Git, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ — git

Π’ своСй Π²Π΅Ρ‚Π²ΠΈ master я сдСлал git merge some-other-branch локально, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π» измСнСния Π² origin master. Π― Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Π»Π°ΡΡŒ ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ, поэтому Ρ…ΠΎΡ‚Π΅Π»Π° Π±Ρ‹ всС ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. Когда я Π΄Π΅Π»Π°Π» git status послС слияния, я ΠΏΠΎΠ»ΡƒΡ‡Π°Π» это сообщСниС:

# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.

ΠžΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… инструкциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я нашСл , я попытался Π±Π΅ΠΆΠ°Ρ‚ΡŒ

git revert HEAD -m 1

Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ это сообщСниС с git status :

# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.

Π― Π½Π΅ Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ моя Π²Π΅Ρ‚Π²ΡŒ Π±Ρ‹Π»Π° Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ ΠΏΠΎ количСству ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Как ΠΌΠ½Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ?

git

undo

git-merge

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

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


Matt Huggins Β  Β 

05 ΠΌΠ°Ρ€Ρ‚Π° 2010 Π² 19:24

25 ΠžΡ‚Π²Π΅Ρ‚ΠΎΠ²



3823

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git reflog ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, какая фиксация являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… слиянию (git reflog Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, Ρ‡Π΅ΠΌ git log). Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

git reset --hard commit_sha

Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ:

git reset --hard HEAD~1

Π­Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ Π²Π°ΠΌ 1 ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΈ нСзафиксированныС/нСэкранированныС Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ Π² ΠΈΡ… Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ состояниС . Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ…, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΡΡ‡ΡŒΡ‚Π΅ измСнСния, Π»ΠΈΠ±ΠΎ смотритС ΠΎΠΏΡ†ΠΈΡŽ --merge Π½ΠΈΠΆΠ΅.


Как @Velmont ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π½ΠΈΠΆΠ΅ Π² своСм ΠΎΡ‚Π²Π΅Ρ‚Π΅, Π² этом прямом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ:

git reset --hard ORIG_HEAD

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


Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ совСт-ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ --merge вмСсто --hard , Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅ сбрасываСт Ρ„Π°ΠΉΠ»Ρ‹ Π±Π΅Π· нСобходимости:

git reset --merge ORIG_HEAD

—ΠΏΠΎΠ³Π»ΠΎΡ‰Π°Ρ‚ΡŒ

БбрасываСт индСкс ΠΈ обновляСт Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ <commit> ΠΈ HEAD, Π½ΠΎ сохраняСт Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ индСксом ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ (Ρ‚. Π΅. ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹).

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


Marcin Gil Β  Β 

05 ΠΌΠ°Ρ€Ρ‚Π° 2010 Π² 19:34



1356

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ ваш мСстный мастСр Π½Π΅ ΠΎΠΏΠ΅Ρ€Π΅Π΄ΠΈΠ» origin/master,, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² состоянии ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это

git reset --hard origin/master

Π’ΠΎΠ³Π΄Π° ваша локальная Π²Π΅Ρ‚Π²ΡŒ master Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ origin/master .

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


randomguy3 Β  Β 

17 ΠΌΠ°Ρ€Ρ‚Π° 2011 Π² 18:06


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


Yuri Geinish Β  Β 

02 июня 2011 в 16:31



924

Π‘Ρ‚Ρ€Π°Π½Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ самой простой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Π½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½Π° слияния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСлали, это простой ΠΈ бСзопасный способ :

git reset --merge ORIG_HEAD

Ref ORIG_HEAD Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Π΄ΠΎ слияния.

(ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --merge Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ слиянию. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ , ΠΊΠ°ΠΊ git reset --hard ORIG_HEAD, Π½ΠΎ бСзопаснСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅ касаСтся нСзафиксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.)

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


odinho — Velmont Β  Β 

29 января 2013 Π² 15:46



349

Π‘ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ вСрсиями Git, Ссли Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ зафиксировали слияниС ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это:

git merge --abort

ΠžΡ‚ man git merge :

[This] ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ слияниС ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌ. git merge --abort ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ процСсс слияния ΠΈ попытаСтся Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ состояниС ΠΏΠ΅Ρ€Π΅Π΄ слияниСм.

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


Travis Reeder Β  Β 

12 фСвраля 2013 Π² 02:13



119

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксации. Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ:

git reset --hard HEAD^

Или Π΄Π°ΠΆΠ΅ HEAD^^ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ фиксат. Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ссылку Π½Π° SHA, Ссли Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, сколько шагов Π½Π°Π·Π°Π΄ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π’ случаС, Ссли Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ ваша главная Π²Π΅Ρ‚Π²ΡŒ Π½Π΅ ΠΈΠΌΠ΅Π»Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ origin/master .

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


MBO Β  Β 

05 ΠΌΠ°Ρ€Ρ‚Π° 2010 Π² 19:31



81

Π’ послСднСС врСмя я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ git reflog , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с этим. Π­Ρ‚ΠΎ Π² основном Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли слияниС JUST ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, ΠΈ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π° вашСй машинС.

git reflog ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅:

fbb0c0f HEAD@{0}: commit (merge): Merge branch 'master' into my-branch
43b6032 HEAD@{1}: checkout: moving from master to my-branch
e3753a7 HEAD@{2}: rebase finished: returning to refs/heads/master
e3753a7 HEAD@{3}: pull --rebase: checkout e3753a71d92b032034dcb299d2df2edc09b5830e
b41ea52 HEAD@{4}: reset: moving to HEAD^
8400a0f HEAD@{5}: rebase: aborting

ΠŸΠ΅Ρ€Π²Π°Ρ строка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ слияниС. 2-я строка — это врСмя Π΄ΠΎ ΠΌΠΎΠ΅Π³ΠΎ слияния. Π― просто git reset --hard 43b6032 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ эту Π²Π΅Ρ‚ΠΊΡƒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΎ слияния,ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ.

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


Parris Β  Β 

19 дСкабря 2014 Π² 17:51



47

Π‘ соврСмСнной Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅:

git merge --abort

Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ синтаксис:

git reset --merge

Бтарая школа:

git reset --hard

Но Π½Π° самом Π΄Π΅Π»Π΅, стоит Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ git merge --abort эквивалСнтно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ git reset --merge , учитывая, Ρ‡Ρ‚ΠΎ MERGE_HEAD присутствуСт. Об этом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π² Git ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ merge.

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

ПослС Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ слияния, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ MERGE_HEAD, Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ слияниС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ΠΎ с git reset --merge , Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ с git merge --abort, поэтому ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ старым ΠΈ Π½ΠΎΠ²Ρ‹ΠΌ синтаксисом для ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π²Π΅Ρ‰ΠΈ .

Π›ΠΈΡ‡Π½ΠΎ я Π½Π°Ρ…ΠΎΠΆΡƒ git reset --merge Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π² повсСднСвной Ρ€Π°Π±ΠΎΡ‚Π΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ.

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


Martin G Β  Β 

08 мая 2015 в 19:13



36

Π›Π°Π΄Π½ΠΎ, ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… людСй здСсь Π±Ρ‹Π»ΠΈ Π±Π»ΠΈΠ·ΠΊΠΈ, Π½ΠΎ это Π½Π΅ сработало. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ я сдСлал.

Π”Π΅Π»Π°ΡŽΡ‰ΠΈΠΉ это…

git reset --hard HEAD^
git status

Π΄Π°Π» ΠΌΠ½Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ статус.

# On branch master
# Your branch and 'origin/master' have diverged,
# and have 3 and 3 different commit(s) each, respectively.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ввСсти ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git reset Π΅Ρ‰Π΅ нСсколько Ρ€Π°Π·. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° я это Π΄Π΅Π»Π°Π», сообщСниС мСнялось Π½Π° ΠΎΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½ΠΈΠΆΠ΅.

> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 3 and 3 different commit(s) each, respectively.
> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 2 and 3 different commit(s) each, respectively.
> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 3 different commit(s) each, respectively.
> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch is behind 'origin/master' by 3 commits, and can be fast-forwarded.

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ я ΡƒΠ²ΠΈΠ΄Π΅Π», Ρ‡Ρ‚ΠΎ сообщСниС ΠΎ состоянии измСнилось, поэтому я попытался ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ git pull , ΠΈ это, ΠΏΠΎΡ…ΠΎΠΆΠ΅, сработало:

> git pull
Updating 2df6af4..12bbd2f
Fast forward
 app/views/truncated |    9 ++++++---
 app/views/truncated |   13 +++++++++++++
 app/views/truncated |    2 +-
 3 files changed, 20 insertions(+), 4 deletions(-)
> git status
# On branch master

ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, ΠΌΠΎΠΈ ΠΏΡ€ΠΈΠΊΠ°Π·Ρ‹ сводились ΠΊ этому:

git reset --hard HEAD^
git reset --hard HEAD^
git reset --hard HEAD^
git reset --hard HEAD^
git pull

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


Matt Huggins Β  Β 

05 ΠΌΠ°Ρ€Ρ‚Π° 2010 Π² 19:54



21

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git reflog , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π·Π°ΠΊΠ°Π·. Иногда это Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ состояниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ.

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ,

$ git reflog
$ git reset --hard HEAD@{0}

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


stephjang Β  Β 

17 января 2014 Π² 22:36



13

Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ сдСлали этого, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

$ git checkout -f

Π­Ρ‚ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ слияниС (ΠΈ всС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ сдСлали).

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


Idealmind Β  Β 

18 января 2013 Π² 15:25



13

Добрался Π΄ΠΎ этого вопроса Ρ‚Π°ΠΊΠΆΠ΅ глядя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΡŽ origin (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, NO ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ origin). Π˜ΡΡΠ»Π΅Π΄ΡƒΡ дальшС, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° reset ΠΈΠΌΠ΅Π½Π½ΠΎ для этого:

git reset --hard @{u}

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: @{u} -это сокращСниС ΠΎΡ‚ origin/master . (И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ этот ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.)

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


leanne Β  Β 

16 фСвраля 2017 Π² 21:54



11

Π― смог Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹,которая Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ поиска ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° фиксации.

git reset --hard remotes/origin/HEAD

ΠŸΡ€ΠΈΠ½ΡΡ‚Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π΅ сработал для мСня, Π½ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° достигла Ρ‚Π΅Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я искал.

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


Ralph Ritoch Β  Β 

25 июля 2018 в 09:55



10

ΠŸΡ€ΠΎΡΡ‚ΠΎ для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, я Π² основном слСдовал ΠΌΠΎΠ΄Π΅Π»ΠΈ вСтвлСния, описанной здСсь: http://nvie.com/posts/a-successful-git-branching-model/ ΠΈ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сливался с --no-ff (Π±Π΅Π· быстрой ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄).

Π― Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» эту страницу, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ случайно слил Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ вмСсто ΠΌΠΎΠ΅ΠΉ Π²Π΅Ρ‚Π²ΠΈ выпуска с master для развСртывания (website, master — это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚). ВСстовая Π²Π΅Ρ‚Π²ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Ρ‚Π²ΠΈ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ Π² Π½Π΅Π΅, ΠΈ составляСт ΠΎΠΊΠΎΠ»ΠΎ ΡˆΠ΅ΡΡ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ вСсь ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΌΠ½Π΅ просто Π½ΡƒΠΆΠ΅Π½ Π±Ρ‹Π» ΠΎΠ΄ΠΈΠ½ git reset --hard HEAD^ , ΠΈ ΠΎΠ½ Π²Π΅Ρ€Π½ΡƒΠ» всС слияниС. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ слияния Π½Π΅ Π±Ρ‹Π»ΠΈ быстро пСрСадрСсованы, слияниС Π±Ρ‹Π»ΠΎ Π±Π»ΠΎΠΊΠΎΠΌ, ΠΈ ΠΎΠ΄ΠΈΠ½ шаг Π½Π°Π·Π°Π΄ — это «branch not merged».

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


Damien Byrne Β  Β 

09 июня 2011 в 00:54



10

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ слияния ΠΈΠ»ΠΈ пСрСзапуска с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ фиксации:

  1. git reset --hard commitHash (Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. 44a587491e32eafa1638aca7738)
  2. git push origin HEAD --force (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ локальной Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ Π² origin/master)

Π£Π΄Π°Ρ‡ΠΈ Π²Π°ΠΌ ΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄!

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


Matheus Abreu Β  Β 

12 дСкабря 2014 Π² 23:16



10

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΎΡ‚Π²Π΅Ρ‚ Π΄Π°Π΅Ρ‚ одиньо-Π’Π΅Π»ΡŒΠΌΠΎΠ½Ρ‚

Π‘Π½Π°Ρ‡Π°Π»Π° сдСлай git reset --merge ORIG_HEAD

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ настройки послС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, сдСлайтС это
(ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ пост, ΡƒΠ²ΠΈΠ΄Π΅Π½Π½Ρ‹ΠΉ для Π»ΡŽΠ±Ρ‹Ρ… вопросов git reset merge)

git push origin HEAD --force

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ измСнСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ послС вытягивания.

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


Harsha Β  Β 

02 ноября 2017 Π² 23:22



10

Если Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² сСрСдинС слияния Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ
git merge --abort

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


llioor Β  Β 

13 дСкабря 2018 Π² 14:05



7

Если вашС слияниС ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π΅ Π·Π°Π½ΠΎΠ²ΠΎ.

НапримСр, я случайно слил Π²Π΅Ρ‚ΠΊΡƒ Development Π² master ΠΈ Ρ…ΠΎΡ‚Π΅Π» Π΅Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

git checkout develop
git branch -D master
git branch -t master origin/master

Вуаля! ΠœΠ°ΡΡ‚Π΅Ρ€ находится Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ стадии, Ρ‡Ρ‚ΠΎ ΠΈ источник, ΠΈ Π’Π°ΡˆΠ΅ Π½Π΅Π²Π΅Ρ€Π½ΠΎ слитоС состояниС стираСтся.

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


Stephan Β  Β 

26 июня 2012 в 11:15



4

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ просто ΠΏΠΎΠΉΡ‚ΠΈ с ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ MBO.

Если Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΡ‚ΡŒΡΡ графичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄:

  1. Kick off gitk (ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ это)
  2. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ слияния Ρ‚Π°ΠΌ — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠ·Π΅Π» свСрху с двумя родитСлями
  3. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ссылкС Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ / Π»Π΅Π²Ρ‹ΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ (Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚Π²ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ слияниСм, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ красный для мСня)
  4. На Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ фиксации Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ «ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ сюда», Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ТСсткий сброс Ρ‚Π°ΠΌ

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


inger Β  Β 

21 ΠΌΠ°Ρ€Ρ‚Π° 2013 Π² 14:38



4

БтратСгия: создайтС Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС Π±Ρ‹Π»ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

ОбоснованиС: Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ слиянию-это слоТно. БущСствуСт слишком ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, зависящих ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ фиксация ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ слияниС, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… фиксаций послС слияния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°ΠΌ всС Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ git, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΡΠ»ΡƒΡ‡Π°ΡŽ. Если Π²Ρ‹ слСпо слСдуСтС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ инструкциям, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ «empty merge», Π³Π΄Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ объСдинСно, ΠΈ дальнСйшиС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ слияния заставят Git ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ «Already up to date».

РСшСниС:

Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ dev Π² feature-1 .

  1. НайдитС Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ слияниСм:

    git log --oneline feature-1
    a1b2c3d4 Merge branch 'dev' into 'feature-1' <-- the merge you want to undo
    e5f6g7h8 Fix NPE in the Zero Point Module <-- the one before the merge, you probably want this one
    
  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ это (Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ):

    git checkout e5f6g7h8
    
  3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Π΅:

    git checkout -b feature-1
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слияниС:

  1. БлияниС: git merge dev

  2. Π˜ΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния.

  3. Ѐиксация: git commit

  4. Когда Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ: git branch --delete feature-1

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


pyb Β  Β 

11 июня 2015 в 15:42



1

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ git rebase -i [hash] [branch_name] , Π³Π΄Π΅ [hash] -это идСнтификация hash для Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π°Π·Π°Π΄ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚Π°Ρ‚ΡŒ плюс ΠΎΠ΄ΠΈΠ½ (ΠΈΠ»ΠΈ сколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π½Π°Π·Π°Π΄ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΉΡ‚ΠΈ), Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ». Π’Ρ‹Ρ…ΠΎΠ΄. ΠœΠΎΠ»ΠΈΡ‚ΡŒΡΡ. И ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚Π°Π½ Π½Π°Π·Π°Π΄. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ , Π²Π°ΠΌ придСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ git reset --hard, Π½ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это для извлСчСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ· стСка, Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² своСй истории, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ваш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² состоянии, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Π°ΠΌ, вСроятно, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

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


tychoish Β  Β 

08 ΠΌΠ°Ρ€Ρ‚Π° 2010 Π² 02:55



1

  1. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ всС сдСлали ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

  2. Π—Π°Ρ‚Π΅ΠΌ ΡΠ±Ρ€ΠΎΡΡŒΡ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ состояниС:

    $ git reset f836e4c1fa51524658b9f026eb5efa24afaf3a36
    

    ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ --hard ( это ΡƒΠ΄Π°Π»ΠΈΡ‚ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅, Π½Π΅ зафиксированныС измСнСния! ):

    $ git reset f836e4c1fa51524658b9f026eb5efa24afaf3a36 --hard
    

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ hash, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Ρ‚Π°ΠΌ Π΄ΠΎ вашСго ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ объСдинСнного ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

  3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия::

    $ git log 4c3e23f529b581c3cbe95350e84e66e3cb05704f
    
    commit 4c3e23f529b581c3cbe95350e84e66e3cb05704f
    
    ...
    
    commit 16b373a96b0a353f7454b141f7aa6f548c979d0a
    
    ...
    
  4. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ваши ΠΏΡ€Π°Π²Ρ‹Π΅ фиксации Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΏΡ€Π°Π²ΠΎΠΉ вСрсии вашСго рСпозитория, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ:

    • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cherry-pick (измСнСния, внСсСнныС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ)

          git cherry-pick ec59ab844cf504e462f011c8cc7e5667ebb2e9c7
      
    • Или вишня-Π²Ρ‹Π±ΠΎΡ€ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° фиксации:

      • Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… объСдинСниСм:

        git diff 5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f
        
      • Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… объСдинСниСм:

        git cherry-pick 5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f
        

        Π³Π΄Π΅ это Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ»ΠΈ (ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ΅ слияниС).

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


kenorb Β  Β 

29 января 2013 Π² 15:09



1

Если Π²Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ»ΠΈ слияниС:

git reset HEAD~1
# Make sure what you are reverting is in fact the merge files
git add .
git reset --hard

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


Dorian Β  Β 

10 ноября 2016 Π² 15:57



0

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈΠ· самых простых шансов, Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ всС сказанноС здСсь:

Π£Π΄Π°Π»ΠΈΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ (Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ, Π° Π½Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ) ΠΈ снова потянитС Π΅Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚Π΅ измСнСния Π² своСй Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ, ΠΈ всС Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ. Начни всС сначала.

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


Luis Β  Β 

15 июля 2016 в 14:16



0

Если Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ сразу послС слияния, ΠΈ Π²Ρ‹ большС Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сдСлали послС ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ слияния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
git reset --hard HEAD@{1} .

По сути, вашС слияниС sha Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° HEAD@{0} , Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ большС Π½Π΅ Π±Ρ‹Π»ΠΎ зафиксировано послС слияния, ΠΈ поэтому HEAD@{1} Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄ слияниСм.

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


Dut A. Β  Β 

26 апрСля 2016 Π² 18:52


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

Git ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ слияниС ΠΈ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ своСй Π²Π΅Ρ‚ΠΊΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π― ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» Π²Π΅Ρ‚ΠΊΡƒ ‘branch-xxx’, зафиксировал свои измСнСния, Π° Π·Π°Ρ‚Π΅ΠΌ объСдинил Π²Π΅Ρ‚ΠΊΡƒ Π² Developer, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот кусок ΠΊΠΎΠ΄Π° Π³Π»ΡŽΡ‡ΠΈΡ‚! Как я ΠΌΠΎΠ³Ρƒ…

Git ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ автоматичСскоС слияниС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π° Π½Π΅ для всСй Π²Π΅Ρ‚Π²ΠΈ

Π•ΡΡ‚ΡŒ Π»ΠΈ способ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ автоматичСскоС слияниС ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ вмСсто всСй Π²Π΅Ρ‚Π²ΠΈ Π² Git? Π― Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это слияниС: АвтоматичСскоС слияниС public/stylesheets/application.css ΠΊ…

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ мастСра, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ запросы (Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ мастСр)

МоТно Π»ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ слияния Π½Π° master ΠΈΠ· Π²Π΅Ρ‚Π²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Π° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр? E.g. ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ· фиксации слияния Π² master, ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ…

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Git Ρ‡Π΅ΡΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ слияния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½ΠΎ?

Π― ΡƒΠΆΠ΅ сталкивался с этой ситуациСй ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 3 ΠΈΠ»ΠΈ 4 Ρ€Π°Π·Π°. Иногда Git Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ слияниС. Π­Ρ‚ΠΎ происходит Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° git commit <filename> -m <message> , Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт git push…

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слияниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ сдСлано Π΄ΠΎ ΠΌΠΎΠ΅Π³ΠΎ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°?

Длинная история ΠΊΠΎΡ€ΠΎΡ‡Π΅: Π― слился Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ Π― Π²Π²Π΅Π» Π½ΠΎΠ²Ρ‹Π΅ измСнСния. Π― Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слияниС, Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ измСнСния. Π― знаю, Ρ‡Ρ‚ΠΎ git reset —hard <hash> ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΠΈ Ссли я сдСлаю…

Bigquery отмСняСт ΠΈΠ»ΠΈ останавливаСт Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ запроса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ (Status.State = «PENDING»)

Если ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ трСбуСтся ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ/ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ запроса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ (Status.State = PENDING), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ? (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°: net…

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слияниС Π½Π° Bitbucket?

Π― создал слияниС (Π² Π²Π΅Ρ‚ΠΊΡƒ ‘master’), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ находится Π² Ρ€Π΅ΠΏΠΎ Bitbucket. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это слияниС. Π― знаю, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π° самом сайтС Github, Π½ΠΎ Bitbucket…

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слияниС git, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π²ΠΈΠ½ΡƒΡ‚ΠΎ

Как я ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слияниС, ΠΊΠΎΠ³Π΄Π° я ΡƒΠΆΠ΅ Π½Π°ΠΆΠ°Π» Π½Π° мастСр послС слияния? Π’ΠΎΡ‚ ΠΌΠΎΠΈ шаги: git add -A git commit -m some message git fetch origin master:master git rebase master (resolve merge conflicts)…

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слияниС Π² git ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ состояниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rebase

Допустим, Ρƒ мСня Π΅ΡΡ‚ΡŒ этот Π³Ρ€Π°Ρ„ΠΈΠΊ: A — B — C1.1 — D — E — F -G (master) \_ C2.1 _/(feature) И я Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слияниС, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ C1.2 Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ,Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈ…

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ git автоматичСскоС слияниС

ПослС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Π΅Ρ‚Π²Π΅ΠΉ я ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» stash (ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅), Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ автоматичСскому слиянию. ο£Ώ git stash apply Auto-merging src/clojure/project_src.clj On branch upgrade_project Changes…

ΠœΠ½ΠΎΠ³ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ возмоТности ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ Π² Git

GitLab Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹