How to rename commit in git

How to rename commit in git

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ истории

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

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

Основная Π·Π°Π΄Π°Ρ‡Π° Git β€” Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ потСряСтС внСсСнныС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Но эта систСма Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для прСдоставлСния Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ контроля Π½Π°Π΄ процСссом Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ числС ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ Π²Ρ‹ сами опрСдСляСтС Ρ‚ΠΎ, ΠΊΠ°ΠΊ выглядит история вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Вакая свобода создаСт ΠΈ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Git прСдоставляСт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для пСрСзаписи истории, Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ использованиС Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ How to rename commit in git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ How to rename commit in git. Π€ΠΎΡ‚ΠΎ How to rename commit in git

ИзмСнСниС коммСнтария ΠΊ послСднСму ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Git

Допустим, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π²Ρ‹ допустили ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ Π½Π΅ΠΌΡƒ. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² отсутствиС проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ² позволяСт ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Π±Π΅Π· измСнСния состояния ΠΊΠΎΠ΄Π°.

ИзмСнСниС Ρ„Π°ΠΉΠ»ΠΎΠ² послС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ amend для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π˜Π·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎ сути ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΈ этом ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π΅ останСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅. ΠŸΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΡ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ сбросу (reset) ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ состояния ΠΊΠΎΠ΄Π°. НС измСняйтС ΠΊΠΎΠΌΠΌΠΈΡ‚, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠΆΠ΅ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. Π­Ρ‚Π° ситуация Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ нСпросто.

ΠžΠ±Π·ΠΎΡ€

ИзмСнСниС старых ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Для измСнСния старых ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git rebase для объСдинСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Π½ΠΎΠ²Ρ‹ΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π’ стандартном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° git rebase позволяСт Π² Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎΠΌ смыслС ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ: ΠΎΠ½Π° автоматичСски примСняСт ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅ ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ head ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ старыС, ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git rebase Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стали доступны ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ. Π˜Π½Π°Ρ‡Π΅ история ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° исчСзнСт.

ИзмСнСниС Ρ„Π°ΠΉΠ»ΠΎΠ² послС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

НСсколько ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ стандартный ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Git Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄Π°ΡŽΡ‚ наглядноС прСдставлСниС ΠΎΠ± истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ΠΎ врСмя ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ rebase ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ для измСнСния ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ.

Π‘ΠΊΠ»Π΅ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ для поддСрТания чистой истории

Команда склСивания ( s ) позволяСт Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ смысл rebase. Π‘ΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΠ΅ позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ создаСтся «чистая история». Π’ΠΎ врСмя пСрСмСщСния Git Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ rebase для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π’ случаС склССнных ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Git ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ. Π­Ρ‚ΠΎΡ‚ процСсс ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ How to rename commit in git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ How to rename commit in git. Π€ΠΎΡ‚ΠΎ How to rename commit in git

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rebase, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ с ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠΌ pick ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Ссли ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ пСрСписаны.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для хостинга Git (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Bitbucket) ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ возмоТности «автосклСивания» ΠΏΡ€ΠΈ слиянии. Π­Ρ‚ΠΈ возмоТности ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ автоматичСски Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ rebase ΠΈ ΡΠΊΠ»Π΅ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²Π΅Ρ‚ΠΊΠΈ ΠΏΡ€ΠΈ использовании интСрфСйса Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для хостинга. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π‘ΠΊΠ»Π΅ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΊΠΈ Git Π² BitbucketΒ».

ΠžΠ±Π·ΠΎΡ€

Команда git rebase позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ rebase Β«ΠΏΠΎΠ΄Ρ‡ΠΈΡ‰Π°Π΅Ρ‚Β» Π·Π° Π²Π°ΠΌΠΈ слСды. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ошибки, оттачивая свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ сохраняя Ρ‡ΠΈΡΡ‚ΡƒΡŽ, Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π‘Ρ‚Ρ€Π°Ρ…ΠΎΠ²ΠΊΠ°: git reflog

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½Ρ‹Π΅ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ (reflog) β€” это ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Git для рСгистрации ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, примСняСмых ΠΊ ΠΊΠΎΠ½Ρ†Π°ΠΌ Π²Π΅Ρ‚ΠΎΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ссылкам Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Reflog позволяСт Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ, Π΄Π°ΠΆΠ΅ Ссли Π½Π° Π½ΠΈΡ… Π½Π΅Ρ‚ ссылок ΠΈΠ· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ. ПослС пСрСзаписи истории reflog содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ старом состоянии Π²Π΅Ρ‚ΠΎΠΊ ΠΈ позволяСт ΠΏΡ€ΠΈ нСобходимости Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ этому ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ†Π° Π²Π΅Ρ‚ΠΊΠΈ Π»ΡŽΠ±Ρ‹ΠΌ способом (ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ истории ΠΈΠ»ΠΈ просто Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²) Π² reflog добавляСтся новая запись. Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассматриваСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git reflog ΠΈ стандартныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΅Π΅ использования.

ИспользованиС

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ reflog локального рСпозитория.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ reflog с ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Ρ‚Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2 Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ reflog ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π²Π΅Ρ‚ΠΊΡƒ 2.2 ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. ΠžΡ‚ΡΡŽΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ТСсткий сброс ΠΊ старому ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ. ПослСднСС дСйствиС ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ строчкС с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ HEAD@ <0>.

Если Π²Ρ‹ случайно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ΡΡŒ Π½Π°Π·Π°Π΄, reflog Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° (0254ea7) Π΄ΠΎ случайного удалСния Π²Π°ΠΌΠΈ 2 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

ΠŸΡ€ΠΈ использовании ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git reset ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΊ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ. Π­Ρ‚ΠΎ страховка Π½Π° случай Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ измСнСния истории.

НСобходимо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ reflog Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прСдоставляСт страховку Π½Π° Ρ‚ΠΎΡ‚ случай, ΠΊΠΎΠ³Π΄Π° измСнСния ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΈ Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрСмСщСния ΠΊΠΎΠ½Ρ†ΠΎΠ² Π²Π΅Ρ‚ΠΎΠΊ рСпозитория. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, записи reflog ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ срок хранСния. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ этот срок составляСт 90 Π΄Π½Π΅ΠΉ.

РСзюмС

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов измСнСния истории Git ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Git. ΠœΡ‹ Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ рассмотрСли процСсс git rebase. Π’ΠΎΡ‚ основныС Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎΠ± описанных ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… страницах:

ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ истории

НСоднократно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Git, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ внСсти исправлСния Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Одно ΠΈΠ· прСимущСств Git Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ позволяСт Π²Π°ΠΌ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ принятиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° самый послСдний ΠΌΠΎΠΌΠ΅Π½Ρ‚. ΠžΠ±Π»Π°ΡΡ‚ΡŒ индСксирования позволяСт Π²Π°ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚ нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ; благодаря ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git stash Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Ρ‚ΠΎ измСнСниями; Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ внСсти измСнСния Π² сдСланныС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ выглядСли ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π’ частности, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², сообщСния ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ… Ρ„Π°ΠΉΠ»Ρ‹, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ вмСстС ΠΈΠ»ΠΈ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° части, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ β€” Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своими Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ со способами Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСх этих Π·Π°Π΄Π°Ρ‡ ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π²Π°ΠΌ Π²ΠΈΠ΄.

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

ИзмСнСниС послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

ИзмСнСниС вашСго послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частоС исправлСниС истории, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. НаиболСС часто с вашим послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π²Π΅ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСланный снимок, Π΄ΠΎΠ±Π°Π²ΠΈΠ², ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΠ² Ρ„Π°ΠΉΠ»Ρ‹.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сообщСниС вашСго послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, это ΠΎΡ‡Π΅Π½ΡŒ просто:

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

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ остороТными, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот ΠΏΡ€ΠΈΡ‘ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ этом измСняСтся SHA-1 ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΠΈ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ rebase β€” Π½Π΅ измСняйтС ваш послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, Ссли Π²Ρ‹ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π² ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π΅Π³ΠΎ содСрТимоС, Ρ‚Π°ΠΊ ΠΈ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Если Π² ΠΊΠΎΠΌΠΌΠΈΡ‚ внСсСны сущСствСнныС измСнСния, Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка слСдуСт ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π΅Π³ΠΎ сообщСниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π»ΠΎ содСрТимоС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли измСнСния Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ (исправлСниС ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚ Π·Π°Π±Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°), Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ сообщСниС Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ; Ρ‡Ρ‚ΠΎΠ±Ρ‹ лишний Ρ€Π°Π· Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² индСкс ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ИзмСнСниС сообщСний Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Напомним, Ρ‡Ρ‚ΠΎ это ΠΊΠΎΠΌΠ°Π½Π΄Π° пСрСбазирования β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, входящий Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ HEAD

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Π² вашСм тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π² нашСм случаС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ порядок. Команда rebase Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдоставит Π²Π°ΠΌ скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Она Π½Π°Ρ‡Π½Π΅Ρ‚ с ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ( HEAD

3 ) ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ измСнСния, внСсённыС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², свСрху Π²Π½ΠΈΠ·. НавСрху отобраТаСтся самый старый ΠΊΠΎΠΌΠΌΠΈΡ‚, Π° Π½Π΅ самый Π½ΠΎΠ²Ρ‹ΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.

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

Когда Π²Ρ‹ сохранитС сообщСниС ΠΈ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚Π΅ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Git пСрСмСстит вас ΠΊ самому Ρ€Π°Π½Π½Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ ΠΈΠ· списка ΠΈ Π²Π΅Ρ€Π½Ρ‘Ρ‚ вас Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ сообщСниСм:

Π­Ρ‚ΠΈ инструкции говорят Π²Π°ΠΌ Π² точности Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° автоматичСски ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ Π΄Π²Π° ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ. Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ pick Π½Π° edit Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… строках, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ эти шаги для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Git Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ, позволяя Π²Π°ΠΌ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅.

УпорядочиваниС ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для измСнСния порядка ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ удалСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Β«Add cat-fileΒ» ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»ΠΈ внСсСны Π΄Π²Π° ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ скрипт пСрСбазирования с Ρ‚Π°ΠΊΠΎΠ³ΠΎ:

ОбъСдинСниС ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rebase Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½. Git добавляСт ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ инструкции Π² сообщСниС скрипта пСрСбазирования:

Если вмСсто Β«pickΒ» ΠΈΠ»ΠΈ Β«editΒ» Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Β«squashΒ», Git ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ измСнСния ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… сообщСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ· этих Ρ‚Ρ€Ρ‘Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ скрипт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Когда Π²Ρ‹ сохранитС скрипт ΠΈ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚Π΅ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Git ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ измСнСния всСх Ρ‚Ρ€Ρ‘Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π²Π΅Ρ€Π½Ρ‘Ρ‚ вас ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²:

ПослС сохранСния сообщСния, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚, содСрТащий измСнСния всСх Ρ‚Ρ€Ρ‘Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΡ… Ρ€Π°Π½Π΅Π΅.

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Git ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ ( a5f4a0d ) ΠΈΠ· скрипта, ΠΈ ваша история ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

И снова, ΠΏΡ€ΠΈ этом измСнились SHA-1 Ρ…Π΅ΡˆΠΈ всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² вашСм спискС, поэтому ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ· этого списка Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π±Ρ‹Π» ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ Π² ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² спискС ( f7f3f6d ) Π½Π΅ измСнился. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Ρ‹Π» Π² спискС пСрСбазирования, ΠΎΠ½ Π±Ρ‹Π» ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ Β«pickΒ» ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ Π΄ΠΎ примСнСния пСрСбазирования, поэтому Git оставил Π΅Π³ΠΎ Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Git создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π²Π»Π΅Ρ‡Ρ‘Ρ‚ Π·Π° собой ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π§Π΅ΠΌ дальшС Π²Ρ‹ Π²Π΅Ρ€Π½Ρ‘Ρ‚Π΅ΡΡŒ Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‚Π΅ΠΌ большС ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² потрСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ мноТСство ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния, особСнно Ссли Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ.

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ инструмСнт: filter-branch

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Установка ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΊΠ°ΠΊ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ систСмы контроля вСрсий ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ смысла (trunk, tags ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅). Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ trunk ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΠΌΠ°Π½Π΄Π° filter-branch ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π² этом:

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ адрСса элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΏΠΎ всСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ ΠΈ установит Π² Π½ΠΈΡ… ваш Π½ΠΎΠ²Ρ‹ΠΉ адрСс. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ содСрТат значСния SHA-1-Ρ…Π΅ΡˆΠ΅ΠΉ ΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, эта ΠΊΠΎΠΌΠ°Π½Π΄Π° измСняСт Ρ…Π΅Ρˆ SHA-1 ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² вашСй истории, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соотвСтствовали адрСсам элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹.

How do you amend a Git commit?

We can all relate with this situation: you’ve just committed changes only to realize you misspelled something in the Git commit message. Or maybe you need to make a change to another file that really should be part of that commit.

Sure, you could let that β€œteh” slide, or just make another commit with your overlooked changes, but c’mon you’re better than that! Thankfully, Git offers a few options for how to undo a Git commit, including how to revert a commit, but we’re going to walk through how to amend a Git commit, first using the GitKraken Git GUI and then using the command line.

Amending your last commit and editing commit messages are quick and easy with GitKraken

How do you amend a commit message in GitKraken?

Editing the message of your most recent commit is insanely simple using GitKraken. After selecting a commit from the central graph, just click the message at the top of the right commit panel to start editing, then click Update message to save your changes.

How do you amend your last commit in GitKraken?

The process of adding new changes to your last commit in GitKraken is extremely easy. No need to remember or run any commands.

How do you amend a Git commit in the command line?

How do you amend a Git commit message in the command line?

The following methods will create a new commit with an updated message that replaces the previous commit. To change a Git commit message in the command line, you will run the following:

But keep in mind, using this method requires editing the commit message in VIM, so you will need to type i to enter INSERT mode to change the message, and then esc to exit INSERT mode, and then :wq to save your changes and quit.

That’s at least four additional steps required to edit a Git commit message in the CLI when compared to GitKraken. But hey, who’s counting. 😉

How do you amend your last commit in the command line?

To amend a commit to only include new changes in the CLI, you will first need to stage any changes from your working directory that you want in the new commit.

To amend a Git commit to include new changes without updating the commit message, you will run:

Add more flexibility to your workflow and make amending Git commits, whether you’re editing a Git commit message or amending your last commit, with the help of the cross-platform GitKraken Git client for Windows, Mac, and Linux.

Learn Git: Commit

The term commit is fundamental to how Git functions as a version control system. It is important to first understand what a commit is before learning how to perform the Git commit command and how to perform other actions related to commits in Git.

What is a Git commit?

In Git, a commit is a snapshot of your repo at a specific point in time.

To help further understand what a Git commit is, we need to review your Working Directory vs your Staging Directory and how files changes are reflected in your Git repository.

Think of your working directory as your β€œin progress” working area; here, created or modified files are not yet reflected in your Git repo. Changes made to files in your working directly only exist locally on your machine.

Git Stage Files

In order to apply changes from your working directory to your Git repository, you must first stage them in your staging directory.

From here, your changes can be saved in your repo by performing a Git commit.

Now, each Git commit will represent a snapshot of your repo at that point in time, and all of your commits will come together to form your repository’s history.

Git Workflow

Traditionally, a Git workflow will involve the following steps:

OK, now that we’ve answered the question of what is a Git commit, let’s dive into how to Git commit using the cross-platform GitKraken Git GUI, and the associated actions you can perform with Git commit commands in the CLI.

How many times do you commit each day in Git? GitKraken will speed up the process by 2.5x 🤯. Don’t believe us? Try it for yourself. ⬇️

How to Git Commit in GitKraken

Let’s review the many actions you can easily perform with your commits with GitKraken, including how to add, amend, delete, and more.

In GitKraken, when you modify, add, delete, or rename any files in your repository, your Work-In-Progress, or WIP, will display at the top of the graph.

How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ How to rename commit in git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ How to rename commit in git. Π€ΠΎΡ‚ΠΎ How to rename commit in git

This is really helpful because it provides you immediate context to the files in your repository; no need to run a command!

Staging Files in GitKraken

How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ How to rename commit in git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ How to rename commit in git. Π€ΠΎΡ‚ΠΎ How to rename commit in git

A benefit offered in GitKraken that is absent from the command line is the ability to only stage individual lines or hunks of a file. You can accomplish this by viewing the file’s diff.

Viewing the File Diff in GitKraken

To view the file’s diff in GitKraken, simply click a file from the right Commit Panel. From here, you can elect to stage or discard individual lines or hunks of code.

Discarding Changes in GitKraken

How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ How to rename commit in git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ How to rename commit in git. Π€ΠΎΡ‚ΠΎ How to rename commit in git

Furthermore, you can discard ALL changes made to all files in your WIP by clicking the trash icon 🗑 at the top left of the Commit Panel.

How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ How to rename commit in git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ How to rename commit in git. Π€ΠΎΡ‚ΠΎ How to rename commit in git

What if you discard something by mistake in GitKraken?

One of the best parts about using a tool like GitKraken to manage your projects is the ability to quickly undo, or revert, an action made by mistake. GitKraken makes it downright magical in just one click.

If you discard a change or file by mistake, simply click the Undo button in the top toolbar to revert the discard.

Adding a Git Commit Message in GitKraken

Revert a Git Commit with GitKraken

Similar to how you can revert a discard you made by mistake, GitKraken makes it quick and easy to undo a Git commit using the magical Undo button.

How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ How to rename commit in git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ How to rename commit in git. Π€ΠΎΡ‚ΠΎ How to rename commit in git

GitTip: Learn more about how to revert a Git commit, including other options for discarding or amending your history.

Amend a Git Commit in GitKraken

Let’s say you’ve made an error in a Git commit messages and need to make a correction. You can amend a commit message for the most recent commit in GitKraken by selecting the commit from the central graph. From here, click on the commit message to start editing the text, then click Update Message to save your changes.

This can be a lifesaver if you realize you’ve made a mistake on your last commit.

Commit 2.5x faster 🏎💨 using GitKraken compared to the command line. Seriously. Test it for yourself. ⬇️

Git Status

If you’re not using the powerful GitKraken Git client to visualize your repo history, you can always run the git status command in the CLI to check which files have been staged and exist in your staging directory.

In this example, after the git status command has been performed, you can see that the trial-activation.md file has been modified, in addition to the other two.

How to Git Commit in the Command Line

In order to commit these changes in the CLI, you will need to stage the changes with the git add command, followed by the name of the file.

How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ How to rename commit in git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ How to rename commit in git. Π€ΠΎΡ‚ΠΎ How to rename commit in git

This will stage the trial-activation.md file. Ah, but you’re not done yet! You still need to save the changes to your repository by performing the git commit command.

How do I add a Git commit message?

How do I amend a Git commit?

Now, if you can see from the example above, there is a typo in the last word. So, how do you make a Git commit message change?

Can I add multiple modified files using the Git commit command?

Ready for an easier way to commit your code changes in Git?

The GitKraken Git GUI will give you more confidence staging, saving, and committing your file changes in Git with its simple user interface and clear organizational structure.

How to rename commit in git

How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ How to rename commit in git. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ How to rename commit in git. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ How to rename commit in git. Π€ΠΎΡ‚ΠΎ How to rename commit in git

git commit creates a commit, which is like a snapshot of your repository. These commits are snapshots of your entire repository at specific times. You should make new commits often, based around logical units of change. Over time, commits should tell a story of the history of your repository and how it came to be the way that it currently is. Commits include lots of metadata in addition to the contents and message, like the author, timestamp, and more.

How Git Commit Works

Commits are the building blocks of «save points» within Git’s version control.

Commits shape history

Commits are lightweight SHA hashes, objects within Git. As long as you’re working with text files, you won’t need to worry about how many files you have, how big they are, or how many commits you make. Git can handle it!

Committing in two phases

How to Use Git Commit

Common usages and options for Git Commit

How to Undo Commits in Git

Sometimes, you may need to change history. You may need to undo a commit. If you find yourself in this situation, there are a few very important things to remember:

What can go wrong while changing history?

In dramatic cases, Git may decide that the histories are too different and the projects are no longer related. This is uncommon, but a big problem.

The most common result is that your git push would return the «deleted» commit to shared history. (First, you would git pull if you were working on the same branch, and then merge, but the results would be the same.) This means that whatever was so important to delete is now back in the repository. A password, token, or large binary file may return without ever alerting you.

git revert is the safest way to change history with Git. Instead of deleting existing commits, git revert looks at the changes introduced in a specific commit, then applies the inverse of those changes in a new commit. It functions as an «undo commit» command, without sacrificing the integrity of your repository’s history. git revert is always the recommended way to change history when it’s possible.

Updating Commits With Git Commit Amend

Examples of Git Commit

Once you’ve staged the files that you want to include in your commit, you’re ready. Whether you commit in a tool like GitHub Desktop, or through your command line, the commit message is important. Commit messages should be short and descriptive of your change. If you are looking through your repository’s history, you’ll be guided by the commit messages, so they should tell a story. Commits in the command line can include the message with the following format:

Commit messages should be present tense and directive, like the following examples:

If you’d like to include more context in your commit messages, you can also include an extended commit message.

Get started with git and GitHub

Review code, manage projects, and build software alongside 40 million developers.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ:

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

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