πŸ” Как Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ git: простыС совСты ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git commit --amend. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° позволяСт внСсти измСнСния Π² послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

git commit --amend

ПослС Π²Π²ΠΎΠ΄Π° этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Git ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π³Π΄Π΅ Π²Ρ‹ смоТСтС ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git add, ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git commit --amend.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ добавлСния Ρ„Π°ΠΉΠ»Π°:

git add Π½ΠΎΠ²Ρ‹ΠΉ_Ρ„Π°ΠΉΠ».txt

ПослС добавлСния Ρ„Π°ΠΉΠ»ΠΎΠ², Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git commit --amend для сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Git

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

Π’ Git Π΅ΡΡ‚ΡŒ нСсколько способов Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΄Π²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

1. ИспользованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ --amend

Команда git commit --amend позволяСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΌΠΈ измСнСниями. Она создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ замСняСт ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ, содСрТащий исходныС измСнСния ΠΈ всС ваши дополнСния. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½, Ссли Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.

# ДобавляСм Π½ΠΎΠ²Ρ‹Π΅ измСнСния Π² индСкс
git add <Ρ„Π°ΠΉΠ»Ρ‹>

# ДополняСм послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚
git commit --amend

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ откроСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. ПослС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ сохранитС Ρ„Π°ΠΉΠ» ΠΈ Π·Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. Π­Ρ‚ΠΎ создаст Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ, ΠΈ ваша история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°.

2. ИспользованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ --fixup

Команда git commit --fixup <ΠΊΠΎΠΌΠΌΠΈΡ‚> позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит дополнСния ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ измСнСния, связанныС с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ, Π±Π΅Π· Π·Π°ΠΌΠ΅Π½Ρ‹ самого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

# ДобавляСм Π½ΠΎΠ²Ρ‹Π΅ измСнСния Π² индСкс
git add <Ρ„Π°ΠΉΠ»Ρ‹>

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ с дополнСниями
git commit --fixup <ΠΊΠΎΠΌΠΌΠΈΡ‚>

Π—Π΄Π΅ΡΡŒ <ΠΊΠΎΠΌΠΌΠΈΡ‚> - это Ρ…ΡΡˆ ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ дополнСния. Git автоматичСски создаст Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, содСрТащий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эти дополнСния. Π—Π°Ρ‚Π΅ΠΌ, ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rebase, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с исходным ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

РСзюмС

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Π΄Π²Π° способа дополнСния ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² Git:

  • ИспользованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git commit --amend для Π·Π°ΠΌΠ΅Π½Ρ‹ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½ΠΎΠ²Ρ‹ΠΌΠΈ измСнСниями ΠΈ измСнСния коммСнтария.
  • ИспользованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git commit --fixup <ΠΊΠΎΠΌΠΌΠΈΡ‚> для создания ΠΊΠΎΠΌΠΌΠΈΡ‚Π° с дополнСниями ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.

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

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Git: ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ (git commit --amend)

Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² git

2.6 Git - ΠžΡΠ½ΠΎΠ²Ρ‹ - Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”§ Как ΡΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠΎΠ΄ Π² VS Code: Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ ΠΈ сокращСния

πŸ”§ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Π³ΠΈΡ‚Π΅

πŸ” Как Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ git: простыС совСты ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ

πŸ”Ž Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ checkout Π²Π΅Ρ‚ΠΊΠΈ Π² git: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ