Π Π°Π·Π½ΠΎΠ΅

Git список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²: ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Git

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

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Git


Β Β 
Β 
git
VCS

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² β€” ваТная ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ. Π£Π²Ρ‹, Π²Π²ΠΈΠ΄Ρƒ вСтвлСния с этой историСй Π½Π΅ всСгда просто Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ я для этой Ρ†Π΅Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, Π½ΠΎ Π½Π΅ всСгда Π΅ΡΡ‚ΡŒ такая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. Π’Ρ€Π΅ΠΌΠ΅Π½Π°ΠΌΠΈ приходится ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ срСдствами консоли, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
git log. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² чудСсной ΠΊΠ½ΠΈΠ³Π΅
ProGit
.
git log
ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Рассмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΡ… использования.

Π”Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΉ Π²ΠΈΠ΄

git log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² c сокращёнными Ρ…Π΅ΡˆΠ°ΠΌΠΈ, ссылками Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π΄Π°Ρ‚ΠΎΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: синий сокращённый Ρ…Π΅Ρˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, зСлёная Π΄Π°Ρ‚Π°, Π±Π΅Π»Ρ‹Π΅ сообщСниС ΠΈ Π°Π²Ρ‚ΠΎΡ€, ΠΆΡ‘Π»Ρ‚Ρ‹Π΅ ссылки Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚.


git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² c сокращёнными Ρ…Π΅ΡˆΠ°ΠΌΠΈ, ссылками Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΉ Π΄Π°Ρ‚ΠΎΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: синий сокращённый Ρ…Π΅Ρˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, голубая Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ Π΄Π°Ρ‚Π°, зСлёная ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄Π°Ρ‚Π°, ΠΆΡ‘Π»Ρ‚Ρ‹Π΅ ссылки Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки, Π±Π΅Π»Ρ‹Π΅ сообщСниС ΠΈ Π°Π²Ρ‚ΠΎΡ€.


git log --graph --oneline --all

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², отводя ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ строкС Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚.


git log --graph --date-order --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=short

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² c сортировкой ΠΏΠΎ Π΄Π°Ρ‚Π΅, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΉ Π² ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: сокращённый Ρ…Π΅Ρˆ, Π΄Π°Ρ‚Π°, Π°Π²Ρ‚ΠΎΡ€, Π·Π΅Π»Ρ‘Π½Ρ‹Π΅ ссылки Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚, сообщСниС.


Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ Π²ΠΈΠ΄

Π’Ρ‹Π²ΠΎΠ΄ списка ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.


Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ diff для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ.


Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ статистику ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ.


Pro Git: ΠžΡΠ½ΠΎΠ²Ρ‹ Git — ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

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

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° я создал нСбольшой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΉ Git. ΠšΡƒΠ΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΄Π²Π° Ρ„Π°ΠΉΠ»ΠΈΠΊΠ°, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ» Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π°. ΠŸΠΎΡ‚ΠΎΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» ΠΈ снова Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ» измСнСния.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния git log Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π²ΠΈΠ΄ΠΈΠΌ это:

Π’ΠΈΠ΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ сдСлано 5 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², git log Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² созданных Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ хронологичСском порядкС. Π’ΠΎ Π΅ΡΡ‚ΡŒ самыС послСдниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ. Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ вмСстС с Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммой SHA-1, ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€Π°, Π΄Π°Ρ‚ΠΎΠΉ создания ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.

БущСствуСт ΠΏΡ€Π΅Π²Π΅Π»ΠΈΠΊΠΎΠ΅ мноТСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log ΠΈ ΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ нСсколько Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто примСняСмых.

Один ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² β€” это -p, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π΅Π»ΡŒΡ‚Ρƒ (Ρ€Π°Π·Π½ΠΈΡ†Ρƒ/diff), ΠΏΡ€ΠΈΠ²Π½Π΅ΡΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ -2, Ρ‡Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ Π²Ρ‹Π²ΠΎΠ΄ Π΄ΠΎ 2-Ρ… послСдних записСй:

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ плюс внСсённыС измСнСния, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ нСпосрСдствСнно послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для инспСкций ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходило Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅Π³ΠΎΠΉ.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅ΠΉ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ внСсённыС измСнСния Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ слов, Π° Π½Π΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ строк. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π΅Π»ΡŒΡ‚Ρƒ ΠΏΠΎ словам вмСсто ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Π΄Π΅Π»ΡŒΡ‚Ρ‹ ΠΏΠΎ строкам, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log -p ΠΎΠΏΡ†ΠΈΡŽ —word-diff. Π”Π΅Π»ΡŒΡ‚Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ слов практичСски бСсполСзны ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄Ρƒ ΠΎΡ‡Π΅Π½ΡŒ кстати ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ тСкстом, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΠΊΠ½ΠΈΠ³Π° ΠΈΠ»ΠΈ диссСртация. Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Β  Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² этом Π²Ρ‹Π²ΠΎΠ΄Π΅ Π½Π΅Ρ‚ Π½ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π½ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… строк, ΠΊΠ°ΠΊ для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ diff’Π°. ВмСсто этого измСнСния ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ слово Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² {+ +}, Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ΅ Π² [- -].

Π‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git log Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΡΡƒΠΌΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ статистику ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ —stat:

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π»ΠΎΠ³Π°, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ —stat Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ список ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², количСство ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ количСство Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… строк Π² этих Ρ„Π°ΠΉΠ»Π°Ρ…. Он Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡΠ²ΠΎΠ΄Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΊΠΎΠ½Ρ†Π΅.

Ρ€ΡƒΠ³ΠΎΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” это —pretty. Он позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Π»ΠΎΠ³Π°. Для вас доступны нСсколько прСдустановлСнных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ oneline Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² ΠΎΠ΄Π½Ρƒ строку, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ссли Π²Ρ‹ просматриваСтС большоС количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ short, full, ΠΈ fuller, практичСски Π½Π΅ мСняя Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ мСньшС ΠΈΠ»ΠΈ большС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ соотвСтствСнно:

НаиболСС интСрСсный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” это format, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Π»ΠΎΠ³Π°. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаётС ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹ для автоматичСского Ρ€Π°Π·Π±ΠΎΡ€Π° (парсинга) β€” ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ явно Π·Π°Π΄Π°Ρ‘Ρ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ обновлСниях Git’Π°:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
%HΠ₯Сш ΠΊΠΎΠΌΠΌΠΈΡ‚Π°
%hΠ‘ΠΎΠΊΡ€Π°Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ Ρ…Π΅Ρˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°
%TΠ₯Сш Π΄Π΅Ρ€Π΅Π²Π°
%tΠ‘ΠΎΠΊΡ€Π°Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ Ρ…Π΅Ρˆ Π΄Π΅Ρ€Π΅Π²Π°
%PΠ₯Сши Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
%pΠ‘ΠΎΠΊΡ€Π°Ρ‰Ρ‘Π½Π½Ρ‹Π΅ Ρ…Π΅ΡˆΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
%anИмя Π°Π²Ρ‚ΠΎΡ€Π°
%aeЭлСктронная ΠΏΠΎΡ‡Ρ‚Π° Π°Π²Ρ‚ΠΎΡ€Π°
%adΠ”Π°Ρ‚Π° Π°Π²Ρ‚ΠΎΡ€Π° (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ соотвСтствуСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ --date=)
%arΠ”Π°Ρ‚Π° Π°Π²Ρ‚ΠΎΡ€Π°, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ (ΠΏΡ€. «2 мСс. Π½Π°Π·Π°Π΄»)
%cnИмя ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°
%ceЭлСктронная ΠΏΠΎΡ‡Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°
%cdΠ”Π°Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°
%crΠ”Π°Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ
%sΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Вас ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ, Π² Ρ‡Ρ‘ΠΌ ΠΆΠ΅ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€ΠΎΠΌ. Автор β€” это Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сдСлавший Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€ β€” это Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ послСдним ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» эту Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ послали ΠΏΠ°Ρ‚Ρ‡ (Π·Π°ΠΏΠ»Π°Ρ‚ΠΊΡƒ) Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» этот ΠΏΠ°Ρ‚Ρ‡, Π²Ρ‹ ΠΎΠ±Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°Π±Ρ‹Ρ‚Ρ‹ β€” Π²Ρ‹ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ oneline ΠΈ format Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ log β€” —graph. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ добавляСт милСнький ASCII-Π³Ρ€Π°Ρ„, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ ΠΈ слияний.

ΠœΡ‹ рассмотрСли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самыС простыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ форматирования Π²Ρ‹Π²ΠΎΠ΄Π° для git log β€” ΠΈΡ… Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. Π’Π°Π±Π»ΠΈΡ†Π° Π½ΠΈΠΆΠ΅ содСрТит ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ рассмотрСнныС Π½Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‚Π°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ вмСстС с описаниСм Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ log.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
-pДля ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π΅Π»ΡŒΡ‚Ρƒ внСсённых ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
--word-diffΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ измСнСния Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ слов.
--statДля ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ статистику ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ.
--shortstatΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строку changed/insertions/deletions ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄Π° с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ --stat.
--name-onlyΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ список ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² послС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.
--name-statusΠ’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ список ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² вмСстС с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ/ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ.
--abbrev-commitΠ’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ нСсколько символов ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы SHA-1 вмСсто всСх 40.
--relative-dateΠ’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρƒ Π² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «2 weeks ago») вмСсто ΠΏΠΎΠ»Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹.
--graphΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ASCII-Π³Ρ€Π°Ρ„ истории Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ ΠΈ слияний рядом с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π»ΠΎΠ³Π°.
--prettyΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: oneline, short, full, fuller ΠΈ format (Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ свой собствСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚).

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ log

ΠšΡ€ΠΎΠΌΠ΅ ΠΎΠΏΡ†ΠΈΠΉ для форматирования Π²Ρ‹Π²ΠΎΠ΄Π°, git log ΠΈΠΌΠ΅Π΅Ρ‚ ряд ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. На самом Π΄Π΅Π»Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ -<n>, Π³Π΄Π΅ n это количСство ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π²Π°ΠΌ вряд Π»ΠΈ придётся часто этим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Git Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°Π½Π°Π» (pipe) отправляСт вСсь Π²Ρ‹Π²ΠΎΠ΄ Π½Π° pager, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ всСгда Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ страницу.

А Π²ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ —since ΠΈ —until, вСсьма ΠΏΠΎΠ»Π΅Π·Π½Ρ‹. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π΄Π°Ρ‘Ρ‚ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², сдСланных Π·Π° послСдниС Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ:

$ git log —since=2.weeks

Вакая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с мноТСством Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² β€” Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ (β€œ2008-01-15”) ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ β€œ2 years 1 day 3 minutes ago”.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ поиска. ΠžΠΏΡ†ΠΈΡ —author позволяСт Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π°Π²Ρ‚ΠΎΡ€Ρƒ, опция —grep позволяСт ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словам Π² сообщСнии. (Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΈ ΠΎΠΏΡ†ΠΈΡŽ author, ΠΈ ΠΎΠΏΡ†ΠΈΡŽ grep, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π˜Π›Π˜ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ И Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ, слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ —all-match.)

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ это опция –S, которая ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π³Π΄Π΅ эта строка Π±Ρ‹Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π°.

ПослСдняя Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ полСзная опция-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для git log β€” это ΠΏΡƒΡ‚ΡŒ. Π£ΠΊΠ°Π·Π°Π² имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ log Ρ‚Π΅ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вносят измСнСния Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π­Ρ‚Π° опция всСгда указываСтся послСднСй ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдваряСтся двумя минусами для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (—), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ. Для Ρ„Π°ΠΉΠ»Π° Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Git ΠΌΠΎΠΆΠ½ΠΎ просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ имя.

Бписок часто употрСбляСмых ΠΎΠΏΡ†ΠΈΠΉ.

ΠžΠΏΡ†ΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
-(n)ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ послСдниС n ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
--since, --afterΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСланы послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹.
--until, --beforeΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСланы Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹.
--authorΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π°Π²Ρ‚ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соотвСтствуСт ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строкС.
--committerΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соотвСтствуСт ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строкС.
--grepΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ содСрТат ΠΈΡΠΊΠΎΠΌΡƒΡŽ строку.
-SΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСнялась искомая строка.

ИспользованиС графичСского интСрфСйса для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ истории

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ графичСский инструмСнт для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΠ΅ΠΌΡƒΡŽ вмСстС с Git’ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ gitk, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° Tcl/Tk. Π’ сущности gitk β€” это наглядный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ git log, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ git log.

Π’Π°ΠΊ ΠΆΠ΅ сущСствуСт мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… графичСских ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git, Π½ΠΎ ΠΎ Π½ΠΈΡ… ΠΏΠΎΠ·ΠΆΠ΅.

Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 6. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ

Рассмотрим инструмСнт систСмы контроля вСрсий git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π² соотвСтствии с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.Β Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс с использованиСм git,Β Π² ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (ΠΏΠΎΠΊΠ° Π½Π΅ рассматриваСм Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ):

  1. ВнСсСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.
  2. ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² stage.
  3. Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π° Π±Π°Π·Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π»Π΅ΠΆΠΈΡ‚ Π² stage, Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ накопится большС количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ довольно часто Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ.Β Git прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ просмотра ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ. Для дСмонстрации возмоТностСй git, создадим Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» – README.md, ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅.

Для просмотра ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ сдСланным Π²Π°ΠΌΠΈ (ΠΈΠ»ΠΈ вашими ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ) ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git log.

> git log
commit a98cce47b59256d00a853c421af4f7b9f0dc0a29
Author: Writer <writer@somecompany. com>
Date:   Mon Mar 5 23:10:51 2018 +0500

    [create repository]

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π±Ρ‹Π» ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ с сообщСниСм β€œ[create repository]”, этот ΠΊΠΎΠΌΠΌΠΈΡ‚ сдСлал ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Writer, Π΅Π³ΠΎ email: [email protected], ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° a98cce47b59256d00a853c421af4f7b9f0dc0a29, ΠΈ Π΄Π°Ρ‚Π° ΠΈ врСмя ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:Β 5 ΠΌΠ°Ρ€Ρ‚Π° 2018 Π² 23:10:51.

ВнСсСм Π΅Ρ‰Π΅ нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² наш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.Β Π”ΠΎΠ±Π°Π²ΠΈΠΌ тСкст Π² Ρ„Π°ΠΉΠ» README.md.

> echo "Project 51" > README.md

ЗафиксируСм эти измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

> git add .
> git commit -m "[add]: caption into README file"

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„Π°ΠΉΠ» main.c ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π³ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

> touch main.c
> git add .
> git commit -m "[create]: main file of program"

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² нашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ это.

> git log
commit 2b826bb4929fb1c8166ef05b540ce2cc68f3ebb2
Author: Writer <[email protected]>
Date:   Mon Mar 5 23:17:08 2018 +0500

    [create]: main file of program

commit bc067c88c427dbedbb02817f9ae25241dcae4d07
Author: Writer <[email protected]>
Date:   Mon Mar 5 23:15:12 2018 +0500

    [add]: caption into README file

commit a98cce47b59256d00a853c421af4f7b9f0dc0a29
Author: Writer <[email protected]>
Date:   Mon Mar 5 23:10:51 2018 +0500

    [create repository]

ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π½ΠΎΠ²Ρ‹Ρ… ΠΊ старым.Β Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π΅Ρ‰Ρ‘ нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

> touch main.h
> git add .
> git commit -m "[create]: header for main"
> touch .gitignore
> git add .
> git commit -m "[create]: git ignore file"
> echo "*.tmp" > .gitignore
> git add .
> git commit -m "[add] ignore .tmp files">

Π‘Π½ΠΎΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ список всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

> git log
commit cf3d9d8f7b283267a085986e85cc8f152cca420d
Author: Writer <[email protected]>
Date:   Mon Mar 5 23:21:59 2018 +0500

    [add] ignore .tmp files

commit a7b88eed6110b6ebb1fc4d96f4399e4cbb8339e7
Author: Writer <[email protected]>
Date:   Mon Mar 5 23:21:11 2018 +0500

    [create]: git ignore file

commit c185b80ca916af7d6f068450f6cafb073d955c40
Author: Writer <[email protected]>
Date:   Mon Mar 5 23:20:26 2018 +0500

    [create]: header for main

commit 2b826bb4929fb1c8166ef05b540ce2cc68f3ebb2
Author: Writer <[email protected]>
Date:   Mon Mar 5 23:17:08 2018 +0500

    [create]: main file of program

commit bc067c88c427dbedbb02817f9ae25241dcae4d07
Author: Writer <[email protected]>
Date:   Mon Mar 5 23:15:12 2018 +0500

    [add]: caption into README file

commit a98cce47b59256d00a853c421af4f7b9f0dc0a29
Author: Writer <writer@somecompany. com>
Date:   Mon Mar 5 23:10:51 2018 +0500

    [create repository]

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΡƒΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½ΠΈΡ… Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹Π΄Π°Π΅Ρ‚ git log ΡƒΠΆΠ΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ –oneline, ΠΏΡ€ΠΈ этом Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

> git log --oneline
cf3d9d8 [add] ignore .tmp files
a7b88ee [create]: git ignore file
c185b80 [create]: header for main
2b826bb [create]: main file of program
bc067c8 [add]: caption into README file
a98cce4 [create repository]

Π’ Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ ΡƒΠΆΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ n послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‚ΠΎ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² послС ΠΊΠ»ΡŽΡ‡Π° -n. Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ‚Ρ€ΠΈ послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

> git log -n 3 --oneline
cf3d9d8 [add] ignore .tmp files
a7b88ee [create]: git ignore file
c185b80 [create]: header for main

Для Π²Ρ‹Π²ΠΎΠ΄Π° списка ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², начиная с ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ –since=”<date> <time>”.  НапримСр, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, сдСланныС послС 5-Π³ΠΎ ΠΌΠ°Ρ€Ρ‚Π° 2018 Π³ΠΎΠ΄Π° 23:21.

> git log --since="2018-03-05 23:21:00" --oneline
cf3d9d8 [add] ignore .tmp files
a7b88ee [create]: git ignore file

Для Π²Ρ‹Π²ΠΎΠ΄Π° списка ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π΄ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Π°Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡ –until. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², сдСланных Π΄ΠΎ 5-Π³ΠΎ ΠΌΠ°Ρ€Ρ‚Π° 2018 Π³ΠΎΠ΄Π° 23:21.

> git log --until="2018-03-05 23:21:00" --oneline
c185b80 [create]: header for main
2b826bb [create]: main file of program
bc067c8 [add]: caption into README file
a98cce4 [create repository]

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ являСтся –author, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт вывСсти список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², сдСланных ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ.

> git log --author="Writer" --oneline
cf3d9d8 [add] ignore .tmp files
a7b88ee [create]: git ignore file
c185b80 [create]: header for main
2b826bb [create]: main file of program
bc067c8 [add]: caption into README file
a98cce4 [create repository]

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ Π²Ρ‹Π²Π΅Π»ΠΈ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ сдСланныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Writer. Π’.ΠΊ. Π² нашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ сдСланы ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΡ€Π°, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π»ΡŽΠ±Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠΌΠ΅Π½Π°Ρ…, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… парамСтру –author, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ пустой список.Β 

И, напослСдок, рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ инструмСнт. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Linux, Ρ‚ΠΎ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΊΠ°ΠΊ grep – это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, которая, Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌ Π΅ΠΉ тСкстС, Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ вхоТдСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ.Β Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… встрСчаСтся слово create.

> git log --grep="create" --oneline
a7b88ee [create]: git ignore file
c185b80 [create]: header for main
2b826bb [create]: main file of program
a98cce4 [create repository]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ со словом add.

> git log --grep="add" --oneline
cf3d9d8 [add] ignore .tmp files
bc067c8 [add]: caption into README file

Для Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с возмоТностями ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ grep. На этом ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ ΠΎΠ±Π·ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log.

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ курс ΠΏΠΎ gitΒ  Π΄Π΅Π»Π°ΡŽΡ‚ рСбята ΠΈΠ· GeekBrains, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ β€œΠšΡƒΡ€ΡΡ‹β€ курс β€œGit. Быстрый старт”, он бСсплатный!

<<< Π§Π°ΡΡ‚ΡŒ 5. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚Β Π§Π°ΡΡ‚ΡŒ 7. ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ HEAD ΠΈ tree-ish>>>

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² | Pro Git

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

Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ simplegit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ для дСмонстраций. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:


git clone git://github.com/schacon/simplegit-progit.git

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния git log Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:


$ git log
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon
Date: Mon Mar 17 21:52:11 2008 -0700

changed the version number

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon
Date: Sat Mar 15 16:40:33 2008 -0700

removed unnecessary test code

commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon
Date: Sat Mar 15 10:31:28 2008 -0700

first commit

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², git log Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² созданных Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ хронологичСском порядкС. Π’ΠΎ Π΅ΡΡ‚ΡŒ самыС послСдниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ. Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ вмСстС с Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммой SHA-1, ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ Π°Π²Ρ‚ΠΎΡ€Π°, Π΄Π°Ρ‚ΠΎΠΉ создания ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ.

БущСствуСт ΠΏΡ€Π΅Π²Π΅Π»ΠΈΠΊΠΎΠ΅ мноТСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log ΠΈ ΠΈΡ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ нСсколько Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто примСняСмых.

Один ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² β€” это -p, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π΅Π»ΡŒΡ‚Ρƒ(Ρ€Π°Π·Π½ΠΈΡ†Ρƒ/diff) ΠΏΡ€ΠΈΠ²Π½Π΅ΡΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ -2, Ρ‡Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ Π²Ρ‹Π²ΠΎΠ΄ Π΄ΠΎ 2-Ρ… послСдних записСй:


$ git log -p -2
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon
Date: Mon Mar 17 21:52:11 2008 -0700

changed the version number

diff —git a/Rakefile b/Rakefile
index a874b73..8f94139 100644
— a/Rakefile
+++ b/Rakefile
@@ -5,7 +5,7 @@ require ‘rake/gempackagetask’
spec = Gem::Specification. new do |s|
— s.version = «0.1.0»
+ s.version = «0.1.1»
s.author = «Scott Chacon»

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon
Date: Sat Mar 15 16:40:33 2008 -0700

removed unnecessary test code

diff —git a/lib/simplegit.rb b/lib/simplegit.rb
index a0a60ae..47c6340 100644
— a/lib/simplegit.rb
+++ b/lib/simplegit.rb
@@ -18,8 +18,3 @@ class SimpleGit
end

end

-if $0 == __FILE__
— git = SimpleGit.new
— puts git.show
-end
\ No newline at end of file

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ плюс внСсённыС измСнСния, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ нСпосрСдствСнно послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для инспСкций ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ происходило Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅Π³ΠΎΠΉ. Π‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git log Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΡΡƒΠΌΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ статистику ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --stat:


$ git log --stat
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon
Date: Mon Mar 17 21:52:11 2008 -0700

changed the version number

Rakefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon
Date: Sat Mar 15 16:40:33 2008 -0700

removed unnecessary test code

lib/simplegit. rb | 5 ——
1 files changed, 0 insertions(+), 5 deletions(-)

commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon
Date: Sat Mar 15 10:31:28 2008 -0700

first commit

README | 6 ++++++
Rakefile | 23 +++++++++++++++++++++++
lib/simplegit.rb | 25 +++++++++++++++++++++++++
3 files changed, 54 insertions(+), 0 deletions(-)

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π»ΠΎΠ³Π°, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --stat Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², количСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ количСство Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… строк Π² этих Ρ„Π°ΠΉΠ»Π°Ρ…. Он Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡΠ²ΠΎΠ΄Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΊΠΎΠ½Ρ†Π΅. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” это --pretty. Он позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Π»ΠΎΠ³Π°. Для вас доступны нСсколько прСдустановлСнных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ oneline Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² ΠΎΠ΄Π½Ρƒ строку, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ссли Π²Ρ‹ просматриваСтС большоС количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ short, full, ΠΈ fuller практичСски Π½Π΅ мСняя Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ мСньшС ΠΈΠ»ΠΈ большС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ соотвСтствСнно:


$ git log --pretty=oneline
ca82a6dff817ec66f44342007202690a93763949 changed the version number
085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 removed unnecessary test code
a11bef06a3f659402fe7563abf99ad00de2209e6 first commit

НаиболСС интСрСсный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” это format, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Π»ΠΎΠ³Π°. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаСтС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ для автоматичСского Ρ€Π°Π·Π±ΠΎΡ€Π°(парсинга) β€” ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ явно Π·Π°Π΄Π°Π΅Ρ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ обновлСниях Git:


$ git log --pretty=format:"%h - %an, %ar : %s"
ca82a6d - Scott Chacon, 11 months ago : changed the version number
085bb3b - Scott Chacon, 11 months ago : removed unnecessary test code
a11bef0 - Scott Chacon, 11 months ago : first commit

Π’Π°Π±Π»ΠΈΡ†Π° 2-1 содСрТит список Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.


ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
`%H` Π₯Сш ΠΊΠΎΠΌΠΌΠΈΡ‚Π°
`%h` Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Ρ…Π΅Ρˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°
`%T` Π₯Сш Π΄Π΅Ρ€Π΅Π²Π°
`%t` Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Ρ…Π΅Ρˆ Π΄Π΅Ρ€Π΅Π²Π°
`%P` Π₯Сши Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
`%p` Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹Π΅ Ρ…Π΅ΡˆΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
`%an` Имя Π°Π²Ρ‚ΠΎΡ€Π°
`%ae` ЭлСктронная ΠΏΠΎΡ‡Ρ‚Π° Π°Π²Ρ‚ΠΎΡ€Π°
`%ad` Π”Π°Ρ‚Π° Π°Π²Ρ‚ΠΎΡ€Π° (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ соотвСтствуСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ --date= )
`%ar` Π”Π°Ρ‚Π° Π°Π²Ρ‚ΠΎΡ€Π°, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ (ΠΏΡ€. "2 мСс. Π½Π°Π·Π°Π΄")
`%cn` Имя ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°
`%ce` ЭлСктронная ΠΏΠΎΡ‡Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°
`%cd` Π”Π°Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°
`%cr` Π”Π°Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ
`%s` ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Вас ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‡Ρ‘ΠΌ ΠΆΠ΅ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€ΠΎΠΌ. Автор β€” это Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сдСлавший Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€ β€” это Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ послСдним ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» эту Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ послали ΠΏΠ°Ρ‚Ρ‡(Π·Π°ΠΏΠ»Π°Ρ‚ΠΊΡƒ) Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» этот ΠΏΠ°Ρ‚Ρ‡, Π²Ρ‹ ΠΎΠ±Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°Π±Ρ‹Ρ‚Ρ‹ β€” Π²Ρ‹ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€. ΠœΡ‹ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим это Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² Π“Π»Π°Π²Π΅ РаспрСдСлённый Git.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ oneline ΠΈ format Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ log β€” --graph. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ добавляСт милСнький ASCII Π³Ρ€Π°Ρ„ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ ΠΈ слияний. Один ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ для нашСй ΠΊΠΎΠΏΠΈΠΈ рСпозитория ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Grit:


$ git log --pretty=format:"%h %s" --graph
* 2d3acf9 ignore errors from SIGCHLD on trap
* 5e3ee11 Merge branch 'master' of git://github.com/dustin/grit
|\
| * 420eac9 Added a method for getting the current branch.
* | 30e367c timeout code and tests
* | 5a09431 add timeout protection to grit
* | e1193f8 support for heads with slashes in them
|/
* d6016bc require time for xmlschema
* 11d191e Merge branch 'defunkt' into local

ΠœΡ‹ рассмотрСли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ самыС простыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ форматирования Π²Ρ‹Π²ΠΎΠ΄Π° для git log β€” ΠΈΡ… Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. ΠΠΈΠΆΠ΅ΡΠ»ΡƒΠ΄ΡƒΡŽΡ‰Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° содСрТит ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΆΠ΅ рассмотрСнныС Π½Π°ΠΌΠΈ Ρ‚Π°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‰ΠΈΠ΅ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, вмСстС с описаниСм эффСкта ΠΎΡ‚ ΠΈΡ… использования.


ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ОписаниС
`-p` Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ°Ρ‚Ρ‡ (Π·Π°ΠΏΠ»Π°Ρ‚ΠΊΡƒ/diff) внСсСнный ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.
`--stat` Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ статистику ΠΏΠΎ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.
`--shortstat` ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строку с changed/insertions/deletions ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ `--stat`.
`--name-only` Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.
`--name-status` Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список Ρ„Π°ΠΉΠ»ΠΎΠ² вмСстС с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ/ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ.
`--abbrev-commit` Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ нСсколько символов ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы SHA-1 вмСсто всСх 40.
`--relative-date` Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Ρ‚Ρƒ Π² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€œ2 Π½Π΅Π΄Π΅Π»ΠΈ назад”) вмСсто использования ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π°Ρ‚Ρ‹.
`--graph` Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ASCII Π³Ρ€Π°Ρ„ истории Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΉ ΠΈ слияний рядом с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π»ΠΎΠ³Π°.
`--pretty` Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ oneline, short, full, fuller, ΠΈ format (Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ свой собствСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚).

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ log

ΠšΡ€ΠΎΠΌΠ΅ ΠΎΠΏΡ†ΠΈΠΉ для форматирования Π²Ρ‹Π²ΠΎΠ΄Π°, git log ΠΈΠΌΠ΅Π΅Ρ‚ ряд ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. На самом Π΄Π΅Π»Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ -, Π³Π΄Π΅ n это количСство ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π²Π°ΠΌ вряд Π»ΠΈ придётся часто этим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Git Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°Π½Π°Π» (pipe) отправляСт вСсь Π²Ρ‹Π²ΠΎΠ΄ Π½Π° pager, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ всСгда Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ страницу.

А Π²ΠΎΡ‚, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ --since ΠΈ --until вСсьма ΠΏΠΎΠ»Π΅Π·Π½Ρ‹. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π΄Π°Ρ‘Ρ‚ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² сдСланых Π·Π° послСдниС Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ:


$ git log --since=2.weeks

Вакая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с мноТСством Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² β€” Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ (β€œ2008-01-15”) ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ β€œ2 years 1 day 3 minutes ago”.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ поиска. ΠžΠΏΡ†ΠΈΡ --author позволяСт Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π°Π²Ρ‚ΠΎΡ€Ρƒ, опция --grep позволяСт ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словам Π² сообщСнии. (Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΈ ΠΎΠΏΡ†ΠΈΡŽ author, ΠΈ ΠΎΠΏΡ†ΠΈΡŽ grep, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π˜Π›Π˜ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ И Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ, слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ --all-match.)

ПослСдняя Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ полСзная опция-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для git log это ΠΏΡƒΡ‚ΡŒ. Π£ΠΊΠ°Π·Π°Π² имя Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ log Ρ‚Π΅ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вносят измСнСния Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π­Ρ‚Π° опция всСгда указываСтся послСднСй ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдваряСтся двумя минусами (--), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ.

Π’ Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ для справки ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ список часто употрСбляСмых ΠΎΠΏΡ†ΠΈΠΉ.


ΠžΠΏΡ†ΠΈΡ ОписаниС
`-(n)` ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ послСдниС n ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
`--since`, `--after` ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСланы послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹.
`--until`, `--before` ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСланы Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹.
Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π° располагаСтся история ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² вмСстС с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ Π³Ρ€Π°Ρ„ΠΎΠΌ наслСдников. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Ρ‰ΠΈΠΊ Π΄Π΅Π»ΡŒΡ‚ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΠΎΠΊΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ измСнСния сдСланныС Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ. Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΌΡ‹ΡˆΡŒΡŽ.`--author` ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π°Π²Ρ‚ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соотвСтствуСт ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строкС.
`--committer` ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соотвСтствуСт ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строкС.

НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΠ· истории Git Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вносят измСнСния Π² тСстовыС Ρ„Π°ΠΉΠ»Ρ‹, Π±Ρ‹Π»ΠΈ сдСланы Junio Hamano, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ слияниями ΠΈ Π±Ρ‹Π»ΠΈ сдСланы Π² октябрС 2008Π³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ:


$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \
--before="2008-11-01" --no-merges -- t/
5610e3b - Fix testcase failure when extended attribute
acd3b9e - Enhance hold_lock_file_for_{update,append}()
f563754 - demonstrate breakage of detached checkout wi
d1a43f2 - reset --hard/read-tree --reset -u: remove un
51a94af - Fix "checkout --track -b newbranch" on detac
b0ad11e - pull: allow "git pull origin $something:$cur

Из ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 20 000 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² истории Git, данная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π±Ρ€Π°Π»Π° всСго 6 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ критСриям.

ИспользованиС графичСского интСрфСйса для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ истории

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ графичСский инструмСнт для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΠ΅ΠΌΡƒΡŽ вмСстС с Git ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ gitk, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π½Π° Tcl/Tk. Π’ сущности gitk β€” это наглядный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ git log, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π΅ ΠΆΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ git log. Если Π½Π°Π±Ρ€Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС gitk Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Рис. 2-2.

Рисунок 2-2. Визуализация истории с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ gitk

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

Pro Git

CистСма контроля вСрсий Git: Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°

Git — это популярная систСма контроля вСрсий. \*\| master’ | xargs -n 1 git branch -d

git branch -vv
git branch -u origin/mybranch
git branch -d <local_branchname>
git push origin --delete <remote_branchname>

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git push origin :<remote_branchname>
git tag -d <tag-name>
git push origin :refs/tags/<tag-name>
git checkout -- <file_name>
git revert <commit-ish>
git reset <commit-ish>
git commit -v --amend
git cherry -v master
git commit --amend --author='Author Name <[email protected]>'
git commit --amend --reset-author --no-edit
git remote set-url origin <URL>
git remote

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git remote show
git branch -a
git branch -r
git add -p
curl http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/. git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc
git log --no-merges --raw --since='2 weeks ago'

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git whatchanged --since='2 weeks ago'
git log --no-merges --stat --reverse master..
git checkout <branch-name> && git cherry-pick <commit-ish>
git branch -a --contains <commit-ish>

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git branch --contains <commit-ish>
git config --global alias.<handle> <command> 
git config --global alias.st status
git stash

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git stash save
git stash -k

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git stash --keep-index
git stash save --keep-index
git stash -u

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git stash save -u
git stash save --include-untracked
git stash save <message>
git stash -a

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git stash --all
git stash save --all
git stash list
git stash apply <stash@{n}>
git checkout <stash@{n}> -- <file_path>

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git checkout stash@{0} -- <file_path>
git ls-files -t
git ls-files --others
git ls-files --others -i --exclude-standard
git worktree add -b <branch-name> <path> <start-point>
git rm --cached <file_path>

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git rm --cached -r <directory_path>
git clean -n
git clean -f
git clean -f -d
git submodule foreach git pull

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git submodule update --init --recursive
git submodule update --remote
git cherry -v master

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git cherry -v master <branch-to-be-merged>
git branch -m <new-branch-name>

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git branch -m [<old-branch-name>] <new-branch-name>
git archive master --format=zip --output=master. zip
git add --all && git commit --amend --no-edit
git fetch -p

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git remote prune origin
git log --pretty=oneline --graph --decorate --all

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

gitk --all
git subtree push --prefix subfolder_name origin gh-pages
git subtree add --prefix=<directory_name>/<project_name> --squash [email protected]:<username>/<project_name>.git master
git subtree pull --prefix=<directory_name>/<project_name> --squash [email protected]:<username>/<project_name>.git master
git bundle create <file> <branch-name>
git clone repo.bundle <repo-dir> -b <branch-name>
git rev-parse --abbrev-ref HEAD
git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog
git fetch origin pull/<id>/head:<branch-name>

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git pull origin pull/<id>/head:<branch-name>
git describe --tags --abbrev=0
git diff --word-diff
git update-index --assume-unchanged <file_name>
git update-index --no-assume-unchanged <file_name>
git clean -X -f
git checkout <deleting_commit>^ -- <file_path>
git checkout <commit-ish> -- <file_path>
git config --list
git config --global core. editor '$EDITOR'
git config --global help.autocorrect 1
git name-rev --name-only <SHA-1>
git commit --fixup <SHA-1>
git commit --only <file_path>
git check-ignore *
git status --ignored
git log -<n>

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git log -n <n>
git diff --name-only | uniq | xargs $EDITOR
git instaweb [--local] [--httpd=<httpd>] [--port=<port>] [--browser=<browser>]
git log --show-signature
git config --global --unset <entry-name>
git checkout --orphan <branch_name>
git show <branch_name>:<file_name>
git rebase --interactive HEAD~2
git checkout master && git branch --no-merged
git bisect start                    
git bisect bad                      
git bisect good v2.6.13-rc2         
git bisect bad                    
git bisect good                     
git bisect reset
git log --follow -p -- <file_path>
git clone -b <branch-name> --single-branch https://github. com/user/repo.git
git checkout -b <branch-name>

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git branch <branch-name> && git checkout <branch-name>
git config --global color.ui false
git config --global <specific command e.g branch, diff> <true, false or always>
git clone https://github.com/user/repo.git --depth 1
git log --all --grep='<given-text>'
git log master..<branch-name> --oneline | tail -1
git shortlog
git rev-list --count <branch-name>
git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'
git notes add -m 'Note on the previous commit....'
git log --show-notes='*'
git --git-dir=<source-dir>/.git format-patch -k -1 --stdout <SHA1> | git am -3 -k
git log --branches --not --remotes

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git log @{u}. alias\.//g'

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°:

git config -l | grep alias | cut -d '.' -f 2
git push -u origin <branch_name>

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Git Concepts I Wish I Knew Years AgoΒ».

Бамая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ тСхнология это вовсС Π½Π΅ JavaScript.

Π­Ρ‚ΠΎ Π½Π΅ Python ΠΈ Π½Π΅ HTML.

Π­Ρ‚Ρƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Π΄Π°ΠΆΠ΅ практичСски Π½Π΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ Π½Π° собСсСдованиях ΠΈΠ»ΠΈ Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡΡ… ΠΎ вакансиях.

Π― Π³ΠΎΠ²ΠΎΡ€ΡŽ ΠΎ Git ΠΈ систСмах контроля вСрсий Π² Ρ†Π΅Π»ΠΎΠΌ.

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

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

Если Ρƒ вас Π½Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ понимания основных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ Git, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ вашим Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ, сначала ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ. Аналогично, Ссли Π²Ρ‹ Π½Π΅ освоили основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git, Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ руководство Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для прСвращСния Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π² профСссионала; ΠΎΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠΆΠ΅ достаточно ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ Π² использовании Git.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Git

Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π§Ρ‚ΠΎ я Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСлал?
git log
git log --oneline # more succinct output
git log --graph # with a visual graph of branches
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π°ΡˆΡƒ Β«undoΒ»-ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ
git reflog

Иногда git log Π½Π΅ справляСтся, особСнно это касаСтся ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ reflog.

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

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΈ свСдСния ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°Ρ… слияния
git status

Π₯отя git status это ΠΎΠ΄Π½Π° ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всС ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ Π² числС ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Π°. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² слоТных случаях rebase ΠΈΠ»ΠΈ merge.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ измСнСниях
git diff --staged # для ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² стСйдТингС
git diff # для ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π² стСйдТингС

Навигация

Π₯ΠΎΡ‡Ρƒ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ я Π΄Π΅Π»Π°Π» Ρ€Π°Π½ΡŒΡˆΠ΅
git reset <commit-sha>

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡƒΠ±Π΅Ρ€Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ измСнСния ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ стСйдТинга, Π½ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ останутся Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅
git checkout -

ИзмСнСния

Π― закопался ΠΏΠΎ ΡƒΡˆΠΈ, Π΄Π°Π²Π°ΠΉΡ‚Π΅-ΠΊΠ° Π½Π°Ρ‡Π½Π΅ΠΌ сначала
git reset --hard HEAD

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π΅Ρ€Π½Π΅Ρ‚ Π²Π°ΡˆΡƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π² состояниС Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ измСнСния, Π½Π΅ внСсСнныС Π² стСйдТинг.

Π― Ρ…ΠΎΡ‡Ρƒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС
git checkout -- <bad-filename>
Π― Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ
git reset --hard HEAD~1
Π― Ρ…ΠΎΡ‡Ρƒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π° n ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π½Π°Π·Π°Π΄
git reset --hard HEAD~n # n это послСдниС n ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
git reset --hard <commit-sha> # ΠΈΠ»ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ

ΠœΠ΅ΠΆΠ΄Ρƒ soft, mixed ΠΈ hard reset Π΅ΡΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹Π΅ отличия. Если Π±Ρ€Π°Ρ‚ΡŒ Π² Ρ†Π΅Π»ΠΎΠΌ,

  1. --soft: ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ измСнСния ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½ΠΎ сохраняСт ΠΈΡ… Π² стСйдТингС.
  2. --mixed (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ): измСнСния ΡƒΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ стСйдТинга, Π½ΠΎ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.
  3. --hard: измСнСния ΡƒΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΈΠ· стСйдТинга ΠΈ ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.
Π― пСрСзаписал ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эти измСнСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
git push -f

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для случаСв, ΠΊΠΎΠ³Π΄Π° ваш Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ расходится с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ.

Π― Ρ…ΠΎΡ‡Ρƒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚
git commit --amend
Π₯ΠΎΡ‡Ρƒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² локально
git rebase -i <commit hash> # Π³Π΄Π΅ commit hash это ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ всСми измСнСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ

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

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ rebase это ΠΎΠ΄Π½Π° ΠΈΠ· самых Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Git. Π”Π°Π»ΡŒΡˆΠ΅ ΠΌΡ‹ Π΅Ρ‰Π΅ ΠΊ Π½Π΅ΠΉ вСрнСмся.

Π­Ρ‚ΠΎΡ‚ rebase Π½ΠΈ ΠΊ Ρ‡Π΅ΠΌΡƒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌΡƒ Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΏΡ€Π΅Ρ€Π²Π΅ΠΌ
git rebase --abort

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΠΎΠΊΠ° выполняСтся rebase. МнС часто случаСтся Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ rebase Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½, Ρ‡Π΅ΠΌ слСдовало Π±Ρ‹, особСнно Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Π΄Π²ΡƒΡ… Π²Π΅Ρ‚ΠΊΠ°Ρ… со мноТСством ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Пока rebase Π½Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

Π― Ρ…ΠΎΡ‡Ρƒ внСсти ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ
# ЗапускаСтся ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти ΠΊΠΎΠΌΠΌΠΈΡ‚ 
git cherry-pick <commit-sha>
Π― Ρ…ΠΎΡ‡Ρƒ внСсти ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ
git checkout <имя-Π²Π΅Ρ‚ΠΊΠΈ> <имя-Ρ„Π°ΠΉΠ»Π°>
Π― большС Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² систСмС контроля вСрсий
git rm --cached <имя-Ρ„Π°ΠΉΠ»Π°>
МнС Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Π½ΠΎ ΠΌΠΎΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΎ

(ΠŸΡ€ΠΈΠΌ. Ρ€Π΅Π΄. Techrocks: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ git stash Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ здСсь).

git stash # сохраняСт ваши измСнСния свСрху стСка stash
git stash save "сообщСниС, ΠΊΠ°ΡΠ°ΡŽΡ‰Π΅Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ"
git stash -u # stash untracked files as well
Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π² stash
git stash list
Π₯ΠΎΡ‡Ρƒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· stash
git stash pop # "Π²Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚" самый Π½Π΅Π΄Π°Π²Π½ΠΈΠΉ элСмСнт, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² стСк stash
git stash apply stash@{stash_index} # примСняСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ элСмСнт Π² stash (ΠΈΠ· git stash list)
Π― Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Π΅Π· пСрСписывания истории
git revert HEAD # ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ 
git revert <commit hash> # для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚Π΅ измСнСния, создав Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.(\+|\*|\s*(master|develop|dev)\s*$)» | command xargs -n 1 git branch -d’

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Oh My Zosh, всС это ΡƒΠΆΠ΅ сдСлано Π·Π° вас. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ β€” Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΡ€ΠΎ псСвдонимы.

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ Π² мусор старыС Π²Π΅Ρ‚ΠΊΠΈ ΠΈ лишниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹
git fetch --all --prune

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π°, Ссли Π²Ρ‹ настроили свой ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈ слиянии.

ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Git ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌΠΈ для запоминания. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… Π·Π°Π½ΠΎΠ²ΠΎ ΠΈ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅ Π΄Π½ΠΈ Π½Π° ΠΈΡ… Π·Π°ΡƒΡ‡ΠΈΠ²Π°Π½ΠΈΠ΅, я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ для Π½ΠΈΡ… псСвдонимы.

МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅: ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ инструмСнт Π²Ρ€ΠΎΠ΄Π΅ Oh My Zosh для Z shell (Zsh), ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π°Π±ΠΎΡ€ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… псСвдонимов для распространСнных ΠΊΠΎΠΌΠ°Π½Π΄ Git. Π― Π²ΠΎΡ‚ слишком Π»Π΅Π½ΠΈΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ свою ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Π² точности ΠΏΠΎ своСму вкусу, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ инструмСнтами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ это Π·Π° мСня. ΠšΡΡ‚Π°Ρ‚ΠΈ, Oh My Zosh ΠΈ выглядит красиво.(\+|\*|\s*(master|develop|dev)\s*$)» | command xargs -n 1 git branch -d
gfa — git fetch —all —prune

Если Π·Π°Π±ΡƒΠ΄Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ выглядит полная ΠΊΠΎΠΌΠ°Π½Π΄Π°, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ создан Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ псСвдоним, всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ:

alias

Или ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ псСвдониму:

alias grep <имя-псСвдонима>

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git

Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

МногиС Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для контроля вСрсий. К Π½ΠΈΠΌ относятся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ node_modules, .vscode ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… IDE ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… срСд Python. Для настройки игнорирования Ρ„Π°ΠΉΠ»ΠΎΠ² слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ global gitignore.

Π§Ρ‚ΠΎ касаСтся ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ окруТСния ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π² .gitignore Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠžΡΠΎΠ±Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠ°ΠΊ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Git ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π» ΠΈΡ… ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΡ†ΠΈΡ€ΠΎΠ²Π°Π» Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ diff-Ρ‹. Для этой Ρ†Π΅Π»ΠΈ Π² Git Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» .gitattributes. Π’ JavaScript-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ внСсти Π² этот Ρ„Π°ΠΉΠ» ваш yarn-lock.json ΠΈΠ»ΠΈ package-lock.json, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Git Π½Π΅ пытался ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ diff ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠ°ΠΊ Π²Ρ‹ вноситС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.

# .gitattributes
package-lock.json binary

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы Git

Rebase vs Merge

Π’ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ принято ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ rebase, ΠΈΠ»ΠΈ merge. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ свои достоинства ΠΈ нСдостатки, ΠΈ ΠΌΠ½Π΅ доводилось Π²ΠΈΠ΄Π΅Ρ‚ΡŒ эффСктивноС использованиС ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π§Π°Ρ‰Π΅ всСго, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ использованиС merge. Π­Ρ‚ΠΎ Ссли Π½Π΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ случаСв, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅.

Но Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ merge, всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ rebase. НаиболСС распространСнный случай эффСктивного примСнСния rebase β€” ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² это врСмя Π΄ΠΎΠ±Π°Π²ΠΈΠ» свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² master. Π’Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git merge для внСсСния своих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ с измСнСниями, внСсСнными вашим Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰Π΅ΠΌ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Π§Ρ‚ΠΎ Π²Π°ΠΌ Π½Π° самом Π΄Π΅Π»Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это пСрСнСсти свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° Π²Π΅Ρ€Ρ… Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ master.

git rebase master

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ чистая история ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, Π½ΡƒΠΆΠ½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ, ΠΈ я Π΅Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΏΠΈΡˆΡƒ, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° этот счСт говорится Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Atlassian. (ΠŸΡ€ΠΈΠΌ. Ρ€Π΅Π΄. Techrocks: Π½Π° нашСм сайтС Π΅ΡΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎ git rebase ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡ со сравнСниСм revert, checkout, reset, merge ΠΈ rebase).

Настройки ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория

Π― большС всСго Π·Π½Π°ΠΊΠΎΠΌ с GitHub ΠΈ GitLab, Π½ΠΎ эти настройки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

1. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈ слиянии

Когда всС измСнСния ΡƒΠΆΠ΅ слиты, Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ, вСдь история Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² вашСй Π²Π΅Ρ‚ΠΊΠ΅ master/dev. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сущСствСнно сокращаСт количСство Π²Π΅Ρ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ. Π’Π°ΠΊΠΆΠ΅ благодаря этому ΠΊΠΎΠΌΠ°Π½Π΄Π° git fetch --all --prune становится Π±ΠΎΠ»Π΅Π΅ эффСктивной Π² Π΄Π΅Π»Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ чистоты вашСго локального рСпозитория.

2. ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² master

Π‘Π΅Π· этого Π²Ρ‹ рискуСтС Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ вСсьма Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² master, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git push, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ способно ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½-сборку. А это Π½Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

3. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ получСния ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ одобрСния ΠΏΠ΅Ρ€Π΅Π΄ слияниСм

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

4. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ прохоТдСния CI-тСстов для слияния

ИзмСнСния с Π΄Π΅Ρ„Π΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½. Π Π΅Π²ΡŒΡŽΠ΅Ρ€Ρ‹ Π½Π΅ всСгда способны Π²Ρ‹Π»ΠΎΠ²ΠΈΡ‚ΡŒ 100% Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ стоит Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ.

Названия Π²Π΅Ρ‚ΠΎΠΊ

Для облСгчСния Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ собствСнноС соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… Π²Π΅Ρ‚ΠΎΠΊ. МнС нравится Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π±ΡƒΠΊΠ²Π° ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слСдуСт косая Ρ‡Π΅Ρ€Ρ‚Π° ΠΈ описаниС Π²Π΅Ρ‚ΠΊΠΈ (слова Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ дСфисами).

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Π»ΠΎΡ‡ΡŒΡŽ, Π½ΠΎ благодаря Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ автодополнСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ клавиши табуляции, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊΠΈΠΌ инструмСнтам ΠΊΠ°ΠΊ grep, Π²Ρ‹ смоТСтС ΠΊΡƒΠ΄Π° быстрСС Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

НапримСр, я создаю Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ:

git checkout -b gabud/implement-important-feature

НСдСлю спустя, ΠΊΠΎΠ³Π΄Π° я Π·Π°Π±ΡƒΠ΄Ρƒ, ΠΊΠ°ΠΊ Π½Π°Π·Π²Π°Π» Π²Π΅Ρ‚ΠΊΡƒ, я смогу Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ git checkout gabud (имя Π°Π²Ρ‚ΠΎΡ€Π° ΡΡ‚Π°Ρ‚ΡŒΠΈ β€” Gabriel Abud, β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².), Π½Π°ΠΆΠ°Ρ‚ΡŒ TAB β€” ΠΈ моя Z shell (ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°) ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΌΠ½Π΅ всС ΠΌΠΎΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ я смогу Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠΌΠ΅Π½Π½ΠΎ срСди своих Π²Π΅Ρ‚ΠΎΠΊ, Π½Π΅ путая ΠΈΡ… с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ»Π»Π΅Π³.

БообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π―Π·Ρ‹ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ Ρ†Π΅Π»ΠΎΠΌ я ΡΡ‡ΠΈΡ‚Π°ΡŽ Π·Π° Π»ΡƒΡ‡ΡˆΠ΅Π΅ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½ΠΈΡ‡Π΅Π³ΠΎ сломанного, Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ сообщСниСм ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния вносятся. Π’ соотвСтствии с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ рСкомСндациями Git, я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π² настоящСм Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. КаТдоС сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° я Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°/git, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ† этого прСдлоТСния:

If this commit were applied, it would…

(Если этот ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½, он…)

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² настоящСм Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ²Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΈ:

git commit -m "Add a name field to the checkout form"

Π’Π΅ΠΏΠ΅Ρ€ΡŒ полная Ρ„Ρ€Π°Π·Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ: Β«If this commit were applied, it would add a name field to the checkout formΒ» («Если этот ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½, ΠΎΠ½ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΏΠΎΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π² Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΒ»). ΠšΡ€Π°ΡΠΈΠ²ΠΎ ΠΈ понятно.

Π˜Ρ‚ΠΎΠ³ΠΈ

Π­Ρ‚ΠΎ, бСзусловно, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС возмоТности Git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, я ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git help. НС Π±ΠΎΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ совСта Ρƒ ΠΊΠΎΠ»Π»Π΅Π³: Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅, сколько ΠΈΠ· Π½ΠΈΡ… Ρ‚Π΅Ρ€Π·Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ вопросами.

git_commit — Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Fastlane

Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ скоростной полосы

  • Π”ΠΎΠΌ

    • Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹
      • iOS
      • ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ

      • Запуск тСстов

      • Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹

      • Π‘Π΅Ρ‚Π°-Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅

      • Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π² App Store

      • Android
      • ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ

      • Запуск тСстов

      • Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹

      • Π‘Π΅Ρ‚Π°-Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅

      • Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ выпуска

      • ΠšΡ€ΠΎΡΡ-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ
      • React Native

      • Π€Π»Π°Ρ‚Ρ‚Π΅Ρ€

      • NativeScript

    • ДСйствия
    • ДоступныС дСйствия

    • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ своС собствСнноС дСйствиС

  • ИспользованиС App Store Connect API

  • FAQs

    • ΠšΠΎΠ΄Ρ‹
    • Начиная

    • ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Xcode

    • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

    • ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

    • ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹
    • ДоступныС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹

    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹

    • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свой собствСнный ΠΏΠ»Π°Π³ΠΈΠ½

    • УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²

    • Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ
    • УправлСния источником

    • НСпрСрывная интСграция

      • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ CI
      • Appcircle

      • Azure DevOps

      • Π‘Π°ΠΌΠ±ΡƒΠΊ

      • Bitrise

      • CircleCI

      • GitLab CI

      • ДТСнкинс

      • NeverCode

      • Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€

      • Врэвис

    • ΠšΠ»ΡŽΡ‡ΠΈ

    • ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ
    • скоростная трасса

    • Fastfile

    • Π€Π°ΠΉΠ» прилоТСния

    • ΠŸΠ΅Ρ€Π΅ΡƒΠ»ΠΊΠΈ

    • ДСйствия

    • Π”Ρ€ΡƒΠ³ΠΈΠ΅


Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ скоростной полосы

  • Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Β»
  • ДСйствия Β»
  • git_commit
  • Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° GitHub


ЗафиксируйтС ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git — PyCharm

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

Π—Π°Π΄Π°ΠΉΡ‚Π΅ своС имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Git

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

Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния локально

Π’ PyCharm Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов:

  • Π’ ΠΎΠΊΠ½Π΅ инструмСнта фиксации Alt + 0 : это способ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π½ΠΎΠ²Ρ‹Ρ… установок.Π­Ρ‚ΠΎΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ фиксации: Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ использования модального Π΄ΠΈΠ°Π»ΠΎΠ³Π° фиксации, Π²Ρ‹ всСгда Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ фиксации ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ измСнСния Π² Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΡŽ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… фиксаций, ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ сообщСниС фиксации ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ.

  • Π§Π΅Ρ€Π΅Π· Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния»: это способ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π»Π°ΠΆΠΊΠ° Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс фиксации Π½Π° страницС ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий | Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° фиксации настроСк / ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ Ctrl + Alt + S .

Ѐиксация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠΊΠ½Π° инструмСнта фиксации

  1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ инструмСнта фиксации Alt + 0 , располоТСнноС слСва:

  2. Когда ваши измСнСния Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ фиксации, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

    Если Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Ctrl + K , Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ вСсь Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΡƒΠ·Π»Π΅ «НСвСрсированныС Ρ„Π°ΠΉΠ»Ρ‹Β» — PyCharm ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ ΠΈ зафиксируСт эти Ρ„Π°ΠΉΠ»Ρ‹ Π·Π° ΠΎΠ΄ΠΈΠ½ шаг.

  3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС фиксации. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· списка послСдних сообщСний ΠΎ фиксации.

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС фиксации ΠΏΠΎΠ·ΠΆΠ΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° сообщСний фиксации Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Настройки / ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΡΒ». Ctrl + Alt + S Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий | Π”ΠΈΠ°Π»ΠΎΠ³ фиксации. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ быстроС исправлСниС ΠΈ дСйствиС Β«ΠŸΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ пСрСносит Π΄Π»ΠΈΠ½Π½ΡƒΡŽ строку ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ сообщСниС.

  4. Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° сСрвСр послС фиксации ΠΈΠ»ΠΈ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΎΠΊΠ½Π° инструмСнта:

    Доступны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

    • Автор: Ссли Π²Ρ‹ фиксируСтС измСнСния, сдСланныС Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π° этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

    • Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ: позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

    • ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ фиксации: Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ своС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π±Ρ‹Π»ΠΈ внСсСны Π²Π°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ Π½Π° сСбя ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ фиксируСтС.

      Когда этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Π² ΠΊΠΎΠ½Π΅Ρ† сообщСния ΠΎ фиксации автоматичСски добавляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка: Подписано: <имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ>

    • Π’ области ΠŸΠ΅Ρ€Π΅Π΄ фиксациСй Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ PyCharm Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

    • Π’ области «ПослС фиксации» Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ доступа ΠΊ сСрвСру ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ сСрвСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ зафиксированных Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ хост, смонтированный диск ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Π‘ΠΌ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅Β».

  5. Когда Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒΒ» ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ стрСлку Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ доступныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

    • ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ( Ctrl + Alt + K ): Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° измСнСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ сразу послС фиксации.Π’Ρ‹ смоТСтС ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ фиксации, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ исправлСниС: созданиС исправлСния Π½Π° основС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Create Patch Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Ρ„Π°ΠΉΠ»Π° ΠΏΠ°Ρ‚Ρ‡Π° ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅, Π½ΡƒΠΆΠ΅Π½ Π»ΠΈ Π²Π°ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‡.

    • Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ запуск: запуститС Π²Π°ΡˆΡƒ Π»ΠΈΡ‡Π½ΡƒΡŽ сборку.Π­Ρ‚Π° опция доступна, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ вошли Π² TeamCity. Π—Π° подробностями ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° TeamCity.

Ѐиксация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Ѐиксация»

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΠ»ΠΈ вСсь список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² прСдставлСнии Β«Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния» ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + K ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ «Ѐиксация» Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов.

    Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния» пСрСчислСны всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй фиксации, Π° Ρ‚Π°ΠΊΠΆΠ΅ всС Π½Π΅Π΄Π°Π²Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ нСвСрсированныС Ρ„Π°ΠΉΠ»Ρ‹.

  2. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ список Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ снимитС Ρ„Π»Π°ΠΆΠΊΠΈ рядом с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. ИзмСнСния Π² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… останутся Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ спискС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈ Π²Ρ‹ смоТСтС Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ·ΠΆΠ΅.

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΡƒΠ·Π»Π΅ «НСвСрсированныС Ρ„Π°ΠΉΠ»Ρ‹Β» — PyCharm ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ ΠΈ зафиксируСт эти Ρ„Π°ΠΉΠ»Ρ‹ Π·Π° ΠΎΠ΄ΠΈΠ½ шаг.

  3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС фиксации.

    МоТно Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π˜ΡΡ‚ΠΎΡ€ΠΈΡ сообщСний фиксации Ctrl + M , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· списка послСдних сообщСний фиксации.

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС фиксации ΠΏΠΎΠ·ΠΆΠ΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° сообщСний фиксации Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Настройки / ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΡΒ». Ctrl + Alt + S Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий | Π”ΠΈΠ°Π»ΠΎΠ³ фиксации. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ быстроС исправлСниС ΠΈ дСйствиС Β«ΠŸΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ пСрСносит Π΄Π»ΠΈΠ½Π½ΡƒΡŽ строку ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ сообщСниС.

  4. ΠŸΡ€ΠΈ нСобходимости Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° сСрвСр послС фиксации ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π­Ρ‚ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ доступны Π² ΠΏΡ€Π°Π²ΠΎΠΉ части Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°:

    • Автор: Ссли Π²Ρ‹ фиксируСтС измСнСния, сдСланныС Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π° этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

    • Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ: позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

    • ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ фиксации: Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ своС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π±Ρ‹Π»ΠΈ внСсСны Π²Π°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ Π½Π° сСбя ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ фиксируСтС.

      Когда этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Π² ΠΊΠΎΠ½Π΅Ρ† сообщСния ΠΎ фиксации автоматичСски добавляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка: Подписано: <имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ>

    • Π’ области ΠŸΠ΅Ρ€Π΅Π΄ фиксациСй Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ PyCharm Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

    • Π’ области «ПослС фиксации» Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ доступа ΠΊ сСрвСру ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ сСрвСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ зафиксированных Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ хост, смонтированный диск ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Π‘ΠΌ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅Β».

  5. Когда Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒΒ» ΠΈΠ»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ стрСлку Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ доступныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

    • ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ( Ctrl + Alt + K ): Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° измСнСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ сразу послС фиксации.Π’Ρ‹ смоТСтС ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ фиксации, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ исправлСниС: созданиС исправлСния Π½Π° основС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Create Patch Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Ρ„Π°ΠΉΠ»Π° ΠΏΠ°Ρ‚Ρ‡Π° ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅, Π½ΡƒΠΆΠ΅Π½ Π»ΠΈ Π²Π°ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‡.

    • Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ запуск: запуститС Π²Π°ΡˆΡƒ Π»ΠΈΡ‡Π½ΡƒΡŽ сборку.Π­Ρ‚Π° опция доступна, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ вошли Π² TeamCity. Π—Π° подробностями ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° TeamCity.

Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π°

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

PyCharm позволяСт Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ измСнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… способов:

  • Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, прямо Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Ѐиксация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉΒ» ΠΈ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡ… Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠΏΠΎΠ·ΠΆΠ΅.

  • ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Π½Ρ‹Π΅ списки ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° Π»Π΅Ρ‚Ρƒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти списки ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

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

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ инструмСнта фиксации Alt + 0 слСва ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния».

  2. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиСй рСпозитория ΠΈ локальной вСрсиСй Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π² ΠΎΠΊΠ½Π΅ инструмСнта фиксации Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + D .

    Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния», Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Π Π°Π·Π½ΠΈΡ†Π°Β».

  3. УстановитС Ρ„Π»Π°ΠΆΠΎΠΊ рядом с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ вновь Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния Π½Π΅Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ:

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Β«ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉΒ» Π² контСкстном мСню ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ измСнСния ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ списками ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

    Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ настраиваСмый ярлык для этого дСйствия: Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Настройки / ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΡΒ» Ctrl + Alt + S Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Раскладка» ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ дСйствиС Β«ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ строки Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉΒ» Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «БистСмы контроля вСрсий».

  4. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ «ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ». НСвыбранныС измСнСния останутся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ спискС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ измСнСния Π² Ρ€Π°Π·Π½Ρ‹Π΅ списки ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

  1. Когда Π²Ρ‹ вноситС измСнСния Π² Ρ„Π°ΠΉΠ» Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ измСнСния Π² ΠΆΠ΅Π»ΠΎΠ±Π΅.

    Если Π² ΠΆΠ΅Π»ΠΎΠ±Π΅ Π½Π΅Ρ‚ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΆΠ΅Π»ΠΎΠ±Π΅Β» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Настройки / ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΡΒ» Ctrl + Alt + S Π½ΠΈΠΆΠ΅.

  2. На появившСйся ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° (ΠΈΠ»ΠΈ создайтС Π½ΠΎΠ²Ρ‹ΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ):

  3. ЗафиксируйтС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваша локальная копия рСпозитория Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².

PyCharm позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ измСнСния ΠΈΠ· любой Π²Π΅Ρ‚ΠΊΠΈ Π² ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ Π² Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

  1. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

    • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ измСнСния ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚Π²ΠΈ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Shift + K ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ VCS | Git | НаТмитС ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню.

    • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· любой локальной Π²Π΅Ρ‚ΠΊΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ эту Π²Π΅Ρ‚Π²ΡŒ Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅ Β«Π’Π΅Ρ‚Π²ΠΈΒ» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΒ» ΠΈΠ· списка дСйствий.

    ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Β«Push-ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹Β», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ всС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git (для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с нСсколькими рСпозиториями) ΠΈ пСрСчислСны всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, сдСланныС Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСго наТатия.

    Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ нСсколько Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ синхронно, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ выбираСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (для получСния ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ синхронными рСпозиториями, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ «Настройки контроля вСрсий: GitΒ»).

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Ctrl + Q для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ фиксации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊΡƒΡŽ ​​как Π°Π²Ρ‚ΠΎΡ€ фиксации, врСмя, Ρ…ΡΡˆ ΠΈ сообщСниС фиксации.

  2. Если Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π΅Ρ‚ ΠΏΡƒΠ»ΡŒΡ‚ΠΎΠ² Π”Π£, появится ссылка Β«ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉΒ». Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ эту ссылку ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ имя ΠΈ URL-адрСс Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅. Он Π±ΡƒΠ΄Π΅Ρ‚ сохранСн, ΠΈ Π²Ρ‹ смоТСтС ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· VCS | Git | ΠŸΡƒΠ»ΡŒΡ‚Ρ‹ (подробности см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория).

  3. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ имя Π²Π΅Ρ‚ΠΊΠΈ. ΠœΠ΅Ρ‚ΠΊΠ° прСвращаСтся Π² тСкстовоС ΠΏΠΎΠ»Π΅, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти имя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ссылку Β«Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС Ρ†Π΅Π»ΠΈΒ» Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° всСх Π²Π΅Ρ‚ΠΎΠΊ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ: тСкущая Π²Π΅Ρ‚ΠΊΠ° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ рСпозитория Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π°.

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌ рСдактирования, Π½Π°ΠΆΠ°Π² Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ F2 для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.

  4. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. На ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ измСнСния, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ фиксации.

    Если Π°Π²Ρ‚ΠΎΡ€ фиксации отличаСтся ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, эта фиксация помСчаСтся Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ.

    Если Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ вСсь Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ пСрСчислСны Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.

    Если ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Ссли Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ эти ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ»ΠΈ вСсь Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈ Ссли Π²Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚Π΅ срСдство просмотра Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ для этого Ρ„Π°ΠΉΠ»Π°, всС измСнСния Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ вмСстС.

  5. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«ΠΠ°ΠΆΠ°Ρ‚ΡŒΒ», ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹, ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ мСню: Β«ΠΠ°ΠΆΠ°Ρ‚ΡŒΒ» ΠΈΠ»ΠΈ Β«ΠΠ°ΠΆΠ°Ρ‚ΡŒ с силой».

    Π­Ρ‚ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли тСкущая Π²Π΅Ρ‚Π²ΡŒ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° Π² ΠΏΠΎΠ»Π΅ Π—Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ (см. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ управлСния вСрсиями: Git), Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ push .

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Π²Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию, Ссли push ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½

Если push ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ваша рабочая копия устарСла, PyCharm ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Push Rejected ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Auto-update if push of the current branch was rejected Π² Git страница настроСк Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° «Настройки» Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π°. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

сСк.

  1. . Если Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСсколько Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Git, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ.Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π» Π»ΠΈ для Π½ΠΈΡ… ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ push, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π½Π΅ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Если этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

  2. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ PyCharm примСнял ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ обновлСния Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΊΠΎΠ³Π΄Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· push Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° обновлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π² этом Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ обновлСния ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ автоматичСскоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌΒ».

    ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠΊΠΈΠ½Π΅Ρ‚Π΅ это Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ установлСн Ρ„Π»Π°ΠΆΠΎΠΊ «АвтоматичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ, Ссли Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΎΒ» Π½Π° страницС настроСк Git Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° «Настройки», ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ обновлСния станСт ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ обновлСния, снимитС этот Ρ„Π»Π°ΠΆΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Β«Push RejectedΒ», ΠΊΠΎΠ³Π΄Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚Π²ΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ обновлСния ΠΈ снова Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ обновлСния».

  3. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ обновлСния (ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ), Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² соотвСтствСнно ΠΊΠ½ΠΎΠΏΠΊΡƒ Rebase ΠΈΠ»ΠΈ Merge.

Когда ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅?

Когда Π²Ρ‹ запуститС push, Git откаТСтся Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Ссли Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ пропустили ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ своСй локальной ΠΊΠΎΠΏΠΈΠ΅ΠΉ рСпозитория. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ pull для синхронизации с ΠΏΡƒΠ»ΡŒΡ‚ΠΎΠΌ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ измСнСния.

Команда --force push ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΈ позволяСт ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‚Π΅ΠΌ самым стирая Π΅Π³ΠΎ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ вызывая ΠΏΠΎΡ‚Π΅Ρ€ΡŽ Π΄Π°Π½Π½Ρ‹Ρ….

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

Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ:

  • Никто Π½Π΅ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΠ» Π²Π°ΡˆΡƒ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Π½Π΅ внСс Π² Π½Π΅Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния

  • ВсС ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ измСнСния Π±Ρ‹Π»ΠΈ зафиксированы ΠΈ Π½Π°ΠΆΠ°Ρ‚Π°

  • Π£ вас Π΅ΡΡ‚ΡŒ послСдниС измСнСния для этой Π²Π΅Ρ‚ΠΊΠΈ

ПослСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: 11 ноября 2020 Π³.

Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» | Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ°

1
git-commit

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Git с Backlog

  • Git Tutorial
  • Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ основы Git
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ git?
  • Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Git
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория
  • Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
  • ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
  • Бинхронизация Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²
  • ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ истории
  • ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Git Collaboration
  • 00 Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ

  • ИспользованиС Π²Π΅Ρ‚ΠΎΠΊ
  • Π£Π΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ
  • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ
  • ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ
  • Π Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы вСтвлСния
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса Π²Π΅Ρ‚ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Π²Π΅Ρ‚Π²Π΅ΠΉ
  • Π’Π΅Ρ‚ΠΊΠ° слияния
  • ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ
  • Π’Π΅Π³ΠΈ
  • Запросы Π½Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅
  • Π Π°Π±ΠΎΡ‚Π° с G
    • Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ git
    • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    • Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»
  • Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    • ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    • ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    • ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    • Π˜Π·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· рСпозитория
    • Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚
    • Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚
  • Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ
    • ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ
    • ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ
    • Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ
    • Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния
    • ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ
  • Π’Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
    • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅Π³
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π΅Π³
  • ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ
    • ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ — ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ
    • ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ
    • Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ
    • 9264 9264 Cherry pick
    • .

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

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