github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

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

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Β«simplegitΒ». Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Если Π²Ρ‹ запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git log Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

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

Команда git log ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ большоС количСство ΠΎΠΏΡ†ΠΈΠΉ для поиска ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ критСриям. Рассмотрим Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС ΠΈΠ· Π½ΠΈΡ….

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Ρ…Π΅Ρˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Ρ…Π΅Ρˆ Π΄Π΅Ρ€Π΅Π²Π°

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ Ρ…Π΅Ρˆ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ

ЭлСктронная ΠΏΠΎΡ‡Ρ‚Π° Π°Π²Ρ‚ΠΎΡ€Π°

ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄Π°Ρ‚Π° Π°Π²Ρ‚ΠΎΡ€Π°

ЭлСктронная ΠΏΠΎΡ‡Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°

ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄Π°Ρ‚Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€Π°

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

Π”Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ интСрСсСн Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅, Π³Π΄Π΅ ΠΌΡ‹ рассмотрим Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ слияниС.

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

Π’Π°Π±Π»ΠΈΡ†Π° 2. НаиболСС распространСнныС ΠΎΠΏΡ†ΠΈΠΈ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ‚Ρ‡ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ статистику ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² послС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ список Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹/ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹/ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько символов SHA-1 Ρ‡Π΅ΠΊ-суммы вмСсто всСх 40.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Π°Ρ‚Ρƒ Π² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«2 weeks agoΒ») вмСсто стандартного Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π°Ρ‚Ρ‹.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ASCII Π³Ρ€Π°Ρ„ с вСтвлСниями ΠΈ историСй слияний.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΠΏΡ†ΠΈΠΉ: oneline, short, full, fuller ΠΈ format (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ послСднСй ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ свой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚).

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

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠžΠΏΡ†ΠΈΠΈ для ограничСния Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ эти ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ распространСнныС ΠΎΠΏΡ†ΠΈΠΈ.

ΠžΠΏΡ†ΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π’Π°Π±Π»ΠΈΡ†Π° 3. ΠžΠΏΡ†ΠΈΠΈ для ограничСния Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС n ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сдСланы послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сдСланы Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… запись author совпадаСт с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строкой.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… запись committer совпадаСт с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строкой.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, сообщСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ строку.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠ²Π»Π΅ΠΊΠ»ΠΎ Π·Π° собой Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ строки.

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

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

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

Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π£Ρ€ΠΎΠΊ 5.
Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² подробностях

Π’ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ

ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ ΡƒΡ€ΠΎΠΊΠ°

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС ΡƒΡ€ΠΎΠΊΠ°, основныС инструкции для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки ΠΈ совСты.

Для ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

Π£Ρ€ΠΎΠΊ частично повторяСт содСрТаниС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ. Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΡ‹ рассмотрим Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Команда git log

Π—Π° просмотр истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° git log. Π’ сочСтании с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², посмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…

git log, просмотр истории ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΎΡ‚ Π½ΠΎΠ²Ρ‹Ρ… ΠΊ старым. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° выводится

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ git log, Π½ΠΎ Π΅Ρ‰Π΅ ΠΈ с измСнСниями Π² Ρ„Π°ΠΉΠ»Π°Ρ…

Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄Π½Ρƒ строку. ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ commit message

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π°, Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС псСвдографикой. Плюс Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². К Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΡ‹ вСрнСмся, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ истории

Π•ΡΡ‚ΡŒ мноТСство ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π’ Ρ‚ΠΎΠΌ числС Π² сочСтании с линуксовыми ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…

Поиск ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ

ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ²ΡˆΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ»

Поиск ΠΏΠΎ Π°Π²Ρ‚ΠΎΡ€Ρƒ

Поиск ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ Π΄Π°Ρ‚

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΎΠΏΡ†ΠΈΠΉ

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΎΠΏΡ†ΠΈΠΈ git ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ… линуксовыми ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ

КакиС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹

ΠœΡ‹ рассмотрСли Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π½ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ git log Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ. ВсС ΠΈΡ… Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅Ρ‚ смысла, ΠΏΡ€ΠΈ нСобходимости ΠΈΠ·ΡƒΡ‡Π°ΠΉΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, git show

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ…ΡΡˆ. Π₯эш ΠΊΠΎΠΌΠΌΠΈΡ‚Π° выводится Π² любой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git log, с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ Π±Π΅Π·. НапримСр,

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚

Выводится подробная информация ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅:

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Ρ…ΡΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² PhpStorm

Π’ ΠΎΠΊΠ½Π΅ Local Changes, Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Log показываСтся вся история ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π² Π»Π΅Π²ΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. Π’ спискС ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΡ… commit message, Π°Π²Ρ‚ΠΎΡ€ ΠΈ Π΄Π°Ρ‚Π°. Клик Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части Π²ΠΊΠ»Π°Π΄ΠΊΠΈ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Клик Π½Π° Π½ΡƒΠΆΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ Ctrl/Cmd+D ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ всС измСнСния Π² этом Ρ„Π°ΠΉΠ»Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ git diff.

Π’ тСкстС ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с историСй Π² PhpStorm слоТно, смотритС Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° старый ΠΊΠΎΠΌΠΌΠΈΡ‚, Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ

НуТно это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² Π΄Π²ΡƒΡ… случаях:

1. ΠŸΡ€ΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΌ Π΄Π΅ΠΏΠ»ΠΎΠ΅, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΊΡ€Ρ‹Π»Π°ΡΡŒ критичная Π±Π°Π³Π°. Если Π±Π°Π³Π° слоТная ΠΈ ΠΏΠΎΡ„ΠΈΠΊΡΠΈΡ‚ΡŒ Π΅Π΅ быстро Π½Π΅ удаСтся, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈ ΡƒΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ Ρ‡ΠΈΠ½ΠΈΡ‚ΡŒ Π±Π°Π³Ρƒ.

2. ΠŸΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅. Когда Π² ΠΊΠΎΠ΄ Π·Π°ΠΊΡ€Π°Π»Π°ΡΡŒ Π±Π°Π³Π° ΠΈ ΠΌΡ‹ постСпСнно продвигаСмся «Π½Π°Π·Π°Π΄ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ΅» ΠΈ ΠΈΡ‰Π΅ΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ сломалось

Как ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Π½ΠΎ, Π² исходноС состояниС, Π½ΡƒΠΆΠ½ΠΎ Π½Π°Π±Ρ€Π°Ρ‚ΡŒ

Как ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ Π² PhpStrom

Π’ΠΊΠ»Π°Π΄ΠΊΠ° Log, ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ Π½Π° Π½ΡƒΠΆΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈ Checkout Revision. ВсС. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ вся, Π½ΠΎ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΎΠΊ HEAD с символом «!»

Π§Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ

На этом всС. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ взаимодСйствии с сСрвСром ΠΈ познакомимся с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ git push ΠΈ git pull.

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

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

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

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

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

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

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

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

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

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

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

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° строчкС.

Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с использованиСм ΡΠ»Π΅Π΄ΡƒΡŽΠ΅Ρ‰Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°: сокращённый Ρ…Π΅Ρˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π°Π²Ρ‚ΠΎΡ€, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄Π°Ρ‚Π°, сообщСниС.

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс

Если Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΎ всё Ρ‚Π°ΠΊΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ приятнСС ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· спСциализированный интСрфСйс, Π° Π½Π΅ ΠΈΠ· консоли. Π›ΠΈΡ‡Π½ΠΎ я ΠΎΡ‡Π΅Π½ΡŒ люблю GitExtensions:

Π’Π°ΠΊΠΆΠ΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ gitk:

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ВсС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git log Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ самыС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π±Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования Ρ…ΠΎΠ΄ΠΎΠ²Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

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

19 совСтов ΠΏΠΎ повсСднСвной Ρ€Π°Π±ΠΎΡ‚Π΅ с Git

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Если Π²Ρ‹ рСгулярно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Git, Ρ‚ΠΎ Π²Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ практичСскиС совСты ΠΈΠ· этой ΡΡ‚Π°Ρ‚ΡŒΠΈ. Если Π²Ρ‹ Π² этом ΠΏΠΎΠΊΠ° Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, Ρ‚ΠΎ для Π½Π°Ρ‡Π°Π»Π° Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Git Cheat Sheet. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ Ρ‚Π°ΠΊ, данная ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ‚Π΅Ρ…, Ρƒ ΠΊΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ использования Git ΠΎΡ‚ Ρ‚Ρ€Ρ‘Ρ… мСсяцСв. ΠžΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎ: Ρ‚Ρ€Π°Ρ„Ρ„ΠΈΠΊ, большиС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ!

1. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ просмотра Π»ΠΎΠ³Π°

Π’ΠΎΠΎΠ±Ρ‰Π΅, Π² Git Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ всяких ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ man git-log Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ просмотра истории. Если Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² вас Π½Π΅ устроит, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ —pretty, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π΄Π°Ρ‡Ρƒ Π² ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ….

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

2. Π’Ρ‹Π²ΠΎΠ΄ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»

Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ поиска ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ less, Π½Π°Π±Ρ€Π°Π² «слСш» ΠΈ ввСдя поисковый запрос: /<<поисковый-запрос>> (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ «n» для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ поиска ΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ «N» для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ):

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

3. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… строках Ρ„Π°ΠΉΠ»Π°

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git blame filename ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Π° послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² Ρ„Π°ΠΉΠ»Π΅.

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ нСдостаточно ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ прСдоставляСт.

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git log с Ρ„Π»Π°Π³ΠΎΠΌ -L, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅ΠΉ строки Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΈ Git ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с этой строкой.

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

4. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π΅Ρ‰Ρ‘ Π½Π΅ Π²Π»ΠΈΡ‚Ρ‹Ρ… Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Если Π²Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ трудится ΠΌΠ½ΠΎΠ³ΠΎ людСй, Ρ‚ΠΎ Π²Ρ‹ навСрняка ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с мноТСствСнными вливаниями (ΠΌΡ‘Ρ€ΠΆΠ°ΠΌΠΈ) Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, master) Π² Π²Π΅Ρ‚ΠΊΡƒ с Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Ρ„ΠΈΡ‡Π΅ΠΉ. Π’Π°ΠΊΠΈΠ΅ ΠΌΡ‘Ρ€ΠΆΠΈ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΡΡŽΡ‚ просмотр истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ слоТно ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, сдСланныС Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

5. Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: git show some-branch:some-file.js

Иногда Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ» Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ Π½Π° Π½Π΅Ρ‘. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git show some-branch-name:some-file-name.js, которая Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π° Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ прямо Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π».

А с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ пСрСнаправлСния Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ этот Ρ„Π°ΠΉΠ» Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ мСсто Π½Π° дискС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π² своём Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅: git show some-branch-name:some-file-name.js > deleteme.js.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ всСго лишь ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: git diff some-branch some-filename.js

6. ΠŸΠ°Ρ€Π° слов ΠΎ Ρ€Π΅Π±Π΅ΠΉΠ·Π΅

Π Π°Π½Π΅Π΅ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ многочислСнных ΠΌΡ‘Ρ€ΠΆΠ°Ρ… мастСра Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. НСкоторых ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git rebase. Π’ΠΎΠΎΠ±Ρ‰Π΅, Ρ€Π΅Π±Π΅ΠΉΠ· β€” ΠΎΡ‡Π΅Π½ΡŒ мощная функция, ΠΈ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ поста. Π’ΠΎΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ говорится Π² ΠΊΠ½ΠΈΠ³Π΅ Β«Pro GitΒ»:

НСсмотря Π½Π° всС свои прСимущСства, Ρƒ Ρ€Π΅Π±Π΅ΠΉΠ·Π° Π΅ΡΡ‚ΡŒ ΠΈ свои нСдостатки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ:

НС Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ€Π΅Π±Π΅ΠΉΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², находящиСся Π²Π½Π΅ вашСго рСпозитория.

Если Π²Ρ‹ послСдуСтС этому совСту, Ρ‚ΠΎ всё Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС всС Π±ΡƒΠ΄ΡƒΡ‚ вас Π½Π΅Π½Π°Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π° Π΄Ρ€ΡƒΠ·ΡŒΡ ΠΈ сСмья станут вас ΠΏΡ€Π΅Π·ΠΈΡ€Π°Ρ‚ΡŒ.

Однако Ρ€Π΅Π±Π΅ΠΉΠ·Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΠΎΡΡ‚ΡŒΡΡ, просто слСдуСт ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌ.

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

НапримСр, Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с локальной ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ сдСлали нСбольшой ΠΊΠΎΠΌΠΌΠΈΡ‚. А Π² это врСмя ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Ρ‘ Π·Π°Π»ΠΈΠ» Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΡƒΡŽ копию Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ своСго нСдСльного Ρ‚Ρ€ΡƒΠ΄Π°. Когда Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ свои измСнСния, Git скаТСт Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ сначала Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ git pull для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°. Как добропорядочный Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π²Ρ‹ Ρ‚Π°ΠΊ ΠΈ поступитС ΠΈ послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git pull Π² истории вашСй локальной ΠΊΠΎΠΏΠΈΠΈ Π²Π΅Ρ‚ΠΊΠΈ получится Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚, сгСнСрированный автоматичСски: Β«Merge remote-tracking branch ‘origin/master’Β».

7. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ структуры Π²Π΅Ρ‚ΠΊΠΈ послС локального ΠΌΠ΅Ρ€ΠΆΠ°

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

8. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° вмСсто создания Π½ΠΎΠ²ΠΎΠ³ΠΎ

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

Если Π²Ρ‹ Π΅Ρ‰Ρ‘ Π½Π΅ Π·Π°ΠΏΡƒΡˆΠΈΠ»ΠΈ измСнСния Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ Π²ΠΎΡ‚:

9. Π’Ρ€ΠΈ состояния Π² Git ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ

Как Π²Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ„Π°ΠΉΠ» Π² Git ΠΌΠΎΠΆΠ΅Ρ‚ находится Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… состояний:

(На самом Π΄Π΅Π»Π΅ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, статус untracked β€” Ρ„Π°ΠΉΠ» Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².).

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git status Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡƒΠΆΠ΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, для ΠΈΡ… просмотра слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git log.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ состояния Ρ„Π°ΠΉΠ»ΠΎΠ².

Бброс состояния Ρ„Π°ΠΉΠ»ΠΎΠ²

Бброс позволяСт ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π² истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Git. ВсСго Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° сброса:

ΠŸΠΎΠ½Π°Π»Π°Ρ‡Ρƒ эта информация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ бСсполСзной, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°Ρ‡Π½Ρ‘Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ вСрсиями Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ½Π° Π²Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ пригодится. НапримСр, я для сСбя Π²Ρ‹Π΄Π΅Π»ΠΈΠ» Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ сцСнарии использования этих ΠΊΠΎΠΌΠ°Π½Π΄:

Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Π²Π΅Ρ‚ΠΎΠΊ: git checkout some-branch-name file-name.js ΠΈ git checkout <> file-name.js.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² состоянии Β«Staged for commitΒ», ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· индСкса для ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git reset HEAD file-name.js. Для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² исходноС состояниС просто Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ git checkout file-name.js Π΅Ρ‰Ρ‘ Ρ€Π°Π·.

10. Мягкая ΠΎΡ‚ΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ удобная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° Ρ‚ΠΎΡ‚ случай, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ послСдниС ΠΏΠ°Ρ€Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΏΠΎΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π² измСнСниях ΠΈ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ΅ мСсто.

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ git revert автоматичСски Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ Ρ‚Π΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΠ»ΠΈ, запросив Ρƒ вас ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ ΠΎΡ‚ΠΊΠ°Ρ‚Π°. Π€Π»Π°Π³ «-n» Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π³ΠΈΡ‚Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‚ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Π» ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ срочного ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, вСдь ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ просто ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π½ΠΈΡ….

11. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π΄ΠΈΡ„Ρ„ΠΎΠ² для всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π° Π½Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ Π·Π° Ρ€Π°Π·) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сторонних инструмСнтов

Моя любимая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² графичСском интСрфСйсС β€” Meld. Π― влюбился Π² Π½Π΅Ρ‘ Π΅Ρ‰Ρ‘ со Π²Ρ€Π΅ΠΌΡ‘Π½ Linux, ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΎΠ½Π° всСгда со ΠΌΠ½ΠΎΠΉ.

Π―, кстати, Π½Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΡ€ΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Meld. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ любимая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈ, вСроятнСС всСго, ΠΎΠ½Π° ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Git, ΠΊΠ°ΠΊ для сравнСния, Ρ‚Π°ΠΊ ΠΈ для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΎΡΡ‚ΠΎ запуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°ΠΌΠ΅Π½ΠΈΠ² Β«meldΒ» Π½Π° свою Π»ΡŽΠ±ΠΈΠΌΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ:

ПослС этого всё, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ β€” Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git difftool some-file.js для просмотра ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ вмСсто консоли.

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

12. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²

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

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Git достаточно ΡƒΠΌΡ‘Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊ Ρ‡Π΅ΠΌΡƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ git diff, git blame ΠΈ Ρ‚.Π΄.) с Ρ„Π»Π°Π³ΠΎΠΌ «-w» ΠΈ Git Π±ΡƒΠ΄Π΅Ρ‚ просто ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС измСнСния, связанныС с ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ символами (ΠΏΡ€ΠΎΠ±Π΅Π», табуляция ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅).

13. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Git явно Π½Π΅Ρ€Π°Π²Π½ΠΎΠ΄ΡƒΡˆΠ΅Π½ ΠΊ Ρ„Π»Π°Π³Ρƒ «-p«, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ добавляСт ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΡˆΡ‚ΡƒΠΊΠΈ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ.

Π’ случаС с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git add, этот Ρ„Π»Π°Π³ позволяСт Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ измСнСния ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ своих ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΏΡ€ΠΎΡ‰Π΅ Π±Ρ‹Π»ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ.

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

14. Поиск ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старых Π²Π΅Ρ‚ΠΎΠΊ

Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ±Ρ€Π°ΡΡ‚Π°ΡŽΡ‚ большим количСством Π²Π΅Ρ‚ΠΎΠΊ Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΌ Π΄Π°ΠΆΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π²ΠΌΡ‘Ρ€ΠΆΠ΅Π½Ρ‹ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (master). Если Π²Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ„Π°Π½Π°Ρ‚ чистоты (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π²ΠΎ всём, Ρ‡Ρ‚ΠΎ касаСтся ΠΊΠΎΠ΄Π°), ΠΊΠ°ΠΊ ΠΈ я, вас навСрняка Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ.

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

МоТно ΠΈΠ·ΠΎΡ‰Ρ€ΠΈΡ‚ΡŒΡΡ ΠΈ вывСсти списки всСх ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ Π² Π½ΠΈΡ… ΠΈ Π΄Π°Ρ‚Ρƒ послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

К соТалСнию, насколько я знаю, Π½Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π»Ρ‘Π³ΠΊΠΎΠ³ΠΎ способа ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список смёрТСнных Π²Π΅Ρ‚ΠΎΠΊ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ здСсь придётся ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π²Π° списка ΠΈΠ»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ для этого скрипт.

15. ΠžΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Если Π²Ρ‹ Π΅Ρ‰Ρ‘ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° git stash, Ρ‚ΠΎ ΠΎΠ½Π° просто ΠΊΠ»Π°Π΄Ρ‘Ρ‚ всС Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ измСнСния Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ стСк Git. ΠŸΠΎΡ‚ΠΎΠΌ Π²Ρ‹ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git stash pop ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС эти измСнСния Π½Π°Π·Π°Π΄. Π’Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список всСх сохранённых состояний Π² стСкС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git stash list, для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ посмотритС справку: man git-stash.

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git stash Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ нСдостаток: ΠΎΠ½Π° ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ сразу всС Ρ„Π°ΠΉΠ»Ρ‹, Π° ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ магичСский ΠΊΠ»ΡŽΡ‡ «-p«? Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git stash ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ, ΠΈ, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠΆΠ΅, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, догадались, этот ΠΏΡ€ΠΈ использовании этого ΠΊΠ»ΡŽΡ‡Π° Git ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ «?«, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ.

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π•ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ способ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ:

16. Π₯ΠΎΡ€ΠΎΡˆΠΈΠ΅ примСчания ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ

По этой Ρ‚Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ «Как ΠΏΠΈΡΠ°Ρ‚ΡŒ примСчания ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΒ».

Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ я Ρ…ΠΎΡ‡Ρƒ особо ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅: «ПослС примСнСния Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ << тСкст вашСго примСчания >>Β». НапримСр:

17. АвтодополнСния ΠΊΠΎΠΌΠ°Π½Π΄ Git

Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ubuntu), Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ для Git Π² шСллС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если Π² вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС это Π½Π΅ Ρ‚Π°ΠΊ (Π° Π² Mac OS X это Π½Π΅ Ρ‚Π°ΠΊ), Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

18. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ алиасов для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

TL;DR: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ алиасы Git ΠΈΠ»ΠΈ bash для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Git.

Π›ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Git Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку. А Π»ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒΡΡ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π΄Π΅Π»Π°Ρ‚ΡŒ всё Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠ΅ (Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹). Однако Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ алиасы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Git ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ систСму алиасов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

19. Быстрый поиск ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: git bisect

Команда git bisect ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ «раздСляй ΠΈ властвуй» для поиска ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² большой истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

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

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

НавСрняка Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π½Π°ΠΉΡ‚ΠΈ Π±Π°Π³, поломавший Π²Π°ΡˆΡƒ Ρ„ΠΈΡ‡Ρƒ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git blame Π½Π° Π·Π»ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΡŽ. Но Ссли Π±Π°Π³ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π’ΠΎΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‚ случай, ΠΊΠΎΠ³Π΄Π° пригоТдаСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° git bisect. Она позволяСт Π²Π°ΠΌ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠΈΠ΅ сроки.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ git bisect?

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ (Β«ΠΏΠ»ΠΎΡ…ΠΎΠΉΒ» ΠΊΠΎΠΌΠΌΠΈΡ‚) ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ (Β«Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉΒ» ΠΊΠΎΠΌΠΌΠΈΡ‚), git bisect Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ Π² Π½ΠΎΠ²ΡƒΡŽ (Π±Π΅Π·Ρ‹ΠΌΡΠ½Π½ΡƒΡŽ) Π²Π΅Ρ‚ΠΊΡƒ Π½Π° этом срСдинном ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ Π² Π½Ρ‘ΠΌ ваша Ρ„ΠΈΡ‡Π°.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π² этом «срСдинный» ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’ΠΎΠ³Π΄Π° Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ ΠΎΠ± этом Π³ΠΈΡ‚Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git bisect good ΠΈ Ρƒ вас останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² для поиска Ρ‚ΠΎΠ³ΠΎ самого, поломавшСго всё.

ПослС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ ΠΈ снова ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ Π² Π±Π΅Π·Ρ‹ΠΌΡΠ½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Π½ΠΎΠ²ΠΎΠΌ срСдинном ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ² Π²Π°ΠΌ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ вашСй Ρ„ΠΈΡ‡ΠΈ. И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‚ΠΎΡ‚ самый Β«ΠΏΠ»ΠΎΡ…ΠΎΠΉΒ» ΠΊΠΎΠΌΠΌΠΈΡ‚.

Благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π΄Π΅Π»ΠΈΡ‚Π΅ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ, для обнаруТСния искомого Π²Π°ΠΌ потрСбуСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ log(n) ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ (см. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°).

Бписок ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ понадобятся Π²Π°ΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git bisect:

Π”Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скрипта.

github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π€ΠΎΡ‚ΠΎ github ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

ΠŸΠ΅Ρ€Π΅Π²Ρ‘Π» Dreadatour, тСкст Ρ‡ΠΈΡ‚Π°Π» %username%.

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

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

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‡Π΅Π½ΡŒ простой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Β« simplegit Β». Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Если Π²Ρ‹ запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git log Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

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

Команда git log ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ большоС количСство ΠΎΠΏΡ†ΠΈΠΉ для поиска ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ критСриям. Рассмотрим Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС ΠΈΠ· Π½ΠΈΡ….

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ для измСнСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Π’Π°ΠΌ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ интСрСсно, какая ΠΆΠ΅ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€ΠΎΠΌ. Автор – это Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сдСлавший Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€ – это Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ послСдним ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» эту Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли Π²Ρ‹ создадитС ΠΏΠ°Ρ‚Ρ‡ для ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ этот ΠΏΠ°Ρ‚Ρ‡, Π²Ρ‹ ΠΎΠ±Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ статус участника – Π²Ρ‹ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΡ€, Π° основной Ρ‡Π»Π΅Π½ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅Ρ€. Π‘ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² Π³Π»Π°Π²Π΅ «РаспрСдСлСнный GitΒ».

Π”Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ интСрСсСн Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅, Π³Π΄Π΅ ΠΌΡ‹ рассмотрим Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ слияниС.

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

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 3 Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ эти ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ распространСнныС ΠΎΠΏΡ†ΠΈΠΈ.

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

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

Подсказка

ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ отобраТСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² слияния

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

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

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

ΠžΠΏΡ†ΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅