Π Π°Π·Π½ΠΎΠ΅

Git log file: Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ changelog ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ: руководство ΠΏΠΎ Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ changelog ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ: руководство ΠΏΠΎ Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«A Beginner’s Guide to Git β€” What is a Changelog and How to Generate itΒ».

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· своих
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΈ этом Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ вашСго прилоТСния ΠΎΠ±
осущСствлСнных Π²Π°ΠΌΠΈ измСнСниях, Π½ΠΎ Π½Π΅
Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Данная ΡΡ‚Π°Ρ‚ΡŒΡ
ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π² этом.

ΠœΡ‹ рассмотрим, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ changelog, Π° Ρ‚Π°ΠΊΠΆΠ΅
познакомимся с двумя способами Π΅Π³ΠΎ
создания β€” простым ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТным.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ changelog?

Changelog это Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится
хронологичСски упорядочСнный список
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсСнных Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Он часто
создаСтся Π½Π° основС вСрсий ПО β€” с
ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Ρ‚ ΠΈΡ… Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈ списками
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ…, исправлСнных ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ…
Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

«Журнализация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΠΏΡ€ΠΎ
Π΅ΠΊΡ‚Π° (Π°Π½Π³Π». changelog) прСдставляСт
собой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, вносимых Π² большой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
ΠžΠ±Ρ‹Ρ‡Π½ΠΎ записи ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ содСрТат
ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± исправлСнии ошибок, ΠΎ
Π½ΠΎΠ²Ρ‹Ρ… возмоТностях ΠΈ Ρ‚.Π΄.Β»
, β€” ВикипСдия.

Π’ Ρ†Π΅Π»ΠΎΠΌ, Π΅ΡΡ‚ΡŒ Π΄Π²Π° способа вСсти
changelog:

  1. простой β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ»
    ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π² Π½Π΅ΠΌ всС вносимыС
    измСнСния с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Ρ‚;
  2. «программистский» (ΠΈΠ»ΠΈ Π»Π΅Π½ΠΈΠ²Ρ‹ΠΉ) β€”
    автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ changelog ΠΈΠ·
    сообщСний ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

ΠœΡ‹ остановимся Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ способС.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ changelog?

Π― Π΄ΡƒΠΌΠ°ΡŽ, Π²Ρ‹ Π·Π°Π΄Π°Π΅Ρ‚Π΅ΡΡŒ вопросом, Π·Π°Ρ‡Π΅ΠΌ
Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ этот changelog ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΌ
стоит ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° Π΅Π³ΠΎ созданиС.

Changelog это ΠΊΠ°ΠΊ Π±Ρ‹ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС
всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ внСсли Π²
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Бписок этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½
Π±Ρ‹Ρ‚ΡŒ понятСн ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Ρ‚Π°ΠΊ ΠΈ
Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ с
вашим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

Π’ нашСм ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΌΡΡ ΠΌΠΈΡ€Π΅
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, измСнилось
Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π° сайтС ΠΈΠ»ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ,
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π°Π΄ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ интСрСсно, ΠΊΠ°ΠΊ этот
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ развиваСтся.

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ с
ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ„Π°ΠΉΠ»
CHANGELOG.md Π² GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ»
ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€ΠΎΠ² ΠΎ послСдних
обновлСниях ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π“Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ changelog-ΠΈ?

Changelog-ΠΈ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ²ΡΡŽΠ΄Ρƒ! Они ΠΌΠΎΠ³ΡƒΡ‚
ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ
Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах, Π½ΠΎ ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ
Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Π’ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ список мСст, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ
ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

  • Π’ постС Π±Π»ΠΎΠ³Π°. Changelog ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅ΡΡ‚ΠΈΡΡŒ
    Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, Π³Π΄Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ
    послСдниС измСнСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.
  • Π€Π°ΠΉΠ» CHANGELOG.md β€” Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π°
    GitHub.
  • Π Π°Π·Π΄Π΅Π» Changelog Π½Π° сайтС вашСго любимого
    ПО. НапримСр, Π²ΠΎΡ‚
    changelog инструмСнта для ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚Π°
    Π·Π°Π΄Π°Ρ‡ TickTick.
  • Π Π°Π·Π΄Π΅Π» Β«Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎΒ» (Β«What’s newΒ») Π½Π°
    страницах ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Android ΠΈ IOS store.

Π Π°Π·Π΄Π΅Π» Β«Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎΒ» прилоТСния TickTick Π½Π° Android

Π Π°Π·Π΄Π΅Π» Β«Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎΒ» прилоТСния TickTick Π½Π° IOS

АвтоматичСскоС Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
changelog-Π°

БСйчас ΠΌΡ‹ создадим наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ changelog. Π—Π°Π½ΠΈΠΌΠ°ΡΡΡŒ этой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Π² Ρ‡Π΅ΠΌ польза соблюдСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΡ€ΠΈ написании сообщСний ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅, ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅Π΅ сообщСниС
ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ β€” Π΅Π³ΠΎ
ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² changelog, ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»
changelog-Π°, Π½ΠΈΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½Π΅ ΡƒΠΊΡ€Π°ΡˆΠ°Ρ ΠΈ Π½Π΅
пСрсонализируя, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
самым простым способом ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ этот
Ρ„Π°ΠΉΠ» ΠΈΠ· сообщСний ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. НСкоторыС сайты,
Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Keep A
Changelog, ΠΏΠΎΡΡΠ½ΡΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ слСдуСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ
changelog ΠΏΡƒΡ‚Π΅ΠΌ копипаста сообщСний
git-ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (простой способ). Π― Ρ‚ΠΎΠΆΠ΅ Π½Π΅
ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ этому способу,
Ссли Π²Ρ‹ создаСтС ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ
ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚. Но сСгодня Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅
ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚
ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ваши git log-ΠΈ Π² changelog-ΠΈ (Π±ΠΎΠ»Π΅Π΅
слоТный способ).

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ гСнСрирования
changelog-Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ changelog простым
способом, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ…
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов ΠΈΠ»ΠΈ
ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий. Π’Π°ΠΌ понадобится
лишь ввСсти нСсколько ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ
Π² вашСм Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

НачнСм с напоминания. Когда Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git log, выводится вСсь список Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

$ git log
// Output
commit f6986f8e52c1f889c8649ec75c5abac003102999 (HEAD -> master, origin/master, origin/HEAD)
Author: Sam Katakouzinos [email protected]
Date:   Tue Mar 10 11:41:18 2020 +1100
docs(developers): commit message format typo Any line of the commit message cannot be longer *than* 100 characters! Closes #17006
commit ff963de73ab8913bce27a1e75ac01f53e8ece1d9
Author: Chives [email protected]
Date:   Thu Feb 6 19:05:57 2020 -0500
docs($aria): get the docs working for the service Closes #16945
commit 2b28c540ad7ebf4a9c3a6f108a9cb5b673d3712d
Author: comet [email protected]
Date:   Mon Jan 27 19:49:55 2020 -0600
docs(*): fix spelling errors Closes #16942

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько
ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠœΡ‹ ΠΈΠΌΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹
Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ
Π΅Π³ΠΎ.

ВвСдя git log β€”oneline β€”decorate, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ
список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚
Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ строчку.

$ git log --oneline --decorate
// Output
f6986f8e5 (HEAD -> master, origin/master, origin/HEAD) docs(developers): commit message format typo
ff963de73 docs($aria): get the docs working for the service
2b28c540a docs(): fix spelling errors 68701efb9 chore(): fix serving of URI-encoded files on code.angularjs.org
c8a6e8450 chore(package): fix scripts for latest Node 10.x on Windows
0cd592f49 docs(angular.errorHandlingConfig): fix typo (wether --> whether)
a4daf1f76 docs(angular.copy): fix getter/setter formatting
be6a6d80e chore(*): update copyright year to 2020
36f17c926 docs: add mention to changelog
ff5f782b2 docs: add mention to changelog
27460db1d docs: release notes for 1.7.9
add78e620 fix(angular.merge): do not merge proto property

Π’ΠΈΠ΄ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ
ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ.

$ git log --pretty=”%s”
// Output
docs(developers): commit message format typo
docs($aria): get the docs working for the service
docs(): fix spelling errors chore(): fix serving of URI-encoded files on code. angularjs.org
chore(package): fix scripts for latest Node 10.x on Windows
docs(angular.errorHandlingConfig): fix typo (wether --> whether)
docs(angular.copy): fix getter/setter formatting
chore(*): update copyright year to 2020
docs: add mention to changelog
docs: add mention to changelog
docs: release notes for 1.7.9
fix(angular.merge): do not merge proto property

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΆΠ΅Π»Π°Π½Π½ΠΎΠΌ для нас стилС. Β«%sΒ» относится ΠΊ названию ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выглядСл Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ дСфис ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ:

$ git log --pretty="- %s"
// Output
- docs(developers): commit message format typo
- docs($aria): get the docs working for the service
- docs(*): fix spelling errors
- chore(*): fix serving of URI-encoded files on code.angularjs.org
- chore(package): fix scripts for latest Node 10.x on Windows
- docs(angular. errorHandlingConfig): fix typo (wether --> whether)
- docs(angular.copy): fix getter/setter formatting
- chore(*): update copyright year to 2020
- docs: add mention to changelog
- docs: add mention to changelog
- docs: release notes for 1.7.9
- fix(angular.merge): do not merge proto property 

Π’ΠΎΡ‚ ΠΈ всС! Π’Ρ‹ создали простой changelog.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ
ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ changelog, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡ‚ΠΈΡ‚ΡŒ.
ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²
Ρ„Π°ΠΉΠ» с Π½ΡƒΠΆΠ½Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ. НапримСр,

git log --pretty="- %s" > CHANGELOG.md

Π‘ΠΎΠ»Π΅Π΅ слоТный способ
гСнСрирования changelog-Π°

Π—Π΄Π΅ΡΡŒ сама идСя β€” Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
changelog-Π° Π½Π° основС сообщСний ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² β€”
сохраняСтся, Π½ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ инструмСнтами.

ΠŸΡ€ΠΈ написании сообщСний ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
рСкомСндуСтся ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ
стиля. Π­Ρ‚ΠΈ стили зависят ΠΎΡ‚ Π½Π°Π±ΠΎΡ€Π°
ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ, Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°
ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… руководствах.
НапримСр, Π΅ΡΡ‚ΡŒ простоС руководство
ΠΎΡ‚ Udacity. Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅: Conventional
Commits, Angular
Guideline. БлСдуя прописанным Π² руководствах
ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ свои сообщСния
Π±ΠΎΠ»Π΅Π΅ структурированными.

Π₯ΠΎΡ€ΠΎΡˆΠΎ структурированныС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ
инструмСнтами для гСнСрирования
changelog-Π°. Π§Π°Ρ‰Π΅ всСго Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ
ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ
эти инструмСнты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ
Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (markdown) changelog-ΠΈ.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ
простым Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚
с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ руководств ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ
ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Он называСтся Β«generate-changelogΒ»
ΠΈ доступСн Π½Π° NPM (Node Package Manager).

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

Установка ΠΈ использованиС
generate-changelog

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ этот
инструмСнт, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρƒ вас
установлСн NPM. Если Π½Π΅Ρ‚, установитС Node
ΠΈ NPM, слСдуя
указаниям Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС.

Для установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€,
Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ npm install generate-changelog -g 
ИспользованиС

Π§Ρ‚ΠΎΠ±Ρ‹ этот инструмСнт Ρ€Π°Π±ΠΎΡ‚Π°Π», Π²Ρ‹
Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈ написании сообщСний ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ шаблоном Β«Ρ‚ΠΈΠΏ(катСгория):
описаниС [Ρ„Π»Π°Π³ΠΈ]Β». Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я Π±ΡƒΠ΄Ρƒ
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Angular.js,
ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ
ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ шаблона.

Установив ΠΏΠ°ΠΊΠ΅Ρ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π²
свой GitHub-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ changelog generate

Π€Π°ΠΉΠ» CHANGELOG.md Π±ΡƒΠ΄Π΅Ρ‚ создан автоматичСски.
Он Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ваши Π»ΠΎΠ³ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅
markdown.

НиТС прСдставлСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
(Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΊ
просмотру Π½Π° GitHub ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ
markdown-Ρ€ΠΈΠ΄Π΅Ρ€Π°).

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ changelog для своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Π°ΠΊΠΆΠ΅, надСюсь, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

наглядная справка. Как ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ систСм контроля вСрсий, ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ‚ΠΌΠΈΡ‚ΡŒ GIT Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ распространСнности. GIT Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Линусом Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ΡΠΎΠΌ Π² 2005 Π³ΠΎΠ΄Ρƒ, ΠΈ сСгодня, ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ для эффСктивного управлСния ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ контроля Π½Π°Π΄ вСрсиями своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Linux, Windows, Solaris ΠΈ Mac; большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± основах GIT ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ здСсь. Π’ этом руководствС Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ основныС GIT ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.Β 

ОписаниС

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для копирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ, сцСной, Ρ‚Π°ΠΊΠΆΠ΅ извСстной ΠΊΠ°ΠΊ «индСкс», ΠΈ историСй, прСдставлСнной Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

  • git add Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΈΡ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии Π½Π° сцСну.
  • git commit сохраняСт снимок сцСны Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.
  • git reset β€” Ρ„Π°ΠΉΠ»Ρ‹ восстанавливаСт Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° сцСнС, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π° сцСну. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсённых ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git add Ρ„Π°ΠΉΠ»Ρ‹. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git reset, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° сцСнС.
  • git checkout β€” Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ со сцСны Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. Π­Ρ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git reset -p, git checkout -p, ΠΈ git add -p вмСсто ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ вмСстС с Π½ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ измСнСния Π±ΡƒΠ΄ΡƒΡ‚ скопированы.

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

  • git commit -a Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ запуску Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄: git add для всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сущСствовали Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΈ git commit.
  • git commit Ρ„Π°ΠΉΠ»Ρ‹ создаёт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π² основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π»Π΅ΠΆΠ°Ρ‚ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, добавляя измСнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ скопированы Π½Π° сцСну.
  • git checkout HEAD β€” Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ Π½Π° сцСну, ΠΈ Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

ИспользованиС слСпков, Π° Π½Π΅ ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ

Π“Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Git ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм контроля вСрсий являСтся Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° смотрит Π½Π° Π΄Π°Π½Π½Ρ‹Π΅. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Π²ΠΈΠ΄Π΅ списка ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ‚Ρ‡Π°ΠΌΠΈ для Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Π°ΠΊΠΈΠ΅ систСмы ΠΊ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ относятся ΠΊΠ°ΠΊ ΠΊ Π½Π°Π±ΠΎΡ€Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡ€Ρƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСланы для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Как Ρ…Ρ€Π°Π½ΠΈΡ‚ свои Π΄Π°Π½Π½Ρ‹Π΅ Git? Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΅ΡΡ‚ΡŒ Π² этой систСмС, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Π΅Π΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…? ВмСсто ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ здСсь ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π½Π°Π±ΠΎΡ€ΠΎΠΌ слСпков малСнькой Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ фиксируСт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, систСма просто сохраняСт слСпок состояния Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» Π½Π΅ измСнялся, систСма Π½Π΅ сохраняСт Π΅Π³ΠΎ, Π° Π΄Π΅Π»Π°Π΅Ρ‚ ссылку Π½Π° Ρ€Π°Π½Π΅Π΅ сохранСнный экзСмпляр, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π»ΠΈ внСсСны послСдниС измСнСния.

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм контроля, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ присущС Git. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π°Π΅Ρ‚? Git становится ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ Π½Π° ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΡƒΡŽ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ инструмСнтами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½Π΅Π΅.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

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

Π•Ρ‰Π΅ локальная Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ сСти. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² транспортС. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… систСмах контроля Ρ‚Π°ΠΊΠΎΠΉ возмоТности Π½Π΅Ρ‚.

НаблюдСниС Π·Π° Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ любой Ρ„Π°ΠΉΠ», Π΅ΠΌΡƒ присваиваСтся индСкс Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы, вычислСнной нСпосрСдствСнно Git. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма? Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ рассчитываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΈΡ… Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅. Π—Π΄Π΅ΡΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±Π΅Π· Π²Π΅Π΄ΠΎΠΌΠ° Git, ΠΈ это ваТная ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ философии систСмы.

Π”Π°Π½Π½Ρ‹Π΅ Ρ‡Π°Ρ‰Π΅ всСго Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ

ΠŸΠΎΡ‡Ρ‚ΠΈ всС дСйствия, ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌΡ‹Π΅ Π² Git, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ. МоТно лишь ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΏΡ€ΠΈ Π΅Ρ‘ фиксации потСря ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π°. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Git, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ экспСримСнты Π±Π΅Π· рисков ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠΌΠΎΠ΅.

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

Π Π°Π±ΠΎΡ‚Π° с Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… состояний:

  • ЗафиксированноС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» сохранСн Π² локальном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.
  • ИзмСнСнноС, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π°Π²ΠΊΠΈ Π±Ρ‹Π»ΠΈ внСсСны, Π½ΠΎ сохранСниС Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ.
  • ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ – ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ для сохранСния.

Π’Π°ΠΊ, Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Git, имССтся Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π° для Ρ€Π°Π·Π½Ρ‹Ρ… состояний Ρ„Π°ΠΉΠ»ΠΎΠ²:

  • ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Git, Π³Π΄Π΅ хранятся ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π­Ρ‚Π° Ρ‡Π°ΡΡ‚ΡŒ систСмы самая ваТная.
  • Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • Π€Π°ΠΉΠ», содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ сохранСнии.

УстанавливаСм Git

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСму контроля вСрсий – ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π΅. БущСствуСт нСсколько способов для этого. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

  • Установка Git ΠΈΠ· исходников.
  • Установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Установка Git ΠΈΠ· исходников

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠΉ возмоТности Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° самая свСТая вСрсия. КаТдоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит мноТСство ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ИмСнно поэтому, Ссли установка ΠΈΠ· исходников Π½Π΅ слишком для вас Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ Π΅Π΅. Π”Π° ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ дистрибутивов Linux Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.

Для установки понадобятся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ: expat, curl, libiconv, openssl, zlib. ПослС ΠΈΡ… инсталляции ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ систСмы контроля вСрсий, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

Установка Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Windows

Если Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅Ρ‚ Linux, Π° хочСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git, Windows Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ эту систСму. И ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΎΡ‡Π΅Π½ΡŒ просто. БущСствуСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ msysGit, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° установки ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых простых. НСобходимо просто Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» инсталлятора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° страницС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² GitHub, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ установки Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π΅ вСрсии β€” графичСская ΠΈ консольная.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка Git

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ систСма контроля установлСна Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ дСйствия для настройки срСды ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ДСлаСтся это Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ всС настройки ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚.

Git Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ git config, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π΄Π΅Π»Π°Ρ‚ΡŒ настройки ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы, Π° Ρ‚Π°ΠΊΠΆΠ΅ внСшний Π²ΠΈΠ΄. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π² Ρ‚Ρ€Π΅Ρ… мСстах:

  • Π’ Ρ„Π°ΠΉΠ»Π΅, содСрТащСм значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².
  • Π’ Ρ„Π°ΠΉΠ»Π΅, содСрТащСм настройки ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
  • Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, находящСмся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’Π°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½Π΅Π³ΠΎ.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ имя

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ послС установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ (сохранСниС состояния) содСрТит эти Π΄Π°Π½Π½Ρ‹Π΅. Они Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π²ΠΎ всС ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ впослСдствии.

Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ –global, Ρ‚Π°ΠΊΠΈΠ΅ настройки Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Π’Ρ‹Π±ΠΎΡ€ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°

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

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ основы Git, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ настройки. Для этого примСняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° git config –list. Она Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС доступныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ смоТСт Π½Π°ΠΉΡ‚ΠΈ. НСкоторыС ΠΈΠΌΠ΅Π½Π° настроСк ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² спискС нСсколько Ρ€Π°Π·. Π­Ρ‚ΠΎ происходит ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Git считываСт ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡŽΡ‡ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ Ρ‚Π°ΠΊΠΎΠΉ ситуации для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ значСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, вписав Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ вмСсто Β«β€”listΒ» β€” Β«{ΠΊΠ»ΡŽΡ‡}Β».

Π‘Ρ‚Ρ€ΠΎΠΈΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ? ΠžΡ‚Π²Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ прост: это Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ². Папка `.git`. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ большС. Π Π°Π· 20 наблюдал ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρƒ ΠΊΠΎΠ»Π»Π΅Π³ с Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π² github/gitlab. Думая, Ρ‡Ρ‚ΠΎ это Ρ‡Π°ΡΡ‚ΡŒ git-систСмы, ΠΎΠ½ΠΈ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Ρ€ΡƒΠ°Ρ†ΠΈΠΈ git, Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ git-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
А Ссли это просто Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚ΠΎ ΠΊ Π½ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ, ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ‚ΡƒΠ΄Π° ΠΏΠΈΡΠ°Ρ‚ΡŒ? Π”Π°! Π― Π½Π°Π·Ρ‹Π²Π°ΡŽ это «транспортом». Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π½ΠΎ ΠΌΠ½Π΅ Ρ‚Π°ΠΊ Π±Ρ‹Π»ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ. Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: Β«ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…Β». Π‘Π°ΠΌΡ‹Π΅ распространённыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

  1. FILE β€” ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ прямой доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ рСпозитория.
  2. SSH β€” ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Π½Π° сСрвСрС Ρ‡Π΅Ρ€Π΅Π· ssh.
  3. HTTP(S) β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ http Π² качСствС ΠΏΡ€ΠΈΡ‘ΠΌΠ°/ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС. НС Π²Π°ΠΆΠ½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ транспорт Π±ΡƒΠ΄Π΅Ρ‚ использован, Π²Π°ΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π» доступ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ.
ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с github, ΠΈ Π½Π΅Ρ‚ Π² Π»ΠΎΠ³Π°Ρ… Π½ΠΈΠΊΠ°ΠΊΠΈΡ… подсказок, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρƒ вас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с транспортом.
Π’ частности, ΠΏΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:
git clone [email protected]:user/repo.git
ΡƒΡ€Π» «прСвращаСтся» Π²
git clone ssh://[email protected]:user/repo.git
Π’.Π΅. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ SSH ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² Π½Ρ‘ΠΌ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, это Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнный ΠΈΠ»ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ssh-ΠΊΠ»ΡŽΡ‡. Π“ΡƒΠ³Π»ΠΈΡ‚ΡŒ Π½Π°Π΄ΠΎ Π² сторону Β«SSH Auth Key gitΒ» ΠΈΠ»ΠΈ, Ссли совсСм ΠΏΠΎ взрослому, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ происходит:
ssh -vvv [email protected]
КакиС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ справка (Ρ€Π°Π·Π΄Π΅Π» GIT URLS):
git clone β€”help
Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ для Π½Π°Ρ‡Π°Π»Π° поиграСмся со своими:

  1. ΠŸΡ€ΠΈΠ΄ΡƒΠΌΠ°Π΅ΠΌ свой ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
  2. Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π΄Π²Π° ΠΊΠ»ΠΎΠ½Π° с Π½Π΅Π³ΠΎ, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (dev1 ΠΈ dev2)

ΠšΡ€ΠΎΠΌΠ΅ самого рСпозитория Π΅ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΈ workspace, Π³Π΄Π΅ хранятся Ρ„Π°ΠΉΠ»Ρ‹ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅. ИмСнно Π² этой ΠΏΠ°ΠΏΠΊΠ΅ Π»Π΅ΠΆΠΈΡ‚ сам Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (ΠΏΠ°ΠΏΠΊΠ° .git ). На сСрвСрах Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, поэтому Ρ‚Π°ΠΌ хранятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³ΠΎΠ»Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (bare-repo).
Π‘Π΄Π΅Π»Π°Π΅ΠΌ сСбС ΠΎΠ΄ΠΈΠ½ (Π±ΡƒΠ΄Π΅Ρ‚ нашим Π³Π»Π°Π²Π½Ρ‹ΠΌ тСстовым Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ):
$ mkdir git-habr #создадим ΠΏΠ°ΠΏΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ± Π½Π΅ ΠΌΡƒΡΠΎΡ€ΠΈΡ‚ΡŒ $ cd git-habr $ git init β€”bare origin Initialized empty Git repository in /home/sirex/proj/git-habr/origin/
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ нюанс, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с сСрвСром: git, понимая, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ находятся Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅, Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ссылки, Π° Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ копию. А Π½Π°ΠΌ для изучСния Π½ΡƒΠΆΠ½Π° полная копия. Для этого ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ β€”no-hardlinks ΠΈΠ»ΠΈ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»:
$ git clone β€”no-hardlinks origin dev1 Cloning into β€˜dev1’… warning: You appear to have cloned an empty repository. done. $ git clone β€”no-hardlinks origin dev2 Cloning into β€˜dev2’… warning: You appear to have cloned an empty repository. done.
Π˜Ρ‚ΠΎΠ³: Ρƒ нас Π΅ΡΡ‚ΡŒ 3 рСпозитория. Π’Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚, Π·Π°Ρ‚ΠΎ ΠΎΠ½ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅

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

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория

Для получСния ΠΊΠΎΠΏΠΈΠΈ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ рСпозитория Π½ΡƒΠΆΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° git clone. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ копию ΠΏΠΎΡ‡Ρ‚ΠΈ всСх Π΄Π°Π½Π½Ρ‹Ρ… с сСрвСра. Π­Ρ‚ΠΎ касаСтся всСх вСрсий ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠžΡ‡Π΅Π½ΡŒ удобная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² случаС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· строя сСрвСра программист смоТСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΠΎΠ½ Π½Π° любом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° сСрвСра Π² Ρ‚ΠΎ состояниС, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ Π±Ρ‹Π» ΠΏΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ восстановлСния.

Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ ΠΈ Π΅Π³ΠΎ особСнности

Командная Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±Π΅Π· обучСния ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ рСпозиториями. КаТдая модификация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° хранится Π² Π‘Π΅Ρ‚ΠΈ ΠΈΠ»ΠΈ Π½Π° сСрвСрС систСмы контроля вСрсий, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Git. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с нСбольшими отличиями ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько, ΠΈ всС ΠΎΠ½ΠΈ доступны Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ. НСкоторыС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ дСйствия Π² систСмС Git сущСствуСт нСсколько ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ копиями ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ВсС ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ основной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ β€” git remote.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Π² Git

НиТС рассмотрСн процСсс Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ Π² Git. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ систСмы приходится Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ рядом ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π° Π½Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Git позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ†Π΅Π»Ρ‹ΠΌΠΈ вСтвями ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈΠ»ΠΈ чтСния ΠΈ записи. БотрудничСство с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ людьми ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ этими ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ рСпозиториями. ИмСнно для этого Π½ΡƒΠΆΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа β€” git remote. Она являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· частСй Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ систСмы, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π·Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа

Записи, зарСгистрированныС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² сочСтании с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ git remote push, fetch ΠΈ pull. Как git fetch, Ρ‚Π°ΠΊ ΠΈ git pull ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для чтСния ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория. Команда git remote позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ рСпозиториям. НапримСр, push ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π° pull, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ. Команда fetch Π½ΡƒΠΆΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π½Π° локальной ΠΊΠΎΠΏΠΈΠΈ, ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория. ПослС Π΅Π΅ выполнСния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ссылки Π½Π° всС Π½ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находятся Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ обновлСния Π½Π΅ ΡΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π° Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

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

Команда ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа ΠΏΠΎ сути являСтся интСрфСйсом для управлСния списком записСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Ρ„Π°ΠΉΠ»Π΅ ./.git/config. Она Π½ΡƒΠΆΠ½Π° для управлСния ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ, удалСния Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…, отслСТивания ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ ΠΈ смСны адрСсов ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² (git change remote).

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Git удаляСт список Ρ€Π°Π½Π΅Π΅ сохранСнных ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ рСпозиториям. ΠŸΡ€ΠΈ этом создаСтся строка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΈΠΌΠ΅Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². Π’Ρ‹Π·ΠΎΠ² git remote с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -v ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ список ΠΈΠΌΠ΅Π½ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ рСпозитория ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ URL-адрСса. ΠžΠΏΡ†ΠΈΡ -v ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ verbose. Команда git remote add создаст Π½ΠΎΠ²ΡƒΡŽ запись соСдинСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ удалСнная запись Π±Ρ‹Π»Π° настроСна ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа, Π΅Π΅ имя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Git для связи с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа

НиТС рассмотрСны Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для управлСния рСпозиториями. ΠŸΡ€ΠΎΡΡ‚Π°Ρ запись git remote Π²Ρ‹Π΄Π°Π΅Ρ‚ список ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. БущСствуСт нСсколько Π΅Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. Команда ΡƒΠ΄ΠΎΠ±Π½Π° для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ» ./.git/config. Π’Π°ΠΊΠΆΠ΅ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Команда для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ доступа Git являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ β€œΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹β€.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ β€œΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄β€:

  1. Команда β€œgit remote add ” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. ПослС добавлСния ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ управлСния появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ярлык для Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½

Pro Git: Git ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ локального рСпозитория

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория Π² ΠΏΠ°ΠΏΠΊΠ΅ Π³Π΄Π΅ выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π°
$ git init

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅
$ git init <directory>


Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория Git для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹



$ git init —bare —share sharedproject.git

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° создаСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ sharedproject.git c ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° запись Π² Π½Π΅Π³ΠΎ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‚ΡƒΡ‚.

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
$ git clone https://github.com/n0tb0dy/RemoreBranches.git

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ
$ git clone https://github.com/n0tb0dy/RemoreBranches.git LocalBranches

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ локального рСпозитория Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ

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

1. БвязываСм Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ
$ git remote add origin https://github.com/n0tb0dy/UpRemote.git

2. Π’Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ связан с нашим
$ git remote -v

3. ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ Π²Π΅Ρ‚ΠΊΡƒ master Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ
$ git push -u origin master

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚.

Π—Π°Π΄Π°Π΅ΠΌ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡ‡Ρ‚Ρƒ

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎ для всСх ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡ
$ git config —global user.name «John Doe»
$ git config —global user.email [email protected]

Для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (эти настройки пСрСопрСдСлят Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅)
$ git config —local user.name «John Doe»
$ git config —local user.email [email protected]

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ настроСк Git

ВсСх (Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ…, систСмных ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ…). НСкоторыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ появится Π² спискС нСсколько Ρ€Π°Π·, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² настроСк. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‚ΡƒΡ‚.
$ git config —list

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
$ git config —local —list

БистСмных
$ git config —system —list

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ справки (ΠΏΠΎΠΌΠΎΡ‰ΠΈ) ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Git

$ git help <verb>
$ git <verb> —help

НапримСр Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ справку ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ config (откроСтся Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ со справкой)
$ git help config

Настройка русских ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² (cp1251) Π² Git

НастраиваСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² с русскими названиями Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Git
$ git config —local core.quotepath false

НастраиваСм ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Windows cp1251 для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Git
$ git config —local core.pager «iconv.exe -f cp1251 -t utf-8 | less»
$ git config —local i18n.commitEncoding utf8
$ git config —local i18n.logoutputencoding cp1251

Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² msysgit 1.9.5. Как Π±ΡƒΠ΄Π΅Ρ‚ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… вСрсия Π½Π΅ знаю. Но надСюсь, Ρ‡Ρ‚ΠΎ Π² Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ настройку русского языка Π² Git ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚. Π’Π°ΠΊ ΠΆΠ΅ ΠΎΠ½ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚Β Β ΠΏΡ€ΠΈ установкС Git ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Cygwin, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚.

Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ страницу для Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
$ git config —local i18n.filesEncoding windows-1251

Π½Ρƒ ΠΈΠ»ΠΈ просто строкой Π² Ρ€Π°Π·Π΄Π΅Π»Π΅Β [i18n]
filesEncoding = windows-1251

А Π²ΠΎΠΎΠ±Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ вСсти ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-8, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ состоянии Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Git

Основной инструмСнт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для опрСдСлСния, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠ°ΠΊΠΎΠΌ состоянии находятся β€” это ΠΊΠΎΠΌΠ°Π½Π΄Π°:
$ git status

И Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:
$ git status -s

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ (Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π² Ρ„Π°ΠΉΠ»Π°Ρ…) ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ ΠΈ индСксом (staged area)
$ git diff

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΈ индСксом
$ git diff —staged

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ смотрим Ρ‚ΡƒΡ‚.

Ѐиксация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΊΠΎΠΌΠΌΠΈΡ‚)

Если Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git commit Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ спСрва Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для Π²Π²ΠΎΠ΄Π° коммСнтария ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ ΠΈ послС сохранСния коммСнтария Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ ΠΊΠΎΠΌΠΌΠΈΡ‚ (фиксация ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ)
$ git commit

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Ρ‹Π»ΠΈ сдСланы измСнСния Π² ΠΊΠ°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… Π½Π°Π΄ΠΎ Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
$ git commit -v

По сущСству ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π΄Π΅Π»ΡŒΡ‚Π° diff ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ смоТСтС Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всё, Ρ‡Ρ‚ΠΎ сдСлано.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π½Π΅ вызывался, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ прямо Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π² ΠΊΠ»ΡŽΡ‡Π΅ -m
$ git commit -m «Commit Comment»

АвтоматичСски Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚
$ git commit -a

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Git
По сущСству это ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· отслСТиваСмых. Если Ρ„Π°ΠΉΠ» ΡƒΠΆΠ΅ Π±Ρ‹Π» Π΄ΠΎ этого Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½ Π² Git, Ρ‚ΠΎ ΠΈΠ· старых ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π΅Π³ΠΎ ΠΏΠΎ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· отслСТиваСмых Git, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π΅Π³ΠΎ физичСскоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°
$ git rm <file_name>

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ проиндСксированного ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
$ git rm -f <file_name>

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· индСкса, Π½ΠΎ сохранСниС Π΅Π³ΠΎ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅
$ git rm —cached <file_name>

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ смотрим Ρ‚ΡƒΡ‚.

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°

$ git mv <old_file_name> <new_file_name>

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

Π‘Π°ΠΌΡ‹ΠΉ простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ это git log с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ (смотрим help). Π’ΡƒΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ просто ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. А ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‚ΡƒΡ‚ ΠΈΠ»ΠΈ Π² ΠΌΠ°Π½ΡƒΠ°Π»Π΅.

Π’Ρ‹Π²ΠΎΠ΄ простой истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
$ git log

Π’Ρ‹Π²ΠΎΠ΄ послСдних n записСй, Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π²ΠΎΠ΄ Π΄Π²ΡƒΡ… послСдних записСй
$ git log -2

Π’Ρ‹Π²ΠΎΠ΄ Π΄Π΅Π»ΡŒΡ‚Ρ‹ (diff) Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ послСдними двумя измСнСниями (Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ строк)
$ git log -p -2

Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя послСдними ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ слов
$ git log -p -2 —word-diff

Π’Ρ‹Π²ΠΎΠ΄ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠΉ статистики ΠΏΠΎ 2 послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ
$ git log -2 —stat

И ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ —pretty (позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Π»ΠΎΠ³Π°)
$ git log —pretty=oneline

$ git log —pretty=format:»%h — %an, %ar : %s»

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡Π° format

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

МоТно Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ASCII Π³Ρ€Π°Ρ„ Π²Π΅Ρ‚ΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ —graph
$ git log —pretty=format:»%h Β %s» —graph

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

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ строку MyStringForSearch
$ git log -SMyStringForSearch

Бписок ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с Ρ…ΡΡˆΠ΅ΠΌ (ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ число)
$ git log —oneline

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

ИзмСнСниС коммСнтария ΠΊ послСднСму ΠΊΠΎΠΌΠΈΠΈΡ‚Ρƒ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли послС послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈ ΠΊΠ°ΠΊΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅
$ git commit —amend

ΠžΡ‚ΠΌΠ΅Π½Π° индСксации Ρ„Π°ΠΉΠ»Π° (ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· индСкса)
$ git reset HEAD <file>

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»Π° (Π΄ΠΎ внСсСния Ρ„Π°ΠΉΠ»Π° Π² ΠΊΠΎΠΌΠΌΠΈΡ‚)
$ git checkout — <file>

Π‘ этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½Π°Π΄ΠΎ Π±Ρ‹Ρ‚ΡŒ особо остороТным, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‚ΡƒΡ‚.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π· ΠΈ навсСгда послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π•Π³ΠΎ большС Π½ΠΈ ΠΊΡ‚ΠΎ Π½ΠΈ ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚. И Π²Ρ‹ Π² Ρ‚ΠΎΠΌ числС :). ΠŸΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. ВсС измСнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π² послСднСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‚ утСряны. Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ это Π΄Π΅Π»Π°Ρ‚ΡŒ.
$ git reset —hard HEAD~1

Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ рСпозиториями

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²
$Β git remote

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΎ Π½ΠΈΡ…
$Β git remote -v

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория (вмСсто origin ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ любоС слово)
$ git remote add origin https://github.com/n0tb0dy/UpRemote.git
$ git remote add tr https://github.com/n0tb0dy/UpRemote.git

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ tr Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ tr
$ git fetch tr

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π€ΠΎΡ€ΠΌΠ°Ρ‚Β git push [ΡƒΠ΄Π°Π». сСрвСр] [локальная Π²Π΅Ρ‚ΠΊΠ°]
$ git push origin master

Π˜Π½ΡΠΏΠ΅ΠΊΡ†ΠΈΡ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория git remote show [ΡƒΠ΄Π°Π». сСрвСр]
$ git remote show origin

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² (ΠΏΠΎ сущСству ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ локальной ссылки Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ)
$ git remote rename <old_name> <new_name>
$ git remote rename tr newtr

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория πŸ™‚ (попросту ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ — Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΡ‚ origin)
$Β git remote rm origin

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ рСпозиториями Ρ‚ΡƒΡ‚.

Если Ρƒ вас свой собствСнный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git Π½Π° сСрвСрС с само подписанным сСртификатом, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρƒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ (clone, fetch, push, pull ΠΈ Ρ‚.ΠΏ.), Git Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ Π½Π° само подписанный сСртификат. Π Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Ρ‡ΡƒΡ‚ΠΎΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³
$ git config —local http.sslVerify false

Или ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
$ git -c http.sslVerify=false push origin newbranch

А Π²ΠΎΠΎΠ±Ρ‰Π΅ настройка своСго сСрвСра Git это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅ΠΌΠ°. Частично рассмотрСна ΠΌΠ½ΠΎΠΉ Ρ‚ΡƒΡ‚.

Π Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ
$ git branch

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ
$ git branch –v

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
$ git branch –a

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ послСдниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° всСх Π²Π΅Ρ‚ΠΊΠ°Ρ… (Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ…)
$ git branch –a -v

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ отслСТиваСмыС Π²Π΅Ρ‚ΠΊΠΈ
$ git branch –vv

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ serverfix отслСТиваСмой
$ git branch -u origin/serverfix

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ
$ git branch <имя_Π²Π΅Ρ‚ΠΊΠΈ>

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅
$git branch new_branch 5a0eb04

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ
git branch -m <oldname> <newname>

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ
git branch -m <newname>

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ
$ git checkout <имя_Π²Π΅Ρ‚ΠΊΠΈ>


Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ сразу ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ Π½Π° Π½Π΅Π΅
$ git checkout -b <имя_Π²Π΅Ρ‚ΠΊΠΈ>


БлияниС Π²Π΅Ρ‚ΠΎΠΊ (Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ находимся Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ master ΠΈ сливаСм с Π½Π΅ΠΉ Π²Π΅Ρ‚ΠΊΡƒ hotfix)
$ git checkout master
$ git merge hotfix

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ
$ git branch -d <имя_Π²Π΅Ρ‚ΠΊΠΈ>


Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ serverfix Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС
$ git push origin —delete serverfix

Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС (пСрСчисляСт Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС, Π° Π½Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΡ… создания)
$ git tag

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ маску
$ git tag -l ‘v1.4.2.*’

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ (ΠΊΠ»ΡŽΡ‡ -Π°) с ΠΌΠ΅Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ сообщСниСм (ΠΊΠ»ΡŽΡ‡ -m)
$ git tag -a v1.4 -m ‘my version 1.4’

Если ΠΊΠ»ΡŽΡ‡ -m Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎ откроСтся ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ввСсти сообщСниС

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ лСгковСсной ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅
$ git tag <имя_ΠΌΠ΅Ρ‚ΠΊΠΈ>
$ git tag MyTAG

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ вмСстС с коммСнтариями ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΠ²ΡˆΠΈΡ… ΠΌΠ΅Ρ‚ΠΊΠΈ
$ git show <tag>
$ git show MyTAG

Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ Π½Π° ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΌΠ΅Ρ‚ΠΊΠ°Ρ… Ρ‚ΡƒΡ‚.

Π—Π°Π΄Π°Π½ΠΈΠ΅ псСвдонимов для ΠΊΠΎΠΌΠ°Π½Π΄ Git

ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… Git, Ρ‚Π°ΠΊ ΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Bash, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°.

Π—Π°Π΄Π°Π½ΠΈΠ΅ псСвдонимов Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°Ρ… Git

$ git config —global alias.co checkout
$ git config —global alias.br branch
$ git config —global alias.ci commit
$ git config —global alias.st status

Π’Π΅ΠΏΠ΅Ρ€ΡŒ достаточно Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
$ git co
$ git br
$ git ci
$ git st

Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π΄Π°Π½ΠΈΠ΅ алиасов Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ Git ΠΌΡ‹ Π½Π΅ избавляСмся ΠΎΡ‚ нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git, Π½ΠΎ всС ΠΆΠ΅ это ΠΊΠΎΡ€ΠΎΡ‡Π΅.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π² эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹
$ git config —global alias.unstage ‘reset HEAD —‘

Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ эквивалСнтными ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
$ git unstage fileA
$ git reset HEAD fileA

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎ алисы Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°Ρ… Git Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ‚ΡƒΡ‚.

Об алиасах Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Bash Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ‚ΡƒΡ‚.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…

$ git diff ffd6b37 c258082 —cc test.txt

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ExamDiffPro ΠΈ P4Merge

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ измСнСния Ρ„Π°ΠΉΠ»Π° test.txt ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ
$ git difftool 9491cc8 02c1df6 —tool=edp —cc test.txt
$ git difftool 9491cc8 02c1df6 —tool=p4m —cc test.txt

БлияниС (merge)

Бамая главная ΠΈ нуТная ΠΊΠΎΠΌΠ°Π½Π΄Π° слияния, это ΠΎΡ‚ΠΌΠ΅Π½Π° слияния πŸ™‚
$ git merge —abort

Всяко Ρ€Π°Π·Π½ΠΎ

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории пСрСмСщСния указатСля HEAD
$ git reflog

РазбираСмся с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ diff ΠΈ show

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚. ΠœΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π³ΠΈΡ‚. И Π΄Π°Π²Π°ΠΉΡ‚Π΅ напишСм ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² наш Ρ„Π°ΠΉΠ» 1.js, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅.

function addNumber(a,b) {
  return a + b;
}

Если ΠΌΡ‹ напишСм git status, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π³ΠΈΡ‚ Π²ΠΈΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим ΠΊΠ°ΠΊ Π³ΠΈΡ‚ Π²ΠΈΠ΄ΠΈΡ‚ наши измСнСния. Для этого Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

git diff

Нам Π² консоль вывСлся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½. Π—Π΅Π»Π΅Π½Ρ‹ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ строчки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹, Π° красным ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹. БСйчас ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π΅Π»Π΅Π½Ρ‹Π΅ строчки.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠΌ наши измСнСния ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅. Для этого напишСм

git add 1.js

Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наши измСнСния.

git commit -m "Added addNumber function"

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Если ΠΌΡ‹ напишСм git log, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас сСйчас ΡƒΠΆΠ΅ 2 ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ с ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ.

Если Π²Π΄Ρ€ΡƒΠ³ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρƒ нас ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git show ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ id ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

git show ID

И Π½Π° экранС ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° смотрСли Π΄ΠΈΡ„Ρ„ Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ отнимания

function deductNumber (a, b) {
  return a - b;
}

Если ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ напишСм git diff, Ρ‚ΠΎ Π½Π°ΠΌ вывСдСмтся Π² консоль красным Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ, Π° Π·Π΅Π»Π΅Π½Ρ‹ΠΌ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ.
ΠœΡ‹ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ слово add ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ deduct, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΡ‹ помСняли плюс Π½Π° минус. И Π³ΠΈΡ‚ всС эти измСнСния Ρ‚Ρ€Π΅ΠΊΠ°Π΅Ρ‚.
Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠΌ это измСнСния Ρ‚ΠΎΠΆΠ΅.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ сразу всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ git add .

git add .
git commit -m "Changed addNumber to deductNumber"

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Π³ΠΈΡ‚ позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ послСд

Руководство ΠΏΠΎ Git. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. – PROSELYTE

Π’ процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ситуациСй, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Для этих Ρ†Π΅Π»Π΅ΠΉ Π² Git прСдусмотрСна ΠΊΠΎΠΌΠ°Π½Π΄Π°:


 git log


ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² нашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅:


git log

commit 11f75b7bc8884203624ba1d552438d57a7c3559d
Author: Eugene Suleimanov <[email protected]>
Date:   Wed Aug 17 19:15:53 2016 +0300

    Adding .gitignore file.

commit 5e0298b007582bec3a8f4f68db74ba4ddfa40838
Author: Eugene Suleimanov <[email protected]>
Date:   Wed Aug 17 19:15:21 2016 +0300

    Adding .gitignore file

commit 97d5de493ac15f821b109b7b0375d4f94e1f2dd1
Author: Eugene Suleimanov <[email protected]>
Date:   Wed Aug 17 19:10:41 2016 +0300

    Adding classes Developer.java and Project.java

commit a0f051aa654aa43db508f460b5bd28e8a41fe2ae
Author: Eugene Suleimanov <[email protected]>
Date:   Wed Aug 17 17:43:12 2016 +0300

    Initial commit of the project.

commit 0853db5f06305eae525b954f587ecc49c62debd9
Author: Eugene Suleimanov <[email protected]>
Date:   Wed Aug 17 17:41:35 2016 +0300

    Initial commit of the project

commit 5e8179a97b971f8fd11118e64f4d624b5ddf3ea6
Author: Eugene Suleimanov <[email protected]>
Date:   Wed Aug 17 17:20:53 2016 +0300

    Initial commit of the project

commit 3c199cf96dba9131bb3df299aa819b9cbef6a870
Author: Eugene Suleimanov <[email protected]>
Date:   Wed Aug 17 17:20:27 2016 +0300

    Initial commit of the project
(END)



Π—Π΄Π΅ΡΡŒ число рядом со словом commit – это SHA-1 ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ID ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ SHA-1 ID ΠΊΠΎΠΌΠΌΠΈΡ‚Π°) ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:



git show 11f75b7bc8884203624ba1d552438d57a7c3559d

commit 11f75b7bc8884203624ba1d552438d57a7c3559d
Author: Eugene Suleimanov <[email protected]>
Date:Β Β  Wed Aug 17 19:15:53 2016 +0300

Adding .gitignore file.

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index a4cab11..b0392f8 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,9 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
-Β Β Β  <list default="true" name="Default" comment="">
-Β Β Β Β Β  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
-Β Β Β  </list>
+Β Β Β  <list default="true" name="Default" comment="" />
<ignored path="GitTutorial.iws" />
<ignored path=".idea/workspace.xml" />
<ignored path="$PROJECT_DIR$/out/" />
@@ -690,12 +688,12 @@
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1471442570577</updated>
-Β Β Β Β Β  <workItem from="1471442574162" duration="5174000" />
+Β Β Β Β Β  <workItem from="1471442574162" duration="5219000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
-Β Β Β  <option name="totallyTimeSpent" value="5174000" />
+Β Β Β  <option name="totallyTimeSpent" value="5219000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="24" extended-state="6" />


Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ всСгда ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ всСм измСнСниям Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

На этом ΠΌΡ‹ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ рассмотрСниС процСсса просмотра истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим процСсс подтвСрТдСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (опСрация commit).

Пошаговая инструкция ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с систСмой контроля вСрсий GIT ΠΈ сСрвисом GitHub для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

НавСрняка ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ систСмС контроля вСрсий git. БСгодня ΠΌΡ‹ рассмотрим вСсь ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ установки git Π΄ΠΎ внСсСния своих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OsEngine.Для Π½Π°Ρ‡Π°Π»Π° скачаСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚ git ΠΏΠΎ ссылкС ΠΈ установим Π΅Π³ΠΎ. Вопросов Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅
Π΄ΠΎΠ»ΠΆΠ½ΠΎ, просто Π²Π΅Π·Π΄Π΅ ΠΆΠΌΠ΅ΠΌ Next. Π”Π°Π»Π΅Π΅ взаимодСйствиС с git Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° сайтС https://github.com/. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ OsEngine. Для этого ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Π½Π°ΠΆΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Fork.

Π­Ρ‚ΠΈΠΌ дСйствиСм ΠΌΡ‹ создали fork (Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π½ΠΈΠ΅), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ хранится Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ нашСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ измСнСния, Π½Π΅ опасаясь Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π”Π°Π»Π΅Π΅ этот самый наш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° github ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ приступим ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с самим git ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория. Для этого ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΆΠ΅Π»Π°Π΅ΠΌΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ, Π² контСкстном мСню Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ Git Bash Here ΠΈ Ρƒ нас откроСтся консоль.

Π”Π°Π»ΡŒΡˆΠ΅ ΠΈΠ΄Π΅ΠΌ Π½Π° github Π² наш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Clone or download (1) ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 2 Π½Π° снимкС.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ссылка Π½Π° Ρ€Π΅ΠΏΠΎΠ·Ρ‚ΠΎΡ€ΠΈΠΉ скопируСтся Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°. ВозвращаСмся ΠΊ консоли ΠΈ выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ git clone «Π·Π΄Π΅ΡΡŒ вставляСм ссылку Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ»

НачнСтся процСсс копирования ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ рабочая копия с ΠΈΠΌΠ΅Π½Π΅ΠΌ OsEngine.

Π Π°Π±ΠΎΡ‚Π° с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ

Настройка git

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ git bash, Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ:

$ git config —global user.name β€œΠ²Π°ΡˆΠ΅ имя”
$ git config —global user.email β€œΠ²Π°ΡˆΠ° почта”

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ позволяСт ΠΊΠΎΠΌΠ°Π½Π΄Π°:

$ git config —global —list


Π Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

Π’Π΅Ρ‚ΠΊΠΈ Π² git это Ρ‚ΠΎΠΆΠ΅ самоС Ρ‡Ρ‚ΠΎ ΠΈ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° github. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π² консоли ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ git branch ТСлаСмоС имя

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° эту Π²Π΅Ρ‚Π²ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ git checkout имя Π²Π΅Ρ‚ΠΊΠΈ

для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅:

$ git checkout master

ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ:

$ git branch –m Π½ΠΎΠ²ΠΎΠ΅ имя

ΠΊΠΎΠΌΠ°Π½Π΄Π° $ git branch позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ сСйчас находимся. УдаляСт Π²Π΅Ρ‚ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°

$git branch –D имя Π²Π΅Ρ‚ΠΊΠΈ

слияниС Π²Π΅Ρ‚ΠΊΠΈ с основной выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

$ git merge имя Π²Π΅Ρ‚ΠΊΠΈ

ΠŸΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈ слияния Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· этой ситуации, Π½Π°Π΄ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эти Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹

Вся ΡΡƒΡ‚ΡŒ использования git Π² commits (ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹). ΠšΠΎΠΌΠΌΠΈΡ‚ – это Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ снимок состояния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ этапС
Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НапримСр: Ρƒ нас Π΅ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° OsEngine, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²
Π½Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΠ»ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ» Π²
Π΄Π²ΠΈΠΆΠΊΠ΅ ΠΈ послС этого ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡ€Π°ΡˆΠΈΡ‚ΡΡ ΠΈΠ»ΠΈ Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹
Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ лишнюю Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π½Π΅ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ всС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто напросто
ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. БоотвСтствСнно
вся Ρ€Π°Π±ΠΎΡ‚Π° с git крутится Π²ΠΎΠΊΡ€ΡƒΠ³ создания, удалСния, рСдактирования, слияния
ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈ Π²Π΅Ρ‚ΠΎΠΊ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² индСкс

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

$ git add README

ΠΈ Ρ„Π°ΠΉΠ» README Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² индСкс, Ссли Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚ΠΎ выполняСм

$ git add .

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, ΠΈΠΌΠ΅Π½Π½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π΅ΠΉ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· индСкса

Если Π²Ρ‹ случайно проиндСксировали Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‚ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· индСкса ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° git reset, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» README ΠΈΠ· индСкса:

$ git reset README

Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ΡƒΠΌΠ°Π»ΠΈ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ измСнСния внСсСнныС Π² Ρ„Π°ΠΉΠ», Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

$ git checkout — имя Ρ„Π°ΠΉΠ»Π°

ΠΈ ΠΎΠ½ вСрнСтся Π² Ρ‚ΠΎ состояниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находился Π²ΠΎ врСмя послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ всС измСнСния Π² этом Ρ„Π°ΠΉΠ»Π΅ исчСзнут.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ измСнСния, дСлаСтся это ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ git commit –m β€œΠ—Π΄Π΅ΡΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² кавычках”

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ коммСнтария являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм. Π˜ΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

$ git log

$ git show ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС измСнСния. Для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° просмотра Π½Π°ΠΆΠΌΠΈΡ‚Π΅ q.

Π’ git Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС измСнСния ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

$ git commit –a –m β€œΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² кавычках”

-a ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС измСнСния Π² индСкс Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.
-m: ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ git revert HEAD

ΠžΡ‚ΡΡ‡Π΅Ρ‚ ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² вСдСтся с 0 начиная с послСднСго, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Ρ‚ΠΎ слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

$ git revert HEAD~2

Команда $ git reset —soft HEAD~3 ΡƒΠ΄Π°Π»ΠΈΡ‚ 3 послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² состояниС Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΏΡ€ΠΈ этом сохранив Π² индСксС всС измСнСния послСдних Ρ‚Ρ€Π΅Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

$ git reset — hard HEAD~3

ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ Ρ‚Ρ€ΠΈ послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

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

$ git status – основная ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ состояниС Ρ„Π°ΠΉΠ»ΠΎΠ². Она ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅ΡΡ‚ΡŒ Π»ΠΈ измСнСния Π² отслСТиваСмых Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΠ»ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ отслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ². ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ – это Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² ΠΏΡ€Π΅Π΄ΠΈΠ΄ΡƒΡ‰Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Если ΠΆΠ΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π½Π΅ отслСТиваСмым.

ВнСсСниС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
ДСлаСтся это Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ git push origin master

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

$ git pull


ИспользованиС SSH ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ нСобходимости ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SSH ΠΊΠ»ΡŽΡ‡ΠΈ. Для Π½Π°Ρ‡Π°Π»Π° ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π°Π΄ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ ssh-keygen

Π”Π°Π»Π΅Π΅ 3 Ρ€Π°Π·Π° Π½Π°ΠΆΠ°Ρ‚ΡŒ enter ΠΈ Π² Π΄ΠΈΡ€Ρ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ C:\Users\имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ\.ssh ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΠ°ΠΏΠΊΠ° с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ. НуТно ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»
id_rsa Ρ‚ΠΈΠΏΠ° PUB Π² любом тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ содСрТимоС. Π—Π°Ρ‚Π΅ΠΌ ΠΈΠ΄Π΅ΠΌ Π½Π° github Π² настройки своСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи

ПослС Ρ‡Π΅Π³ΠΎ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ слСва Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚: SSH and GPG keys ΠΈ ΠΆΠΌΠ΅ΠΌ Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ справа New SSH key

Π·Π°Π΄Π°Π΅ΠΌ Title, Π² ΠΏΠΎΠ»Π΅ Key вставляСм Π΄Π°Π½Π½Ρ‹Π΅, скопированныС ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π° ΠΈ ΠΆΠΌΠ΅ΠΌ

БлияниС Π²Π΅Ρ‚ΠΎΠΊ Π½Π° github

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ внСсли всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния Π² свой ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос Π½Π° слияниС с Π³Π»Π°Π²Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OsEngine. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ New pull request

Π° Π·Π°Ρ‚Π΅ΠΌ

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git, ΠΈΡ… Ρ…Π²Π°Ρ‚ΠΈΡ‚ для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ OsEngine, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ git ΠΈ сСрвис github.

Π£Π΄Π°Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²!

git-log — ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ фиксации — страница руководства

— follow

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ пСрСчислСниС истории Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· пСрСимСнования (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°).

—no-decorate, —decorate [= short | full | auto | no]

РаспСчатайтС ссылочныС ΠΈΠΌΠ΅Π½Π° всСх ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Если ΡƒΠΊΠ°Π·Π°Π½ΠΎ short , прСфиксы ΠΈΠΌΠ΅Π½ ссылок refs / Heads / , refs / tags / ΠΈ refs / remotes / Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Ρ‹. Если ΡƒΠΊΠ°Π·Π°Π½ΠΎ full , Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя ссылки (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ прСфикс).Если ΡƒΠΊΠ°Π·Π°Π½ΠΎ auto , Ρ‚ΠΎ, Ссли Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ΄Π΅Ρ‚ Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», ΠΈΠΌΠ΅Π½Π° ссылок ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ Π±Ρ‹Π»ΠΈ Π·Π°Π΄Π°Π½Ρ‹ short , Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΈΠΌΠ΅Π½Π° ссылок Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ — ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ .

—decorate-refs = , —decorate-refs-exclude =

Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ —decorate-refs , сдСлайтС Π²ΠΈΠ΄, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ всС ссылки. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ для ΡƒΠΊΡ€Π°ΡˆΠ΅Π½ΠΈΡ, Ссли ΠΎΠ½ соотвСтствуСт ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ шаблонам, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ для —decorate-refs-exclude , ΠΈΠ»ΠΈ Ссли ΠΎΠ½ Π½Π΅ соотвСтствуСт Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· шаблонов, Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… для —decorate-refs .ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ log.excludeDecoration позволяСт ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ссылки ΠΈΠ· Π΄Π΅ΠΊΠΎΡ€Π°Ρ†ΠΈΠΉ, Π½ΠΎ явный шаблон —decorate-refs ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ совпадСниС Π² log.excludeDecoration .

—source

РаспСчатайтС имя ссылки, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»Π° достигнута каТдая фиксация.

— [no-] mailmap, — [no-] use-mailmap

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» mailmap для сопоставлСния ΠΈΠΌΠ΅Π½ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‚Π΅Ρ€ΠΎΠ² ΠΈ адрСсов элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ с каноничСскими Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ адрСсами элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹.Π‘ΠΌ. Git-shortlog (1).

—full-diff

Π‘Π΅Π· этого Ρ„Π»Π°Π³Π° git log -p ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ, ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π΅ ΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ. ΠŸΡ€ΠΈ этом отобраТаСтся полная Ρ€Π°Π·Π½ΠΈΡ†Π° для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ; это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Β« …Β» ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ для этих ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это влияСт Π½Π° всС Ρ‚ΠΈΠΏΡ‹ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° основС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ — стат ΠΈ Π΄Ρ€.

—log-size

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ строку Β«Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΆΡƒΡ€Π½Π°Π»Π° Β» Π² Π²Ρ‹Π²ΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ фиксации, Π³Π΄Π΅ — Π΄Π»ΠΈΠ½Π° сообщСния этой фиксации Π² Π±Π°ΠΉΡ‚Π°Ρ…. ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ сообщСния ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π° git log , позволяя ΠΈΠΌ Π·Π°Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ мСсто.

-L <Π½Π°Ρ‡Π°Π»ΠΎ>, <ΠΊΠΎΠ½Π΅Ρ†>: <Ρ„Π°ΠΉΠ»>, -L: <имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ>: <Ρ„Π°ΠΉΠ»>

ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡŽ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° строк, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Β«<Π½Π°Ρ‡Π°Π»ΠΎ>, <ΠΊΠΎΠ½Π΅Ρ†>Β» (ΠΈΠ»ΠΈ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ regex ) Π²Π½ΡƒΡ‚Ρ€ΠΈ .Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΠΈ pathspec. Π’ настоящСС врСмя это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ, начиная с ΠΎΠ΄Π½ΠΎΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ, Ρ‚.Π΅. Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ноль ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ, Π° ΠΈ (ΠΈΠ»ΠΈ ) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ эту ΠΎΠΏΡ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ΡΡ — ΠΏΠ°Ρ‚Ρ‡ . Π’Ρ‹Π²ΠΎΠ΄ ΠΏΠ°Ρ‚Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ —no-patch , Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ —raw , —numstat , —shortstat , —dirstat , —summary , —name-only , —name-status , —check ) Π² настоящСС врСмя Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹./ regex / Β», поиск Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°. Если являСтся рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, поиск Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, начиная со строки, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ .

  • + смСщСниС ΠΈΠ»ΠΈ -смСщСниС

    Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ количСство строк Π΄ΠΎ ΠΈΠ»ΠΈ послС строки, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ .

  • Если вмСсто ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Β«: Β», это рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки funcname, которая соотвСтствуСт , Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки funcname .: »выполняСт поиск с Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°.

    <Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΉ>

    ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΉ. Если <Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΉ> Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ HEAD (Ρ‚.Π΅. вся история, вСдущая ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ фиксации). origin..HEAD ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, доступныС ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ HEAD ), Π½ΠΎ Π½Π΅ ΠΈΠ· origin . ΠŸΠΎΠ»Π½Ρ‹ΠΉ список способов написания <Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ> см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² gitrevisions (7).

    [-] <ΠΏΡƒΡ‚ΡŒ> …

    ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ появились Ρ„Π°ΠΉΠ»Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ путям. Π‘ΠΌ. Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ истории Π½ΠΈΠΆΠ΅ для получСния ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² упрощСния.

    ΠŸΡƒΡ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½ΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π² прСфиксС , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… ΠΎΡ‚ ΠΎΠΏΡ†ΠΈΠΉ ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π°.

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ фиксации

    Помимо указания Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ пСрСчислСны с использованиСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠ±ΡŠΡΡΠ½Π΅Π½Π½Ρ‹Ρ… Π² описании, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ фиксации.

    ИспользованиС большСго количСства ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, —since = ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½ΠΎΠ²Π΅Π΅, Ρ‡Π΅ΠΌ , ΠΈ использованиС Π΅Π³ΠΎ с —grep = Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ограничСния для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‡ΡŒΠΈ сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° содСрТит строку, которая соотвСтствуСт <шаблон> ), Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΠ½ΠΎΠ΅.

    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ упорядочивания ΠΈ форматирования фиксации, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ —reverse .

    — <число>, -n <число>, —max-count = <число>

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² для Π²Ρ‹Π²ΠΎΠ΄Π°.

    —skip =

    ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ фиксации.

    —since = , —after =

    ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅, Ρ‡Π΅ΠΌ указанная Π΄Π°Ρ‚Π°.

    —until = <Π΄Π°Ρ‚Π°>, —before = <Π΄Π°Ρ‚Π°>

    ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΡΡ‚Π°Ρ€ΡˆΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹.

    —author = , —committer =

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚Π΅ΠΌΠΈ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строки Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π°Π²Ρ‚ΠΎΡ€Π° / ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‚Π΅Ρ€Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ (рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ).Π‘ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΈΠΌ —author = Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π°Π²Ρ‚ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соотвСтствуСт Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… шаблонов (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… —committer = ).

    —grep-reflog =

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚Π΅ΠΌΠΈ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… записи reflog ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ (рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ). Π‘ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΈΠΌ —grep-reflog Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, сообщСниС reflog ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соотвСтствуСт Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… шаблонов. ИспользованиС этой ΠΎΠΏΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ошибкой, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ —walk-reflogs .

    —grep =

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚Π΅ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° соотвСтствуСт ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ (рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ). Π‘ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΈΠΌ —grep = Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, сообщСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соотвСтствуСт Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… шаблонов (Π½ΠΎ см. —all-match ).

    Когда дСйствуСт —notes , сообщСниС ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ сопоставляСтся, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ‡Π°ΡΡ‚ΡŒΡŽ сообщСния ΠΆΡƒΡ€Π½Π°Π»Π°.

    —all-match

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ всСм Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ —grep , вмСсто Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠΌΡƒ.

    —invert-grep

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат сообщСния ΠΆΡƒΡ€Π½Π°Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² —grep = .

    -i, —regexp-ignore-case

    БопоставлСниС шаблонов ограничСния рСгулярного выраТСния Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра Π±ΡƒΠΊΠ².

    —basic-regexp

    Π‘Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ рСгулярными выраТСниями; это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

    -E, —extended-regexp

    Π‘Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ рСгулярными выраТСниями вмСсто Π±Π°Π·ΠΎΠ²Ρ‹Ρ… рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

    -F, —fixed-strings

    Π‘Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ фиксированными строками (Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ шаблон ΠΊΠ°ΠΊ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅).

    ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги с git: clone, add, commit, push | Наука ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π—Π΅ΠΌΠ»Π΅