πŸ” Как ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния Π² Git: самоС простоС руководство

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния Π² Git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git diff. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ вашим Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ состояниСм рСпозитория ΠΈ послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.


git diff
    

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ --staged, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ вашим Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ состояниСм ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ, находящимся Π² индСксС.


git diff --staged
    

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ измСнСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ двумя ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git diff commit1 commit2, Π·Π°ΠΌΠ΅Π½ΠΈΠ² commit1 ΠΈ commit2 Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².


git diff commit1 commit2
    

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

Git - это распрСдСлСнная систСма контроля вСрсий, которая позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ измСнСниями Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния Π² git.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ

Одним ΠΈΠ· способов просмотра ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² git являСтся сравнСниС Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой сохранСнныС состояния вашСго рСпозитория. БущСствуСт нСсколько ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ различия внСсСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

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

git diff HEAD^ HEAD

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° сравниваСт измСнСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ HEAD^ (ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚) ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ HEAD (Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚).

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎ ΠΈΡ… Ρ…ΡΡˆ-значСниям. НапримСр:

git diff abc123 def456

Π­Ρ‚ΠΎ сравниваСт измСнСния ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ с Ρ…ΡΡˆ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ abc123 ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ с Ρ…ΡΡˆ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ def456.

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

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ зафиксированы Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git diff Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

git diff

Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ различия ΠΌΠ΅ΠΆΠ΄Ρƒ вашим Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ ΠΈ послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git diff с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°:

git diff filename

Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ различия ΠΌΠ΅ΠΆΠ΄Ρƒ послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ состояниСм ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git log. Она ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ список всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², упорядочСнных ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

git log

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² спискС Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ Ρ…ΡΡˆ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, имя Π°Π²Ρ‚ΠΎΡ€Π°, Π΄Π°Ρ‚Π° ΠΈ врСмя ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ΠΈ для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ форматирования Π²Ρ‹Π²ΠΎΠ΄Π°. НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄Π° git log --oneline ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС.

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

Git прСдоставляСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы просмотра ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ git diff ΠΈ git log. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ внСсСнныС измСнСния ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ прогрСсс вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

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

Git с нуля.4: ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

#7 Π£Ρ€ΠΎΠΊΠΈ Git+GitHub - ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ

Как ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅ (git diff)

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

πŸ˜ƒ Π›ΡƒΡ‡ΡˆΠΈΠ΅ способы, ΠΊΠ°ΠΊ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ git: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ Ρ‚Ρ€ΡŽΠΊΠΈ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² πŸš€

πŸ”§ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ git: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство с шагами

πŸ” Как ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния Π² Git: самоС простоС руководство

πŸ”—ΠšΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ git ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Intellij: пошаговая инструкция ΠΈ совСты

πŸ”§ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² VS Code: простоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ