Π Π°Π·Π½ΠΎΠ΅

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ git: git — Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Π·Π°Π»ΠΈΡ‚ΡŒ измСнСния

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

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² Git

Π’Π΅Ρ‚Π²ΠΈ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ контроля вСрсий Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ Π² частности Π² Git. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… рассказываСтся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²Π΅Ρ‚ΠΊΠ° ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтов.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git Branch?

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

Бвязанный: Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΠΈ Git для структурирования вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° программирования

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Git, Π²Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с основной Π²Π΅Ρ‚ΠΊΠΎΠΉ, Π·Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΎΠ± этом ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π­Ρ‚ΠΎ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ вашСй Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ , Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ , ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΈΠ»ΠΈ HEAD . Π’ любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ с этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Git Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Π½ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Π΅ΠΌΡƒ ΠΏΠΎΡƒΡ‡ΠΈΡ‚ΡŒΡΡ. Если Π²Π°ΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π² man-страницах ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git, это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git branch <branchname>, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ:

 $ git branch dev
Branch 'dev' set up to track local branch 'master'.

Π­Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚Π²ΠΈ, поэтому ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Ρ‚Ρƒ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ новая Π±Ρ‹Π»Π° создана, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git branch Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²:

 $ git branch
1 dev
2 * master

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π² Ρ‚ΠΎΠΌ числС, ΠΊΠ°ΠΊΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ отслСТиваСт другая, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„Π»Π°Π³ -vv :

 $ git branch -vv
1 dev d1a9e5b [master] commit comment
2 * master d1a9e5b commit comment

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ фиксации, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 fatal: Not a valid object name: 'master'. 

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ с ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 fatal: A branch named 'dev' already exists.

Команда git branch создаСт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Π½Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ сСйчас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅. Однако ваша рабочая копия ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ создали, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git checkout :

 git checkout dev

Π’Π΅Ρ€ΠΌΠΈΠ½ Β« ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Β» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΠ²Π°Ρ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ, Ссли Π²Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ систСмам контроля вСрсий; Π² Git ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° относится ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ послС Π΅Π΅ создания, для всСго процСсса Π΅ΡΡ‚ΡŒ ярлык:

 git checkout -b dev

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌΒ« dev Β»ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½Π΅Π΅Β». Π­Ρ‚ΠΎ эквивалСнт:

 git branch dev
git checkout dev

ЀактичСски, Π²Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git checkout для создания Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ· любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ‚ΠΎΠΉ, которая Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π°. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ another , ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ dev :

 git checkout -b another dev

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GitHub Desktop

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ создания Π²Π΅Ρ‚ΠΎΠΊ Git Π² Windows ΠΈΠ»ΠΈ macOS – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GitHub Desktop , ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ GitHub. ИспользованиС графичСского интСрфСйса идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΈ Ρ‚Π΅Ρ…, ΠΊΠΎΠΌΡƒ снятся ΠΊΠΎΡˆΠΌΠ°Ρ€Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΡˆΠ΅ΠΏΡ‡Π΅Ρ‚ слово Vim.

GitHub Desktop всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Π°ΡˆΡƒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов:

НаТмитС эту ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ вСтвях рСпозитория, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ имя Π²Π΅Ρ‚ΠΊΠΈ Π±Π΅Π· совпадСний, GitHub Desktop ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ сочСтаниС клавиш для этого – ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ этого:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ, сразу ΠΆΠ΅ Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ New Branch . Какой Π±Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ Π²Ρ‹ Π½ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ, Ρƒ вас появится Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ для подтвСрТдСния Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π²Π΅Ρ‚ΠΊΠΈ:

Π’Π°ΡˆΠ° новая Π²Π΅Ρ‚ΠΊΠ° всСгда Π±ΡƒΠ΄Π΅Ρ‚ основана Π½Π° Ρ‚ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, которая Π±Ρ‹Π»Π° Π°ΠΊΡ‚ΠΈΠ²Π½Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΅Π΅ создали. GitHub Desktop ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ Π½Π° Π²Π°ΡˆΡƒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π΅Π΅ создали.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ с использованиСм башни

Π”Ρ€ΡƒΠ³ΠΈΠ΅ графичСскиС интСрфСйсы доступны Ρƒ сторонних ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. Tower бСсплатСн Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 30-Π΄Π½Π΅Π²Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΈ доступСн Π² macOS ΠΈ Windows.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β« Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒΒ» Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню рСпозитория :

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· любой доступной Π²Π΅Ρ‚ΠΊΠΈ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Π»Π΅Π²ΠΎΠΉ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β« Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· <имя Π²Π΅Ρ‚ΠΊΠΈ>Β» :

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² любом случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ ΠΊΠ°ΠΊ Π²Π΅Ρ‚Π²ΡŒ отслСТивания ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π½Π° Π»ΡŽΠ±ΡƒΡŽ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GitKraken

GitKraken – Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ популярный графичСский интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сначала ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Ρ€Π°ΡˆΠ°ΡŽΡ‰ΠΈΠΌ, Π½ΠΎ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ справляСтся с Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ прСдставлСниСм ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ Git, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π΅Ρ‚ΠΊΠΈ. GitKraken бСсплатСн для использования с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ доступСн для Windows, Mac ΠΈ Linux.

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ; это Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π΄Π΅Π»Π΅Π½ Π² спискС Π²Π΅Ρ‚ΠΎΠΊ Π½Π° Π»Π΅Π²ΠΎΠΉ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΎΠΊ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов:

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ENTER:

Новая Π²Π΅Ρ‚ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π°, ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части экрана.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° GitHub

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ запуску локального прилоТСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ свой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… популярных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Git. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ, GitHub , ΠΎΡ‡Π΅Π½ΡŒ популярСн срСди сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ПО с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.

GitHub ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²Π°ΡˆΡƒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ (Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ) Π²Π΅Ρ‚ΠΊΡƒ Π² прСдставлСнии вашСго рСпозитория Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ:

НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ:

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя вашСй Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ прСдоставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π΅ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ:

ПослС создания ваша новая Π²Π΅Ρ‚ΠΊΠ° становится Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° Bitbucket

Bitbucket – Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ популярноС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния вСрсиями, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ бСсплатныС ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи с Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ количСством частных Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

На любой страницС вашСго рСпозитория Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Π’Π΅Ρ‚Π²ΠΈ Π² мСню слСва:

НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠ²ΠΎΠ΅ имя Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β« Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΒ» . Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΈΠ· любого мСста, ΠΊΡ€ΠΎΠΌΠ΅ мастСра , сначала ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ From :

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

ПослС создания Bitbucket ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²ΠΈΠ΄ вашСй Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ:

ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git

Git – это всС ΠΎ вСтвях: ΠΈΡ… дСшСво ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСскольким ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ объСдинСнию ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ. Когда Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с созданиСм, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈ объСдинСниСм Π²Π΅Ρ‚Π²Π΅ΠΉ, Π²Ρ‹ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅.

Бвязанный

Знакомство с Git ΠΈ GitHub: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… | by Olga Sayfudinova | NOP::Nuances of Programming

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ: Π§Π°ΡΡ‚ΡŒ 1, Π§Π°ΡΡ‚ΡŒ 2

БовмСстная Ρ€Π°Π±ΠΎΡ‚Π° β€” это визитная ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° GitHub!

Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π½Π° GitHub

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

Π’Π΅Ρ‚ΠΊΠ° β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ΄Π΅ΠΉ. ИзмСнСния Π² Π²Π΅Ρ‚ΠΊΠ΅ Π½Π΅ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ master Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ сами этого Π½Π΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ просто сливаСтС эти измСнСния с основной Π²Π΅Ρ‚ΠΊΠΎΠΉ master.

ЕдинствСнная Π²Π΅Ρ‚ΠΊΠ°, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, β€” это master. Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния сразу, Ρ‚ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ сливайтС с master.

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти собствСнныС измСнСния Π»ΠΈΠ±ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Π½Π΅ затрагивая master, Ρ‚ΠΎ создавайтС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ Π² любоС врСмя.

ΠžΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Π΅Ρ‚ΠΊΡƒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ new_feature (новая опция) ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π½Π΅Π΅ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

git checkout -b new_feature

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ:

git checkout

Команда позволяСт Β«Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒΒ» Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π²Π΅Ρ‚ΠΊΡƒ master:

git checkout master

ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ new_feature:

git checkout new_feature

По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΠΈΡ‚ΡŒ эти измСнСния с master, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

git merge new_feature

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Π΅Ρ€Π΅Ρ‚ всС измСнСния Π² Π²Π΅Ρ‚ΠΊΠ΅ new_feature ΠΈ добавляСт ΠΈΡ… Π² Π²Π΅Ρ‚ΠΊΡƒ master.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, new_feature) Π² качСствС «отслСТиваСмой»:

git push β€” set-upstream origin new_feature

Допустим, Π²Ρ‹ внСсли ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния. Π­Ρ‚ΠΈ измСнСния вас ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ запрос Π½Π° принятиС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Pull request). Π’ Pull request ваши ΠΊΠΎΠ»Π»Π΅Π³ΠΈ смогут ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ внСсСнныС измСнСния ΠΈ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΈΡ…. Pull request ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ внСсСниС ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡΡŒΠ±Π° ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Эмммм… это дСлаСтся Ρ‡Π΅Ρ€Π΅Π· сайт?

Π”Π°, всС это дСлаСтся с сайта GitHub.

Pull request создаСтся ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ README-Ρ„Π°ΠΉΠ»Π°. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΎ!

А Π΅Ρ‰Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° сайтС Ρ‡Π΅Ρ€Π΅Π· сам Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌΡƒ мСню Π² Π»Π΅Π²ΠΎΠΉ части экрана. Π’Π°ΠΌ Π΅Ρ‰Π΅ написано Branch: master. Π—Π°Π΄Π°ΠΉΡ‚Π΅ имя Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Create branch (Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ мСсто для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ тСстирования ΠΈΡ… Π΄ΠΎ слияния с master.

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

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Ρ‚ΠΎ измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π΅.

Если вас ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ внСсСнныС измСнСния Π²Ρ‹ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… с основной Π²Π΅Ρ‚ΠΊΠΎΠΉ, создайтС Pull request. ΠŸΡ€ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ свои измСнСния Ρ‡Π΅Ρ€Π΅Π· Pull request ΠΈ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠ»ΠΈ ΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.

Pull request ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ сразу ΠΏΡ€ΠΈ создании ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ всС Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΊΠΎΠ΄ΠΎΠΌ. ДСлаСтся это с сайта GitHub. Допустим, Π²Ρ‹ внСсли измСнСния Π² Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… с master. Π’ΠΎΠ³Π΄Π°:

  • ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Pull request Π²Π²Π΅Ρ€Ρ…Ρƒ экрана.
  • НаТмитС Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ New pull request.
  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠΎΠ»Π΅ Example Comparisons. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с master.
  • Π•Ρ‰Π΅ Ρ€Π°Π· просмотритС всС измСнСния, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ для ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.
  • НаТмитС Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ New pull request. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ запроса, Π΄Π°ΠΉΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НаТмитС Create pull request.

Новый Pull requestΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ pull request

Если это ваш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‚ΠΎ ΡΠ»ΠΈΡ‚ΡŒ измСнСния с master ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Merge pull request. НаТмитС Confirm merge. Π‘Ρ€Π°Π·Ρƒ послС объСдинСния Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ с master Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Delete branch Π² Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²ΠΎΠΌ боксС.

Если Π²Ρ‹ участвуСтС Π² Ρ‡ΡƒΠΆΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ‚ΠΎ Ρƒ участников ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹) ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ замСчания. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ внСсти ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния? БСйчас β€” самоС врСмя. Π‘Ρ€Π°Π·Ρƒ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ участники ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° смогут Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ эти измСнСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ тСстированиС Π΄ΠΎ слияния с master. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ смоТСтС произвСсти Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΡ… Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСдС.

ПослС утвСрТдСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ произвСсти слияниС вашСго ΠΊΠΎΠ΄Π° с Π²Π΅Ρ‚ΠΊΠΎΠΉ master. Π’ Pull request хранится запись ΠΎ Π²Π°ΡˆΠΈΡ… измСнСниях. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ всСгда смоТСтС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот запрос ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π±Ρ‹Π»ΠΈ сдСланы ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

ОбновлСниС и слияниС

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с самой свСТСй вСрсиСй рСпозитория Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ измСнСния с GitHub Ρ‡Π΅Ρ€Π΅Π· git pull. Для обновлСния локального рСпозитория Π΄ΠΎ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git pull

Для слияния ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠΈ с вашСй Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ:

git merge <имя_Π²Π΅Ρ‚ΠΊΠΈ>

Git стараСтся автоматичСски ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒ измСнСния, ΠΎΠ΄Π½Π°ΠΊΠΎ это Π½Π΅ всСгда Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния. Если Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ПослС внСсСния Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ ΠΈΡ… Π² качСствС Β«ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ…Β» ΠΈΠ»ΠΈ «слитых» Ρ‡Π΅Ρ€Π΅Π· git add <имя_Ρ„Π°ΠΉΠ»Π°>. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния Π΄ΠΎ слияния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

git diff <исходная_Π²Π΅Ρ‚ΠΊΠ°> <цСлСвая_Π²Π΅Ρ‚ΠΊΠ° >

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Π΅Ρ‚ΠΊΠ΅ master ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π·:

git checkout master

ПослС слияния послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ эту Π²Π΅Ρ‚ΠΊΡƒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git branch -d new_feature

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ увидят Π²Π°ΡˆΡƒ Π²Π΅Ρ‚ΠΊΡƒ, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π²Π΅Ρ‚ΠΊΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git push origin <Π²Π΅Ρ‚ΠΊΠ°>

ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄

Для Π½Π°Ρ‡Π°Π»Π°, Π²ΠΎΡ‚ Π²Π°ΠΌ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ GitHub, Π³Π΄Π΅ пСрСчислСны всС самыС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Git-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:

git log

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

git log β€” author=<имя>

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ нСпроиндСксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

git diff

Π‘Π»ΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹? ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ подсказку ΠΈΠ· 21 самой популярной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git help

Π›ΠΈΠ±ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΡ ΠΏΠΎ использованию ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. НапримСр, Π²ΠΎΡ‚ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ clone:

git help clone

Π”Π°Π²Π°ΠΉΡ‚Π΅ потрСнируСмся, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΠΈ попривСтствуСм всСх, ΠΊΡ‚ΠΎ знакомится с Git ΠΈ GitHub. ΠœΡ‹ создадим Π‘Ρ‚Π΅Π½Ρƒ для записСй GitHub Wall, Π³Π΄Π΅ ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Git ΠΈ GitHub смогут ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² своих ΠΏΠ΅Ρ€Π²Ρ‹Ρ… open-source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

На своСй Π‘Ρ‚Π΅Π½Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹. Π“Π»Π°Π²Π½ΠΎΠ΅ β€” ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ вСТливости ΠΈ Π΄ΠΎΠ±Ρ€ΠΎΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠžΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ картинку… Π΄Π° Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Если Π²Π°ΠΌ слоТно ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ привСтствСнный тСкст, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ шаблон ΠΈΠ· README-Ρ„Π°ΠΉΠ»Π° (ссылку см. Π½ΠΈΠΆΠ΅).

git clone https://github.com/bonn0062/github_welcome_wall.git
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» welcome_wall.md с ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Ρ†ΠΈΡ‚Π°Ρ‚ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° сайтС GitHub. Но ΠΊΡƒΠ΄Π° интСрСснСС ΡΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² любимом тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. Π’Π°ΠΊ знания Π»ΡƒΡ‡ΡˆΠ΅ усвоятся.
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Pull request.
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΡΡƒΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НаТмитС Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Pull request.

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ β€” Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡΠΏΡ€Π°Π²ΠΈΠ»ΠΈΡΡŒ!

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅:

Git branch | Atlassian Git Tutorial

Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описываСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch ΠΈ рассматриваСтся общая модСль вСтвлСния Π² Git. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вСтвлСния доступна Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ соврСмСнных систСм контроля вСрсий. Однако эта опСрация Π² рядС систСм ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно Π·Π°Ρ‚Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊΠ°ΠΊ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ дискового пространства. Π’ Git Π²Π΅Ρ‚ΠΊΠΈ β€” это элСмСнт повсСднСвного процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. По сути Π²Π΅Ρ‚ΠΊΠΈ Π² Git ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° снимок ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Если Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ (Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ»ΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΡƒΡŽ), Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ эти измСнСния. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ с основной Π±Π°Π·ΠΎΠΉ ΠΊΠΎΠ΄Π° становится слоТнСС, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ слияниСм с основной Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

На схСмС Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с двумя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ направлСниями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: для нСбольшой возмоТности ΠΈ для Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΉ. Π’Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ… Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (master).

Git ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π²Π΅Ρ‚ΠΎΠΊ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмами контроля вСрсий. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Git Ρ…Ρ€Π°Π½ΠΈΡ‚ Π²Π΅Ρ‚ΠΊΡƒ Π² Π²ΠΈΠ΄Π΅ ссылки Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° прСдставляСт собой Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ сСрии ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π° Π½Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Π²Π΅Ρ‚ΠΊΠΈ распространяСтся Ρ‡Π΅Ρ€Π΅Π· иСрархичСскиС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ.

Π’ΠΎ врСмя чтСния ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠΈ Π² Git Π½Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Π²Π΅Ρ‚ΠΊΠΈ Π² SVN. Π’Π΅Ρ‚ΠΊΠΈ Π² SVN ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для фиксации пСриодичСских ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, Π° Π²Π΅Ρ‚ΠΊΠΈ Π² Git ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ повсСднСвного Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса. Π”Π°Π»Π΅Π΅ приводится Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ вСтвлСния Π² Git.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ дСйствий

Π’Π΅Ρ‚ΠΊΠ° прСдставляСт собой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Π΅Ρ‚ΠΊΠΈ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² качСствС абстрактного прСдставлСния для процСсса рСдактирования/индСксации/ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. МоТно Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ способ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ€Π°Π·Π΄Π΅Π» проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НовыС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Ρ€Π°Π·Π²ΠΈΠ»ΠΊΠΈ Π² истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Команда git branch позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ. Она Π½Π΅ Π΄Π°Π΅Ρ‚ возмоТности ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ слияниС Ρ€Π°Π·Π΄Π²ΠΎΠ΅Π½Π½ΠΎΠΉ истории Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ. ИмСнно поэтому ΠΊΠΎΠΌΠ°Π½Π΄Π° git branch тСсно связана с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ git checkout ΠΈ git merge.

РаспространСнныС ΠΎΠΏΡ†ΠΈΠΈ

git branch

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ списка Π²Π΅Ρ‚ΠΎΠΊ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π­Ρ‚ΠΎ синоним ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git branch --list.

git branch 

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ . Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ выполняСт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° эту Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

git branch -d 

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Π­Ρ‚ΠΎ «бСзопасная» опСрация, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Git Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Ссли Π² Π½Π΅ΠΉ Π΅ΡΡ‚ΡŒ нСслитыС измСнСния.

git branch -D 

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ, Π΄Π°ΠΆΠ΅ Ссли Π² Π½Π΅ΠΉ Π΅ΡΡ‚ΡŒ нСслитыС измСнСния. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ навсСгда ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, связанныС с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

git branch -m 

ИзмСнСниС ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° .

 git branch -a

Π’Ρ‹Π²ΠΎΠ΄ списка всСх ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ.

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

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠΈ β€” это просто ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Когда Π²Ρ‹ создаСтС Π²Π΅Ρ‚ΠΊΡƒ, Git просто создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΡ€ΠΈ этом Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ измСняСтся. Допустим, Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит Ρ‚Π°ΠΊ:

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

git branch crazy-experiment

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ рСпозитория остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ. ВсС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅, β€” это Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: эта ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ создаСт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² эту Π²Π΅Ρ‚ΠΊΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git checkout, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git add ΠΈ git commit.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ

Π”ΠΎ сих ΠΏΠΎΡ€ всС эти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ дСмонстрировали Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ. Команда git branch Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ. Для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ… сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ локального рСпозитория.

 $ git remote add new-remote-repo https://bitbucket.com/user/repo.git # Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ локального рСпозитория $ git push  crazy-experiment~ # ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π²Π΅Ρ‚ΠΊΠΈ crazy-experiment Π² Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ new-remote-repo

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ копию локальной Π²Π΅Ρ‚ΠΊΠΈ crazy-experiment Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ .

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π²Π΅Ρ‚ΠΊΠ΅ ΠΈ ΡΠΎΠ»ΡŒΠ΅Ρ‚Π΅ Π΅Π΅ с основной Π±Π°Π·ΠΎΠΉ ΠΊΠΎΠ΄Π°, эту Π²Π΅Ρ‚ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ истории:

git branch -d crazy-experiment

Однако, Ссли Π²Π΅Ρ‚ΠΊΠ° Π½Π΅ Π±Ρ‹Π»Π° слита, указанная Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° выдаст сообщСниС ΠΎΠ± ошибкС:

error: The branch 'crazy-experiment' is not fully merged. If you are sure you want to delete it, run 'git branch -D crazy-experiment'.

Π­Ρ‚ΠΎ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ доступа ΠΊΠΎ всСму Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Если Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли экспСримСнт оказался Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΌ), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ -D (с прописной Π±ΡƒΠΊΠ²ΠΎΠΉ):

git branch -D crazy-experiment

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

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию Π²Π΅Ρ‚ΠΊΠΈ, Π½ΠΎ Π²Π΅Ρ‚ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… рСпозиториях. Для удалСния Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

 git push origin --delete crazy-experiment

ΠΈΠ»ΠΈ

git push origin :crazy-experiment

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ сигнал Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ crazy-experiment.

РСзюмС

Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΌΡ‹ рассмотрСли ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° вСтвлСния Π² Git ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git branch. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ git branch β€” это созданиС, просмотр, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ. Для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ git checkout. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± опСрациях с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ с использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git checkout, Π² Ρ‚ΠΎΠΌ числС ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ ΠΈ ΠΈΡ… слиянии, см. Π½Π° страницС git checkout.

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмами контроля вСрсий ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π² Git ΡΠ²Π»ΡΡŽΡ‚ΡΡ экономичными ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ часто. Вакая Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ позволяСт эффСктивно Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π² Git. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссах Π² Git см. Π½Π° Π½Π°ΡˆΠΈΡ… страницах, Π³Π΄Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ:
Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс GitFlow ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс с Ρ„ΠΎΡ€ΠΊΠ°ΠΌΠΈ.

Π“Π΄Π΅ ΠΈ Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git Branch: Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Π² Git

VPS

access_time

16 января, 2020

hourglass_empty

3ΠΌΠΈΠ½. чтСния

Git – это инструмСнт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ для контроля вСрсий ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он ΠΎΡ‡Π΅Π½ΡŒ популярСн ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ GNOME ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Одной ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Git являСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ процСсс Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π² этом руководствС ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git branch, ΠΈΠ»ΠΈ Π²Π΅Ρ‚ΠΊΠΈ Git. Π›ΡŽΠ±ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° основС VPS, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΎΡ‚ этой Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Π² Git ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько вСрсий прилоТСния. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ руководство Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ ваши Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания Git.

Π§Ρ‚ΠΎ Π’Π°ΠΊΠΎΠ΅ Git Branch

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

ИспользованиС Git Branches ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько прСимущСств. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π°:

  • МоТно Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нашСго прилоТСния, Π½Π΅ мСшая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² основной Π²Π΅Ρ‚ΠΊΠ΅.
  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π΅Ρ‚ΠΎΠΊ Git ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΈ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ собствСнныС ΠΌΠΎΠ΄Π΅Π»ΠΈ вСтвлСния, исходя ΠΈΠ· своСго ΠΎΠΏΡ‹Ρ‚Π°.

Π“Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git Branch

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сСрвСру ΠΏΠΎ SSH ΠΏΠ΅Ρ€Π΅Π΄ запуском. Π’ΠΎΡ‚ руководство ΠΏΠΎ PuTTY, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚!

Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Git branches довольно просто, это Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· самих ΠΊΠΎΠΌΠ°Π½Π΄. Но, ΠΊΠ°ΠΊ ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… случаСв, Ρ‡Π΅ΠΌ большС Ρƒ вас Π²Π΅Ρ‚ΠΎΠΊ, Ρ‚Π΅ΠΌ слоТнСС ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ.

Π’ любом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Git ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС Π²Π΅Ρ‚Π²ΠΈ, ввСдя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

git branch

Если Π²Ρ‹ Π½Π΅ создали Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Git branch, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто:

git branch [new_branch]

Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ создали. Для этого ΠΌΡ‹ запустим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git checkout [new_branch]

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сообщит Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. ΠœΡ‹ Π½Π°Π·Π²Π°Π»ΠΈ Π΅Ρ‘ тСстовой, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

Switched to branch β€˜test’

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² этой Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΊΠΎΠ΄Π°, сколько Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ, Π±Π΅Π· нСобходимости Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π² основной Git branch. Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, это ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊ добавлСнию Π½ΠΎΠ²Ρ‹Ρ… частСй ΠΊΠΎΠ΄Π°.

Если ΠΌΡ‹ запустим ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° списка Π²Π΅Ρ‚Π²Π΅ΠΉ, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая Π²Π΅Ρ‚ΠΊΠ° ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ находимся Π² Π½Π΅ΠΉ.

git branch

Π•ΡΡ‚ΡŒ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ, ΠΎ Ρ‡Ρ‘ΠΌ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, создавая Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ commit Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Git понял, Ρ‡Ρ‚ΠΎ это master branch. Если ΠΌΡ‹ этого Π½Π΅ сдСлаСм, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π˜Ρ‚Π°ΠΊ, сначала сдСлайтС commit, Π° Π·Π°Ρ‚Π΅ΠΌ создавайтС Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· Git, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git branch -d [branch_name]

Однако, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ пСрСмСщаСмся Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΡƒΠΆΠ΅ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° удаляСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ:

git checkout master
git branch -d test

НаконСц, наступил ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ внСсли ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅Ρ‚ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΠ½Π° ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ, поэтому ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Ρ‘ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Для этого ΠΈ сущСствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π° слияния (merge).

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ присоСдинСна другая Π²Π΅Ρ‚ΠΊΠ°. НапримСр, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΊ основной Π²Π΅Ρ‚ΠΊΠ΅ – master branch. Для этого ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² master branch ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ merge с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git merge [branch]

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π΅Ρ‚ΠΊΠΈ Git довольно просты. Π’Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ основы ΠΈ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ порядок Π² своём ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π£ΠΌΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git branch, являСтся ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΌ, особСнно, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°ΠΉΡ‚Π΅ свой ΠΊΠΎΠ΄ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΊΠ°Ρ… Git с ΡƒΠΌΠΎΠΌ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈ вас основам Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Git.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Git ΠΊΠ°ΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Ρ‚ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ слоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π£Π΄Π°Ρ‡Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ!

ΠŸΡ€Π°Π²ΠΈΠ»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git | Flexberry PLATFORM Documentation

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ, Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ клонирования, создания Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ, внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, удалСния рСпозитория

Git (Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с github) — это Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈ Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ…. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒ измСнСния ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π­Ρ‚ΠΎΡ‚ процСсс называСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ вСрсий.

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

GitHub — это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· популярных хостингов git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GUI-прилоТСния (Π² Ρ‚.Ρ‡. интСрфСйсы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git Π² Visual Studio ΠΈ WebStorm), Π½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, с git Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΠ· консоли (эмулятор Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°).

РСкомСндуСтся ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с git ΠΈΠ· консоли. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, графичСскиС интСрфСйсы Π½Π΅ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ всю Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ git, прСдоставляя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ рСпозитория

Для получСния ΠΊΠΎΠΏΠΈΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Git-рСпозитория, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ внСсти измСнСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git clone.

# ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория осущСствляСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git clone [URL].
git clone https://github.com/Flexberry/ember-flexberry.git

Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅

Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ нСзависимой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Основной Π²Π΅Ρ‚ΠΊΠΎΠΉ являСтся master ΠΈΠ»ΠΈ develop. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ β€” это исправлСния ΠΈ измСнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

Для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git checkout <имя Π²Π΅Ρ‚ΠΊΠΈ>.

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

Note: ΠŸΡ€ΠΈ создании Π²Π΅Ρ‚ΠΎΠΊ ΡΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΡ… имСнования. Если Π²Π΅Ρ‚ΠΊΠ° для добававлСния Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΎ Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄: feature-<Π½ΠΎΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ Ссли Π΅ΡΡ‚ΡŒ>-<Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π·Π°Π΄Π°Ρ‡ΠΈ>. Если Π²Π΅Ρ‚ΠΊΠ° для исправлСний, Ρ‚ΠΎ fix-<Π½ΠΎΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ Ссли Π΅ΡΡ‚ΡŒ>-<Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π·Π°Π΄Π°Ρ‡ΠΈ>.

# ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Π΄ΠΎ наслСдоватся (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это основная Π²Π΅Ρ‚ΠΊΠ° master ΠΈΠ»ΠΈ develop)
git checkout develop

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСднии измСнСния для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ.
git pull

# Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.
git checkout -b <имя Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ>

Π‘Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ: git merge <Π²Π΅Ρ‚ΠΊΠ°>.

Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΠΈΡ‚ΠΎΡ€ΠΈΠΉ

ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (staging area) — ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΊΡƒΠ΄Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ измСнСния(Ρ„Π°ΠΉΠ»Ρ‹), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ измСнСния Π² staging area — git add <имя Ρ„Π°ΠΉΠ»Π°> ΠΈΠ»ΠΈ git add * Ссли Π½Π°Π΄ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС измСнСния.

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· staging area — git checkout -- <имя Ρ„Π°ΠΉΠ»Π°> ΠΈΠ»ΠΈ git checkout -- * Ссли Π½Π°Π΄ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС измСнСния.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ содСрТимоС Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ staging area — git status

Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ(ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ) ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ измСнСния Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ — git commit -m "ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ"

Note: Боздавая ΠΊΠΎΠΌΠΌΠΈΡ‚, Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ принятый Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ стандарт Conventional Commits.

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

Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ – Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считаСтся ΠΎΠ±Ρ‰ΠΈΠΌ (располоТСн Π½Π° github), Π² Π½Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· локального рСпозитория, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ программисты ΠΌΠΎΠ³Π»ΠΈ ΠΈΡ… ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ. Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдниС измСнСния, сдСланныС Π² Π²Π΅Ρ‚ΠΊΠ΅, с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория — git pull

ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ зафиксированныС измСнСния ΠΈΠ· локального рСпозитория Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ — git push origin <Π²Π΅Ρ‚ΠΊΠ°>

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

Please enable JavaScript to view the comments powered by Disqus.

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git. РСшСниС основных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” Π‘Π»ΠΎΠ³ HTML Academy

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° First Aid Git ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ HTML Academy.

ВосстановлСниС Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ


Π’Β Ρ‚ΠΎΠΌ случаС, Ссли измСнСния, внСсённыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, находятся Π²Β Ρ€Π΅ΠΆΠΈΠΌΠ΅ накоплСния, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ…Β ΠΊΒ Π²Π΅Ρ‚ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git stash apply. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git diffΒ β€” эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ различия. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Β Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git stash drop


Если сущСствуСт Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ накоплСния, Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git stash list Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, воспользовавшись Π΅Π³ΠΎ индСксом:

git stash@{1}


НСобходимо ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ отсчёт индСксов вСдётся от нуля.

ВосстановлСниС ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π°


Π’Β Ρ‚ΠΎΠΌ случаС, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ случайно ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ‚Π΅Π³, Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с Сго поиска:

git fsck --unreachable | grep tag


ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‚Π΅Π³ Π½Π°ΠΉΠ΄Π΅Π½, Π΅Π³ΠΎ слСдуСт Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ:

git update-ref refs/tags/Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Ρ‚Π΅Π³Π°

ВосстановлСниС ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°


Если вы случайно ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ», Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ быстро Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ:

git checkout myfile.txt


Если трСбуСтся Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ·Β ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², слСдуСт ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ…Π΅Ρˆ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈΒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git checkout $commit~1 myfile.txt

ВосстановлСниС ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ


Π‘Β ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΌΠ°Π½Π΄Ρ‹ git reflog ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ…Π΅Ρˆ (SHA1) послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π²Β ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ этот Ρ…Π΅Ρˆ ΠΈΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Β ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

git checkout <sha>


ПослС этого Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git checkout -b <Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Π²Π΅Ρ‚ΠΊΠΈ>

ИзмСнСниС сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ


Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git commit --amend, ΠΎΠ½Π° ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π²Β ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ внСсти Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ в послСднСС сообщСниС.


Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

git commit --amend -m "НовоС прСкрасноС сообщСниС"

ИзмСнСниС сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚Π° послС Π΅Π³ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ


Π’Β Π΄Π°Π½Π½ΠΎΠΌ случаС процСсс Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° шага. Π‘Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΌΠ°Π½Π΄Ρ‹ git commit --amend, Π°Β Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² локальной Π²Π΅Ρ‚ΠΊΠΈ: git push <remote> <branch> --force

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: подобная насильная ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊΒ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² из внСшнСй Π²Π΅Ρ‚ΠΊΠΈ, Ссли с нСй Π΄Π°Π²Π½ΠΎ Π½Π΅Β Π±Ρ‹Π»ΠΎ синхронизации, ΡΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

ИспользованиС алиасов ΠΊΠΎΠΌΠ°Π½Π΄ Π²Β ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС


Устали ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ git status? Π­Ρ‚ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ простой алиас, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‰Π΅ и быстрСС Π²Π±ΠΈΠ²Π°Ρ‚ΡŒ Π²Β git.

git config --global alias.st status


β€”Β Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ git st


МоТно ΠΏΠΎΠΉΡ‚ΠΈ дальшС ΠΈΒ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ алиасы Π±ΠΎΠ»Π΅Π΅ слоТным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ:

git config --global alias.logme 'log -p --author=Rob'


Π’Π΅ΠΏΠ΅Ρ€ΡŒ алиас git logme Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ всС наши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹.

ΠšΠΎΠΌΠΌΠΈΡ‚ Π²Β Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ


НуТно ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π°Β Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹Β Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ:

git checkout -b Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Π½ΠΎΠ²ΠΎΠΉ-Π²Π΅Ρ‚ΠΊΠΈ.


А затСм ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊΒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅:

git checkout Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ-Π²Π΅Ρ‚ΠΊΠΈ


…ΠΈ Β«ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡΒ» до послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.


Π§Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git log ΠΈΒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ…Π΅Ρˆ (SHA1) послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ.. НапримСр, это a31a45c.


Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ: git reset --hard a31a45c ΠΈΒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π²Β Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ нС отправлял ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²Β ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ во врСмя выполнСния Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, Π²Β ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС эти измСнСния Π±ΡƒΠ΄ΡƒΡ‚ потСряны!

ОбновлСниС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ подмодуля


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²Β Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊΒ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŽ:

git submodule update --remote --merge <path>

ΠžΡ‚ΠΊΠ°Ρ‚ ΠΊΒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ в истории


Если вас Π½Π΅Β ΠΎΡ‡Π΅Π½ΡŒ бСспокоят измСнСния в локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΎΒ ΠΌΠΎΠΆΠ½ΠΎ Β«ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡΒ» ΠΊΒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ в истории ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git reset --hard HEAD~1


Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° установит HEAD Π½Π°Β ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ…Π΅ΡˆΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄ΠΎΒ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ


Если вы сдСлали ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ впослСдствии понадобилось ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° git reset.


ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΎΡ‚ΠΌΠ΅Π½Π° послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

git revert -n HEAD

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


ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌ способом ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Β Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΒ ΠΏΠ°ΠΏΠΎΠΊ являСтся восстановлСниС состояния послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git checkout myfile.txt


ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊΒ Ρ„Π°ΠΉΠ»Ρƒ:

git checkout -- ΠΏΡƒΡ‚ΡŒ-Π΄ΠΎ-Ρ„Π°ΠΉΠ»Π°

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°


Если Π²Ρ‹Β Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с измСнСниями ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git log --follow -p -- myfile


АргумСнт β€”follow позволяСт вывСсти всС измСнСния Π½Π°Π΄ Ρ„Π°ΠΉΠ»ΠΎΠΌ, Π΄Π°ΠΆΠ΅ Ссли в процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ½Β Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½.


Если ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ -p, то систСма Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², но нС их содСрТимоС.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ числа ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΎΡ‚Β ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ участника


Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, сколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² сдСлал ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ участник ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹?


Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ список, отсортированный в порядкС убывания количСства ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²: git shortlog -s -n

ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, содСрТащиС ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹


Π£Π·Π½Π°Ρ‚ΡŒ, Π²Β ΠΊΠ°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ… содСрТатся ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git log --diff-filter=D --summary


Она ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π²Β ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ΄Π°Π»ΡΠ»ΠΈΡΡŒ Ρ„Π°ΠΉΠ»Ρ‹.

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΒ Π°Π²Ρ‚ΠΎΡ€Ρƒ


Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΒ Π°Π²Ρ‚ΠΎΡ€Ρƒ, слСдуСт Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git log --author="Имя Π°Π²Ρ‚ΠΎΡ€Π°"

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° всСх скрытых состояний


ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС скрытыС состояния ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git stash clear

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ локальной ΠΈΒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ


ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠΌ, у вас Π΅ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠ° Β«fix-bug25Β», ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹Β Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π²Β Β«hotfix-usersΒ». ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ:

git branch -m fix-bug25 hotfix-users


А затСм — ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ: ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘Β Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ нСльзя, поэтому Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Ρ‘Β ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, ΠΈΒ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ ΡƒΠΆΠ΅ с новым ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ к этим ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌ, слСдуСт ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ ΠΈΠ·Β Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅Β Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с этой Π²Π΅Ρ‚ΠΊΠΎΠΉ! УдаляСм Π²Π΅Ρ‚ΠΊΡƒ: git push origin :fix-bug25


ΠΒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ Сё с новым ΠΈΠΌΠ΅Π½Π΅ΠΌ: git push origin hotfix-users

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π΅Π³Π°


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³:

git tag Π½ΠΎΠ²ΠΎΠ΅-Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Ρ‚Π΅Π³Π° староС-Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Ρ‚Π΅Π³Π°
git tag -d староС-Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Ρ‚Π΅Π³Π°
git push origin :refs/tags/староС-Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Ρ‚Π΅Π³Π°
git push --tags

ΠŸΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹


Если Π²Ρ‹Β Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²Β Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π½ΠΎΒ ΠΏΡ€ΠΈ этом ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ локально, осущСствитС ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ и запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git rm -r --cached


Она ΡƒΠ΄Π°Π»ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·Β Π·ΠΎΠ½Ρ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (staging area). Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git add . 


ΠΈΒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΒ ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ локально, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git add -u


Если трСбуСтся ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π²Β Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡƒΡ‚ΡŒ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

git add -u .

Поиск ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ сообщСния во всСх ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…


Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ тСкст сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ, Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

git log --grep <запрос>

ΠŸΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹ΠΉ


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ…Β ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git add Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Ρ„Π°ΠΉΠ»Π°


Π—Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git commit, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ измСнСния.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ всСх Π½Π΅ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Ρ‘ Π½Π΅Β Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π²Β ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git log --branches --not --remotes


ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

git log origin/master..HEAD

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ старой Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°


БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»Π° Π²Β ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Β ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git show commitHash:myfile.txt

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ локальной Π²Π΅Ρ‚ΠΊΠΈ для ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСдактирования


Если вы создали Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΈΒ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ с нСй Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git push -u origin Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΌΠΎΠ΅ΠΉ-Π½ΠΎΠ²ΠΎΠΉ-Π²Π΅Ρ‚ΠΊΠΈ


Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΈ Ρ‚ΠΎΠΆΠ΅ смогут Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния в эту Π²Π΅Ρ‚ΠΊΡƒ.

Бброс локальной Π²Π΅Ρ‚ΠΊΠΈ до состояния ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ


Π’Β Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ до состояния ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΡ… простых ΠΊΠΎΠΌΠ°Π½Π΄.


ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ свСТиС обновлСния ΠΈΠ·Β ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ:

git fetch Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ-Π²Π΅Ρ‚ΠΊΠΈ.


А затСм Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ git, Ρ‡Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ слСдуСт Β«ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΒ» до состояния ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ:

git reset --hard origin/Π½Π°Π·Π²Π°Π½ΠΈΠ΅-локальной-Π²Π΅Ρ‚ΠΊΠΈ.


ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄ сбросом Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ и произвСсти ΠΊΠΎΠΌΠΌΠΈΡ‚: git commit -m «ОбновлСниС»

git branch Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Π½ΠΎΠ²ΠΎΠΉ-Π²Π΅Ρ‚ΠΊΠΈ

Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ с master-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ


Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ послСдниС измСнСния Π²Β Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ master (ΠΈΠ»ΠΈ с любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ, с которой Π²Ρ‹Β Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Β«ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ» Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹Β Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ Π²Π΅Ρ‚ΠΊΠΎΠΉ foobar:

git checkout foobar


А затСм осущСствляСтС Β«ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β»:

git rebase master


ПослС этого Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ origin ΠΈΠ·Β master. ПослС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² процСсс ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rebase β€”continue. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ своСй Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Сё слияниС (merge) с главным Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ.

БлияниС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с другой Π²Π΅Ρ‚ΠΊΠΎΠΉ


Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ прямо в процСссС стандартного слияния (merge). Π’Π°ΠΌ стоит ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ слияний ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„Π»Π°Π³ β€”no-ff, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ noΒ fast forward.


ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π²Β Π²Π΅Ρ‚ΠΊΡƒ, Π²Β ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ измСнСния, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π²Β Π΅Ρ‘Β Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ и запуститС процСсс:

git merge <другая-Π²Π΅Ρ‚ΠΊΠ°> --no-ff


Π—Π°Ρ‚Π΅ΠΌ появится сообщСниС ΠΎΒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ mergeΒ X intoΒ Y branch, послС Ρ‡Π΅Π³ΠΎ Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ смСло Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ вашС слияниС.>

Π‘ΠΎΠ²ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΈΒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²


Π—Π΄Π΅ΡΡŒ Π½Π°ΠΌ понадобится произвСсти ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Если ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ происходит ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ master-Π²Π΅Ρ‚ΠΊΠΈ, Ρ‚ΠΎΒ Π½Π°Ρ‡Π°Ρ‚ΡŒ слСдуСт с команды git rebase -i master. Однако, Ссли ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ происходит Π½Π΅Β ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Ρ‚ΠΊΠΈ, Ρ‚ΠΎΒ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ HEAD.


Если Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ в совмСщСнии Π΄Π²ΡƒΡ… послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

git rebase -i HEAD~2.


ПослС Π΅Ρ‘Β Π²Π²ΠΎΠ΄Π° появятся инструкции ΠΏΠΎΒ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’Β Ρ‚ΠΎΠΌ случаС, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с пСрвым ΡΡ‚Π°Ρ€Π΅ΠΉΡˆΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‚ΠΎΒ Π²Β ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ pick, а для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ Π½Π°Β f. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ здСсь

Π‘ΠΎΠ²ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎΒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для добавлСния Π²Β Π²Π΅Ρ‚ΠΊΡƒ Ρ€Π΅Π»ΠΈΠ·Π°


Если Π²Ρ‹Β Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Ρ‚ΠΎΒ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π²Β Π²Π΅Ρ‚ΠΊΠ΅ Ρ€Π΅Π»ΠΈΠ·Π°, поэтому история Π²Π΅Ρ‚ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ останСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.


НиТС прСдставлСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ эффСкта:

git fetch origin
git checkout [release-branch]
git rebase origin/[release-branch]
git merge β€”squash β€”no-commit [feature-branch]
git commit -m 'Merge X into Y'


Π’Β ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π²Β Π²Π΅Ρ‚ΠΊΠ΅ Ρ€Π΅Π»ΠΈΠ·Π°, а история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Β Π²Π΅Ρ‚ΠΊΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ останСтся Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΠΎΠΉ.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΒ Π²Π΅Ρ‚ΠΊΠ°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ с измСнСниями Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ


Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π²Β Π²Π΅Ρ‚ΠΊΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, и лишь ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π²ΡΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нС создали Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. ΠšΒ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π΅ΡΡ‚ΡŒ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡƒΠΆΠ΅ в процСссС:

git checkout -b Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΌΠΎΠ΅ΠΉ-Π½ΠΎΠ²ΠΎΠΉ-Π²Π΅Ρ‚ΠΊΠΈ


Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° пСрСнСсёт Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·Β Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π²Β Π½ΠΎΠ²ΡƒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Β«Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒΒ».

Π£Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ·Β Π±ΡƒΡ„Π΅Ρ€Π°


Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ по ошибкС Ρ„Π°ΠΉΠ» ΠΈΠ·Β Π±ΡƒΡ„Π΅Ρ€Π°, Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ простой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git reset HEAD unlovedfile.txt

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ внСшнСй Π²Π΅Ρ‚ΠΊΠΈ


Если Π²Ρ‹Β Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git push origin --delete Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Π²Π΅Ρ‚ΠΊΠΈ

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ нСотслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΒ ΠΏΠ°ΠΏΠΎΠΊ


Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΒ ΠΏΠ°ΠΏΠΊΠΈ ΠΈΠ·Β Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git clean -f


Π§Ρ‚ΠΎΠ±Ρ‹ Π²Β ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒΒ ΠΈΡ…:

git clean -fd


Подсказка: Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ лишними, ΠΏΠ΅Ρ€Π΅Π΄ их нСпосрСдствСнным ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅:

git clean -n

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ старых Π²Π΅Ρ‚ΠΎΠΊ, стёртых из внСшнСго рСпозитория


Если Π²Π΅Ρ‚ΠΊΠ° ΡƒΠ΄Π°Π»Π΅Π½Π° из внСшнСго рСпозитория, Π΅Ρ‘Β Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ из локального рСпозитория ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

git-remote prune Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ-Π²Π΅Ρ‚ΠΊΠΈ.


Она ΡƒΠ΄Π°Π»ΠΈΡ‚ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ-Π²Π΅Ρ‚ΠΊΠΈ, которая ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° стёрта из внСшнСго рСпозитория, но всё Π΅Ρ‰Ρ‘ доступна локально Π²Β remotes/Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ-Π²Π΅Ρ‚ΠΊΠΈ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ·Β git с сохранСниСм Π΅Π³ΠΎ локальной ΠΊΠΎΠΏΠΈΠΈ


Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ·Β git, Π½ΠΎΒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ локально Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git rm --cached myfile.txt

Π‘Π΅Π· Π“ΠΈΡ‚Π° и Тизнь Π½Π΅Β Ρ‚Π°

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ Π²Β Git на курсах HTMLΒ Academy. ΠœΡ‹Β Ρ€Π°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ всё, Ρ‡Ρ‚ΠΎ Π·Π½Π°Π΅ΠΌ сами, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Β ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π°Π»ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ Π²Β Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

Π£Π·Π½Π°Ρ‚ΡŒ большС

руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 2

Π§Π°ΡΡ‚ΡŒ 1, Π§Π°ΡΡ‚ΡŒ 2

Π Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Π½Π°Β GitHub

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

Π’Π΅Ρ‚ΠΊΠ°β€Šβ€”β€ŠΡΡ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ΄Π΅ΠΉ. ИзмСнСния Π² Π²Π΅Ρ‚ΠΊΠ΅ Π½Π΅ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ master Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ сами этого Π½Π΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ просто сливаСтС эти измСнСния с основной Π²Π΅Ρ‚ΠΊΠΎΠΉ master.

ЕдинствСнная Π²Π΅Ρ‚ΠΊΠ°, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚,β€Šβ€”β€ŠΡΡ‚ΠΎ master. Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния сразу, Ρ‚ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ сливайтС с master.

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти собствСнныС измСнСния Π»ΠΈΠ±ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Π½Π΅ затрагивая master, Ρ‚ΠΎ создавайтС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ Π² любоС врСмя.

ΠžΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Π΅Ρ‚ΠΊΡƒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ new_feature (новая опция) ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π½Π΅Π΅ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

git checkout -b new_feature

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ:

git checkout

Команда позволяСт Β«Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒΒ» Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π²Π΅Ρ‚ΠΊΡƒ master:

git checkout master

ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ new_feature:

git checkout new_feature

По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΠΈΡ‚ΡŒ эти измСнСния с master, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

git merge new_feature

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Π΅Ρ€Π΅Ρ‚ всС измСнСния Π² Π²Π΅Ρ‚ΠΊΠ΅ new_feature ΠΈ добавляСт ΠΈΡ… Π² Π²Π΅Ρ‚ΠΊΡƒ master.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, new_feature) Π² качСствС «отслСТиваСмой»:

git push β€” set-upstream origin new_feature

Допустим, Π²Ρ‹ внСсли ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния. Π­Ρ‚ΠΈ измСнСния вас ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ запрос Π½Π° принятиС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Pull request). Π’ Pull request ваши ΠΊΠΎΠ»Π»Π΅Π³ΠΈ смогут ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ внСсСнныС измСнСния ΠΈ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΈΡ…. Pull request ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ внСсСниС ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡΡŒΠ±Π° ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Эмммм… это дСлаСтся чСрСз сайт?

Π”Π°, всС это дСлаСтся с сайта GitHub.

Pull request создаСтся ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ README-Ρ„Π°ΠΉΠ»Π°. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΎ!

А Π΅Ρ‰Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° сайтС Ρ‡Π΅Ρ€Π΅Π· сам Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌΡƒ мСню Π² Π»Π΅Π²ΠΎΠΉ части экрана. Π’Π°ΠΌ Π΅Ρ‰Π΅ написано Branch: master. Π—Π°Π΄Π°ΠΉΡ‚Π΅ имя Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Create branch (Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ мСсто для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ тСстирования ΠΈΡ… Π΄ΠΎ слияния с master.

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

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Ρ‚ΠΎ измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π΅.

Если вас ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ внСсСнныС измСнСния Π²Ρ‹ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… с основной Π²Π΅Ρ‚ΠΊΠΎΠΉ, создайтС Pull request. ΠŸΡ€ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ свои измСнСния Ρ‡Π΅Ρ€Π΅Π· Pull request ΠΈ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠ»ΠΈ ΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.

Pull request ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ сразу ΠΏΡ€ΠΈ создании ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ всС Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΊΠΎΠ΄ΠΎΠΌ. ДСлаСтся это с сайта GitHub. Допустим, Π²Ρ‹ внСсли измСнСния Π² Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… с master. Π’ΠΎΠ³Π΄Π°:

  • ΠšΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Pull request Π²Π²Π΅Ρ€Ρ…Ρƒ экрана.
  • НаТмитС Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ New pull request.
  • ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠΎΠ»Π΅ Example Comparisons. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с master.
  • Π•Ρ‰Π΅ Ρ€Π°Π· просмотритС всС измСнСния, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ для ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.
  • НаТмитС Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ New pull request. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ запроса, Π΄Π°ΠΉΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НаТмитС Create pull request.

Новый PullΒ request
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ pullΒ request

Если это ваш Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‚ΠΎ ΡΠ»ΠΈΡ‚ΡŒ измСнСния с master ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Merge pull request. НаТмитС Confirm merge. Π‘Ρ€Π°Π·Ρƒ послС объСдинСния Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ с master Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Delete branch Π² Ρ„ΠΈΠΎΠ»Π΅Ρ‚ΠΎΠ²ΠΎΠΌ боксС.

Если Π²Ρ‹ участвуСтС Π² Ρ‡ΡƒΠΆΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ‚ΠΎ Ρƒ участников ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹) ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ замСчания. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ внСсти ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния? Π‘Π΅ΠΉΡ‡Π°Ρβ€Šβ€”β€ŠΡΠ°ΠΌΠΎΠ΅ врСмя. Π‘Ρ€Π°Π·Ρƒ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ участники ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° смогут Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ эти измСнСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ тСстированиС Π΄ΠΎ слияния с master. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ смоТСтС произвСсти Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΡ… Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ срСдС.

ПослС утвСрТдСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ произвСсти слияниС вашСго ΠΊΠΎΠ΄Π° с Π²Π΅Ρ‚ΠΊΠΎΠΉ master. Π’ Pull request хранится запись ΠΎ Π²Π°ΡˆΠΈΡ… измСнСниях. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ всСгда смоТСтС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот запрос ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π±Ρ‹Π»ΠΈ сдСланы ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

ОбновлСниС и слияниС

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с самой свСТСй вСрсиСй рСпозитория Π½Π° локальном ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ измСнСния с GitHub Ρ‡Π΅Ρ€Π΅Π· git pull. Для обновлСния локального рСпозитория Π΄ΠΎ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git pull

Для слияния ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠΈ с вашСй Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ:

git merge <имя_Π²Π΅Ρ‚ΠΊΠΈ>

Git стараСтся автоматичСски ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒ измСнСния, ΠΎΠ΄Π½Π°ΠΊΠΎ это Π½Π΅ всСгда Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния. Если Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ПослС внСсСния Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ ΠΈΡ… Π² качСствС Β«ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ…Β» ΠΈΠ»ΠΈ «слитых» Ρ‡Π΅Ρ€Π΅Π· git add <имя_Ρ„Π°ΠΉΠ»Π°>. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ измСнСния Π΄ΠΎ слияния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

git diff <исходная_Π²Π΅Ρ‚ΠΊΠ°> <цСлСвая_Π²Π΅Ρ‚ΠΊΠ° >

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π²Π΅Ρ‚ΠΊΠ΅ master ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π·:

git checkout master

ПослС слияния послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ эту Π²Π΅Ρ‚ΠΊΡƒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git branch -d new_feature

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ увидят Π²Π°ΡˆΡƒ Π²Π΅Ρ‚ΠΊΡƒ, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π²Π΅Ρ‚ΠΊΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git push origin <Π²Π΅Ρ‚ΠΊΠ°>
ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ…Β ΠΊΠΎΠΌΠ°Π½Π΄

Для Π½Π°Ρ‡Π°Π»Π°, Π²ΠΎΡ‚ Π²Π°ΠΌ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ GitHub, Π³Π΄Π΅ пСрСчислСны всС самыС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Git-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:

git log

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

git log β€” author=<имя>

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ нСпроиндСксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

git diff

Π‘Π»ΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹? ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ подсказку ΠΈΠ· 21 самой популярной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git help

Π›ΠΈΠ±ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΡ ΠΏΠΎ использованию ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. НапримСр, Π²ΠΎΡ‚ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ clone:

git help clone

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅

Π”Π°Π²Π°ΠΉΡ‚Π΅ потрСнируСмся, Π° Π·Π°ΠΎΠ΄Π½ΠΎ ΠΈ попривСтствуСм всСх, ΠΊΡ‚ΠΎ знакомится с Git ΠΈ GitHub. ΠœΡ‹ создадим Π‘Ρ‚Π΅Π½Ρƒ для записСй GitHub Wall, Π³Π΄Π΅ ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Git ΠΈ GitHub смогут ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² своих ΠΏΠ΅Ρ€Π²Ρ‹Ρ… open-source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

На своСй Π‘Ρ‚Π΅Π½Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹. Π“Π»Π°Π²Π½ΠΎΠ΅β€Šβ€”β€ŠΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ вСТливости ΠΈ Π΄ΠΎΠ±Ρ€ΠΎΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠžΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ картинку… Π΄Π° Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Если Π²Π°ΠΌ слоТно ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ привСтствСнный тСкст, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ шаблон ΠΈΠ· README-Ρ„Π°ΠΉΠ»Π° (ссылку см. Π½ΠΈΠΆΠ΅).

git clone https://github.com/bonn0062/github_welcome_wall.git
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ„Π°ΠΉΠ» welcome_wall.md с ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Ρ†ΠΈΡ‚Π°Ρ‚ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° сайтС GitHub. Но ΠΊΡƒΠ΄Π° интСрСснСС ΡΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² любимом тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. Π’Π°ΠΊ знания Π»ΡƒΡ‡ΡˆΠ΅ усвоятся.
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Pull request.
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΡΡƒΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НаТмитС Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Pull request.

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽβ€Šβ€”β€ŠΠ²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡΠΏΡ€Π°Π²ΠΈΠ»ΠΈΡΡŒ!

<figure><iframe src="/media/645604587ba05da2b5095a0cb2cf64e5" allowfullscreen=""></iframe></figure>

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅:


ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Anne Bonner: Getting started with Git and GitHub: the complete beginner’s guide

Как ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² Git?

Git ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС Π²Π΅Ρ‚ΠΎΠΊ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΈ. ЀактичСски, ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ вСтвлСния — ΠΎΠ΄Π½ΠΎ ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… прСимущСств Git!

Π•ΡΡ‚ΡŒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования ΠΏΡ€ΠΈ создании Π²Π΅Ρ‚ΠΎΠΊ Π² Git. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

Как ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ HEAD ?

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅ (HEAD), просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Β«git branchΒ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² качСствС СдинствСнного ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

  $ git branch <новая Π²Π΅Ρ‚ΠΊΠ°>
  

Как ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ ?

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ½ΠΎΠ²Π°Ρ‚ΡŒ свою Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅, просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ имя этой Π²Π΅Ρ‚ΠΊΠΈ Π² качСствС ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ:

  $ git branch <новая-Π²Π΅Ρ‚ΠΊΠ°> <базовая-Π²Π΅Ρ‚ΠΊΠ°>
  

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Tower Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСрСтаскиваниС для создания Π½ΠΎΠ²Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ (Π° Ρ‚Π°ΠΊΠΆΠ΅ для слияния, Π²Ρ‹Π±ΠΎΡ€Π° вишни ΠΈ Ρ‚. Π”.):

Как ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ?

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° основС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ фиксации (Π° Π½Π΅ Π²Π΅Ρ‚ΠΊΠΈ), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ…Π΅Ρˆ фиксации Π² качСствС ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ:

  $ git branch <новая Π²Π΅Ρ‚ΠΊΠ°> f71ac24d
  

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° ?

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° основС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:

  $ git branch <новая Π²Π΅Ρ‚ΠΊΠ°> v1.2
  

Как ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² качСствС основы для вашСй Π½ΠΎΠ²ΠΎΠΉ локальной Π²Π΅Ρ‚ΠΊΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«—trackΒ»:

  $ git branch --track <новая-Π²Π΅Ρ‚ΠΊΠ°> origin / <базовая-Π²Π΅Ρ‚ΠΊΠ°>
  

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для этого ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «checkout». Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ:

  $ git checkout --track origin / 
  

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ?

ΠŸΠΎΡ€Π°Π±ΠΎΡ‚Π°Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ локальной Π²Π΅Ρ‚ΠΊΠΎΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² своСм ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Сю со своСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

  $ git push -u origin <локальная-Π²Π΅Ρ‚ΠΊΠ°>
  

Π€Π»Π°Π³ Β«-uΒ» ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Git ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Β«ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ соСдинСниС», Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростит ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° «git branch»?

Команда «git branch» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для мноТСства Π·Π°Π΄Π°Ρ‡:

  • созданиС Π½ΠΎΠ²Ρ‹Ρ… мСстных Ρ„ΠΈΠ»ΠΈΠ°Π»ΠΎΠ²
  • ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ„ΠΈΠ»ΠΈΠ°Π»ΠΎΠ²
  • со списком Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ / ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ„ΠΈΠ»ΠΈΠ°Π»ΠΎΠ²
  • со списком Π²Π΅Ρ‚Π²Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹

Π£Π·Π½Π°Ρ‚ΡŒ большС

Β«Git create branchΒ» — Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π² git [Π£Ρ‡Π΅Π±Π½ΠΈΠΊ]

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π² Git

‍

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ` git ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ my-branch`.Бинтаксис ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΈ, ΠΊ соТалСнию, Π½Π΅ сущСствуСт.

ВмСсто этого Π²Ρ‹ ΠΎΡΡ‚Π°Π΅Ρ‚Π΅ΡΡŒ с этой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git checkout -b моя Π²Π΅Ρ‚ΠΊΠ°

‍

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

Однако, Ссли Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π²Π΅Ρ‚ΠΊΠΈ git Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠΎΠ΄ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒΡŽ, Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅, являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ способом описания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаСтС Π²Π΅Ρ‚ΠΊΡƒ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим Π²Π΅Ρ‚ΠΊΠΈ Git, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡ‚ΠΎΠ»ΡŒ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

‍

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„ΠΈΠ»ΠΈΠ°Π»?

‍

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ углубимся Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Git ΠΏΠΎ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΡŽ. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ говорят:

Π’Π΅Ρ‚Π²ΡŒ Π² Git — это просто Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° [Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ]. Имя Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Git — master. Когда Π²Ρ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π²Π°ΠΌ даСтся главная Π²Π΅Ρ‚ΠΊΠ°, которая ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° послСднюю ΡΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ Π²Π°ΠΌΠΈ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΎΠ½ автоматичСски продвигаСтся Π²ΠΏΠ΅Ρ€Π΅Π΄.

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

Однако, Ссли Π²Π΅Ρ‚ΠΊΠ° являСтся просто Β«ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌΒ» ΠΈΠ»ΠΈ ссылкой Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Ρ‚ΠΎ эта ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ модСль Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.Π’Π΅Ρ‚Π²ΠΈ, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ указатСлями, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Git Ρ…Ρ€Π°Π½ΠΈΡ‚ свои Π΄Π°Π½Π½Ρ‹Π΅ Π² плоской структурС, Π° Π½Π΅ Π² Π²ΠΈΠ΄Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π²Π΅Ρ€Π½ΠΎ! ЀактичСски, всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ находятся рядом Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎΠ± этом — Ρƒ вас Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Ρ‚ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Ясно, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ здСсь Π½Π΅ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ с ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ.

Π’ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ вопрос: ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ? Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Π²Π΅Ρ‚ΠΊΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ссли Π²Π΅Ρ‚ΠΊΠ° — это просто ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ΄Π½Ρƒ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ?

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Git Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚.

Когда Π²Ρ‹ выполняСтС Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Π² Git, Git сохраняСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ фиксации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ снимок содСрТимого … ΠΈ ноль ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ фиксации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ прямыми родитСлями этой фиксации: ноль Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΎΠ΄ΠΈΠ½ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈ нСсколько Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ для ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ слияния Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Π΅Ρ‚Π²Π΅ΠΉ.

НС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ‚ΠΊΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π½ΠΎ ΠΈ сами ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Когда Π²Ρ‹ запускаСтС `git log` ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΠΈΠ»ΠΈ просматриваСтС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° GitHub, эти инструмСнты ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ порядку.

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

‍

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ?

‍

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


git checkout моя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π²Π΅Ρ‚ΠΊΠ°

‍

Команда `checkout` Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ссылаСтся пСрСданная Π΅ΠΉ Π²Π΅Ρ‚Π²ΡŒ, Π·Π°Ρ‚Π΅ΠΌ обновляСт всС Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° вашСм ТСстком дискС (Ρ„Π°ΠΉΠ»Ρ‹ Π² вашСм« Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π΅ Β»), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ соотвСтствовали Ρ„Π°ΠΉΠ»Π°ΠΌ, хранящимся Π² этом ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ.

Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ваш Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ HEAD Π½Π° эту Π²Π΅Ρ‚ΠΊΡƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, эта фиксация сохранит ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΡΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ Π² ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π²Π΅Ρ‚Π²Π΅ΠΉ. Однако, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Ρ„Π»Π°Π³ Β«-bΒ», эта ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст Π²Π΅Ρ‚ΠΊΡƒ с этим ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ HEAD, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° эту Π²Π΅Ρ‚ΠΊΡƒ.

Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этих Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ порядку:


git Π²Π΅Ρ‚ΠΊΠ° имя ΠΌΠΎΠ΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ



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

‍

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π²Π΅Ρ‚ΠΊΠΈ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эту вновь ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:


git push —set-upstream origin my-branch-name

‍

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° сообщаСт ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ сСрвСру, Ρ‡Ρ‚ΠΎ новая Π²Π΅Ρ‚ΠΊΠ° Π±Ρ‹Π»Π° создана локально, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΌΠΎΠ³ Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ Π²Π΅Ρ‚ΠΊΡƒ.

Π€Π»Π°Π³ —set-upstream создаСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚Π²ΡŒΡŽ Π½Π° сСрвСрС ΠΈ этой Π²Π΅Ρ‚Π²ΡŒΡŽ локально. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ эта связь Π½Π΅ устанавливаСтся автоматичСски Git — это ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ локальная Π²Π΅Ρ‚Π²ΡŒ Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связана с Π²Π΅Ρ‚Π²ΡŒΡŽ с ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π° сСрвСрС.

‍

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ для создания ΠΈ присвоСния ΠΈΠΌΠ΅Π½ Π²Π΅Ρ‚ΠΊΠ°ΠΌ

‍

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с основами создания Π²Π΅Ρ‚ΠΎΠΊ, самоС врСмя Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ — Π² ΠΎΠ±Ρ‰Π΅ΠΌ, Π²Π°ΠΌ слСдуСт ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ называСтся Β«git flowΒ» для управлСния вашим Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ.Если Π²Ρ‹ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π°Π΄ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π΅Π³ΠΎ, вСроятно, стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Git flow — это мСтодология создания, наимСнования ΠΈ слияния Π²Π΅Ρ‚Π²Π΅ΠΉ, которая постоянно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π°ΡˆΡƒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Π² «чистом» состоянии, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ запросы Π½Π° вытягиваниС ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ выпуски ΠΏΠ»Π°Π²Π½ΠΎ ΠΈ Π±Π΅Π· ошибок. О Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² Π±Π»ΠΎΠ³Π΅ Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΡ€Π° ВинсСнта ДриссСна.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ — ΠΎΠ½ΠΈ всСгда Π΅ΡΡ‚ΡŒ — Ссли Π²Ρ‹ Ρ‚ΠΎΠΆΠ΅ заинтСрСсованы Π² ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ этот ΠΎΡ‚Π²Π΅Ρ‚ ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ стСка.

Π£Π΄Π°Ρ‡Π½ΠΎΠ³ΠΎ кодирования!

‍

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git — devconnected

Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π²Ρ‹, вСроятно, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Git ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС систСмы контроля вСрсий.

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, создав Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git.

Π²Π΅Ρ‚ΠΎΠΊ Git ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Git ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части вашСй основной истории Git.

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

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git checkoutΒ» с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Β«-bΒ» для Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Π”Π°Π»Π΅Π΅ Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ.

  $ git checkout -b <имя-Π²Π΅Ρ‚ΠΊΠΈ>  

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· основной Π²Π΅Ρ‚ΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«featureΒ»

.

Для этого Π²Ρ‹ запуститС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git checkoutΒ» с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Β«-bΒ» ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Β«featureΒ» Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ Π²Π΅Ρ‚ΠΊΠΈ.

  $ git checkout -b функция
ΠŸΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Π΅Ρ‚ΠΊΠΈ  

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git checkoutΒ», Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° эту Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

Но Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ Git Π±Π΅Π· автоматичСского ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ?

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git Π±Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git, Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ Π½Π° эту Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git branchΒ» ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя создаваСмой Π²Π΅Ρ‚ΠΊΠΈ Git.

  $ git branch   

ПозТС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«git checkoutΒ».

  $ git checkout <имя_отрасли>  

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«featureΒ».

  $ функция Π²Π΅Ρ‚ΠΊΠΈ git  

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ, запустив ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git branchΒ» с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Β«-aΒ» для всСх Π²Π΅Ρ‚Π²Π΅ΠΉ.

  $ git branch -a  

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создали Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Π½Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ checkout.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Π’ послСдних Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· фиксации HEAD Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² вашСй истории Git.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· фиксации, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git checkoutΒ» с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Β«-bΒ» ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ имя Π²Π΅Ρ‚ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ создана Π²Π΅Ρ‚ΠΊΠ°.

  $ git checkout -b <имя_отрасли>   

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git branchΒ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ SHA фиксации для Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

  $ git branch <имя_ΠΎΡ‚Π²Π΅Ρ‚ΠΊΠΈ>   

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ Git ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² истории Git.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ SHA ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ· вашСй истории, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«git logΒ» с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ «–onelineΒ».

  $ git log --oneline --graph

* 9127753 (HEAD -> master) Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 3
* f2fcb99 ΠšΠΎΠΌΠΌΠΈΡ‚ 2
* cab6e1b (origin / master) master: Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация  

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠΉ фиксации (f2fcb99), Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

  $ git checkout -b функция f2fcb99
ΠŸΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «функция»  

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git logΒ», Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ваша Π²Π΅Ρ‚ΠΊΠ° Π±Ρ‹Π»Π° создана Π½Π° основС Π²Ρ‚ΠΎΡ€ΠΎΠΉ фиксации вашСй истории.

  $ git log --oneline --graph

* f2fcb99 (HEAD -> feature) Commit 2
* cab6e1b (origin / master) master: Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация  

ΠŸΡ€Π΅ΠΊΡ€Π°ΡΠ½ΠΎ, Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создали Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°!

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· Ρ‚Π΅Π³Π°

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… руководствах ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π³ΠΈ Git довольно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹: ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Ρ‹ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

Как слСдствиС, созданиС Π²Π΅Ρ‚ΠΎΠΊ Git ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π΅Π³ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ вСсьма ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· Ρ‚Π΅Π³Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git checkoutΒ» с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Β«-bΒ» ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ имя Π²Π΅Ρ‚ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ имя Ρ‚Π΅Π³Π° для вашСй Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

  $ git checkout -b <имя_отрасли> <имя_ Ρ‚Π΅Π³Π°>  

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«Π²Π΅Ρ‚Π²ΡŒ gitΒ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚Π΅Π³Π°.

  $ git branch <имя_ΠΎΡ‚Π²Π΅Ρ‚ΠΊΠΈ> <имя_ Ρ‚Π΅Π³Π°>  

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git ΠΈΠ· Ρ‚Π΅Π³Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«v1.0 Β»Π² вашСй истории.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Π³ΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git tagΒ». Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git logΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π΅Π³, связанный с фиксациСй.

  $ git tag
ВСрсия 1.0  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ свой Ρ‚Π΅Π³, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«git checkoutΒ».

  $ git checkout -b функция v1.0  

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свою ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Git, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваша новая Π²Π΅Ρ‚ΠΊΠ° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»Π° создана ΠΈΠ· Ρ‚Π΅Π³Π°.

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«Π²Π΅Ρ‚Π²ΡŒ gitΒ» для создания этой Π²Π΅Ρ‚ΠΊΠΈ.

  $ функция Π²Π΅Ρ‚ΠΊΠΈ git v1.0  

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½Π°Ρ…

Когда Π²Ρ‹ создаСтС Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Git (Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠΈ, Ρ‚Π΅Π³ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с этой ошибкой

  Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ: Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: <ΠΎΠ±ΡŠΠ΅ΠΊΡ‚>  

Π’Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ эта ошибка?

Π­Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π΅Ρ‚Π²ΡŒ ΠΈ Ρ‚Π΅Π³.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΡƒΡŽ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Git Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с этой ошибкой ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«checkoutΒ».

Если Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· Ρ‚Π΅Π³Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«v1.0Β», Π½ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΡˆΠΈΡ… Π²Π΅Ρ‚Π²Π΅ΠΉ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ имя Β«v1.0Β», Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ

  $ git checkout -b функция v1.0
ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: refname 'v1.0' Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ.
ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: refname 'v1.0 'Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ.
Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ: Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: 'v1.0'.  

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ вашим послСдним Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся Ρ‚Π΅Π³, Π° Π½Π΅ имя Π²Π΅Ρ‚ΠΊΠΈ.

Для устранСния Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΉ записи просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ refs ΠΊ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ

  $ git checkout -b функция refs / tags / v1.0
ΠŸΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ 'ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ'  

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

Π’ этом руководствС Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«git checkoutΒ».

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git branchΒ», Ссли Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

НаконСц, Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования: созданиС Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚Π΅Π³ΠΎΠ² Π² вашСй истории Git.

Если Π²Π°ΠΌ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с нашими послСдними руководствами:

Если вас интСрСсуСт Git ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π», посвящСнный этому, Π½Π° Π²Π΅Π±-сайтС, поэтому ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π½ΠΈΠΌ!

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git?

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git branch , Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ имя Π²Π΅Ρ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π”ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

 функция Π²Π΅Ρ‚ΠΊΠΈ git-A 

Π­Ρ‚ΠΎ создаст Π²Π΅Ρ‚ΠΊΡƒ Git для вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠΉ ссылки.

Как Π²Ρ‹ просматриваСтС свой список Π²Π΅Ρ‚ΠΎΠΊ Git?

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

Как ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π· Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git?

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ создали Π²Π΅Ρ‚ΠΊΡƒ Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git checkout , Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт имя Π²Π΅Ρ‚ΠΊΠΈ, для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ этой Π²Π΅Ρ‚ΠΊΠΈ.

 функция ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ git-A 

Как Π²Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ создаСтС ΠΈ провСряСтС Π²Π΅Ρ‚ΠΊΡƒ Git?

Когда Π²Ρ‹ ΠΎΡΠ²ΠΎΠΈΡ‚Π΅ΡΡŒ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Git, Π²Π°ΠΌ, вСроятно, понравится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° дСйствия ΠΏΠΎ созданию ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΡŽ Π²Π΅Ρ‚ΠΊΠΈ Π² Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

 git checkout -b <Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ> 

Π­Ρ‚ΠΎ создаст Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ сразу ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ Π²Π΅Ρ‚ΠΊΡƒ.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π² GitKraken?

Для сравнСния: Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ GitKraken Git для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ своСго рСпозитория, созданиС Π²Π΅Ρ‚ΠΊΠΈ станСт Π΅Ρ‰Π΅ ΠΏΡ€ΠΎΡ‰Π΅.

Как ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΠΈ Π² Git — Linux Подсказка

Git — ΠΎΠ΄Π½Π° ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… систСм контроля вСрсий.Он ΠΎΡ‡Π΅Π½ΡŒ популярСн практичСски срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ систСмных администраторов для управлСния исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ особСнности Git, Π²Π΅Ρ‚ΠΊΠΈ Git. Π˜Ρ‚Π°ΠΊ, приступим.

Π€ΠΈΠ»ΠΈΠ°Π»ΠΎΠ² Git:

Допустим, Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ своим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π’Π½Π΅Π·Π°ΠΏΠ½ΠΎ Ρƒ вас появляСтся отличная идСя, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ. Но Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, сработаСт это ΠΈΠ»ΠΈ Π½Π΅Ρ‚. НС Π±ΠΎΠΉΡ‚Π΅ΡΡŒ, Π²Π΅Ρ‚ΠΊΠ° Git ΡƒΠΆΠ΅ здСсь!

Π§Ρ‚ΠΎ ΠΆ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои ΠΈΠ΄Π΅ΠΈ Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅.Если Π²Π°ΠΌ это нравится, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с Π²Π΅Ρ‚ΠΊΠΎΠΉ master . Если ΠΎΠ½ Π²Π°ΠΌ Π½Π΅ нравится, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ / ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π­Ρ‚ΠΎ Π½Π΅ повлияСт Π½Π° Π²Π°ΡˆΡƒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° master являСтся Π²Π΅Ρ‚Π²ΡŒΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Git. Он автоматичСски создаСтся ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория Git.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… этой ΡΡ‚Π°Ρ‚ΡŒΠΈ я ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ Git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ Git ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ Git. Π˜Ρ‚Π°ΠΊ, Π²ΠΏΠ΅Ρ€Π΅Π΄.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° рСпозитория Git для тСстирования:

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ я ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΡŽ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΎΠΈΡ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² GitHub Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. ПозТС я сдСлаю Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ вСтвлСния Π² этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой собствСнный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ GitHub для тСстирования Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ я ΠΏΠΎΠΊΠ°Π·Π°Π» Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

$ git clone https://github.com/shovon8/angular-hero-api

ПослС клонирования рСпозитория Github ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Бписок ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π²Π΅Ρ‚ΠΎΠΊ Git:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² ΠΌΠΎΠ΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π²Π΅Ρ‚ΠΊΠ° master .Когда Π²Ρ‹ создадитС большС Π²Π΅Ρ‚ΠΎΠΊ, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ здСсь. ΠŸΠ΅Ρ€Π΅Π΄ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΡŒΡŽ стоит Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° (*). Он Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Ρ†Π²Π΅Ρ‚Ρƒ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‚ΠΎΠΊ. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΠ΅Ρ€Π΅Π΄ Π²Π΅Ρ‚Π²ΡŒΡŽ master стоит Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° (*), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это тСкущая активная Π²Π΅Ρ‚ΠΊΠ°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ Git:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ свои ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ НовыС возмоТности Π²Π΅Ρ‚ΠΊΠΈ git

Новая Π²Π΅Ρ‚ΠΊΠ° new-features Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ создана ΠΈΠ· HEAD (послСдняя фиксация) Π²Π΅Ρ‚ΠΊΠΈ master .

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ пСрСчислитС всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Git Π² своСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git, новая Π²Π΅Ρ‚ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² спискС, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° снимкС экрана Π½ΠΈΠΆΠ΅.

ΠžΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π· Π² Ρ„ΠΈΠ»ΠΈΠ°Π»Ρ‹ Git:

Π Π°Π½Π΅Π΅ Π²Ρ‹ создали Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Git new-features . Но ΠΎΠ½ Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ Π½ΠΈΠΆΠ΅.

Активация Π²Π΅Ρ‚ΠΊΠΈ Π² Git называСтся ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΊΠ°Π·Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π· Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ new-features , Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ НовыС возмоТности git checkout

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ пСрСчислитС всС Π²Π΅Ρ‚Π²ΠΈ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° с Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½Π°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ выписка ΠΈΠ· Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°:

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ сначала ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚ΠΎ Ρƒ Git Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для вас. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π· Π² свою Π½Π΅Π΄Π°Π²Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Для этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ -b ΠΈΠ· git checkout .

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ new-feature ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ git checkout -b новая функция

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² вСтвях Git:

ПослС оформлСния Π·Π°ΠΊΠ°Π·Π° Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ new-features Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² эту Π²Π΅Ρ‚ΠΊΡƒ.

НапримСр, я ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Ρ„Π°ΠΉΠ» package.json Π² ΠΌΠΎΠ΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git status :

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ new-features , ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ Π½ΠΈΠΆΠ΅.

$ git add -A
$ git commit -m ‘исправлСнныС вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² Ρ„Π°ΠΉΠ»Π΅ package.json’

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Π²Π΅Ρ‚ΠΊΡƒ с Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ .

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ Π² Π²Π΅Ρ‚ΠΊΡƒ master , Π²Ρ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. Новый ΠΊΠΎΠΌΠΌΠΈΡ‚ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π²Π΅Ρ‚ΠΊΠ΅ new-features , ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ ΠΈΠ»ΠΈ фиксации:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ фиксации ΠΈΠ»ΠΈ ΠΈΠ· HEAD (послСдняя фиксация) Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π΅ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (скаТСм, test ) ΠΈΠ· HEAD (послСдняя фиксация) Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ (скаТСм, new-features ), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ git branch test Π½ΠΎΠ²Ρ‹Π΅ возмоТности

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²Π΅Ρ‚ΠΊΠ° test ΠΈ new-features ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ фиксации.

Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ test2 ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ фиксации ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ master .

Π‘Π½Π°Ρ‡Π°Π»Π° пСрСчислитС всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ git log –oneline master

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²Π΅Ρ‚ΠΊΠΈ master . ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…Π΅Ρˆ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ фиксации, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Π΅Ρˆ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ фиксации.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для фиксации 45c336e Π² качСствС HEAD (послСдняя фиксация) Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ test2 .Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

$ git branch test2 45c336e

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, новая Π²Π΅Ρ‚ΠΊΠ° test2 ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΎ 45c336e ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π²Ρ‹ создаСтС Π²Π΅Ρ‚ΠΊΠΈ Π² Git. Бпасибо, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ.

Как ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git

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

Π’ этом руководствС ΠΌΡ‹ рассмотрим ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ вСтвлСния ΠΈ слияния; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Git Π² качСствС нашСй систСмы контроля вСрсий Π² рассмотрСнных ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ этом руководствС ΠΌΡ‹ рассмотрим 3 ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: Π²Π΅Ρ‚ΠΊΠ° , checkout ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ . Π’Π΅Ρ‚Π²ΡŒ — это, ΠΏΠΎ сути, вСрсия вашСго прилоТСния, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Π΅Ρ‚ΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ исправлСния ошибок. ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π° — это процСсс ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π½Π΅ вносили измСнСния Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ своСго сайта.НаконСц, слияниС ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ Π² ΠΎΠ΄Π½Ρƒ, фактичСски создавая ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ€ΡΠΈΡŽ вашСго сайта ΠΈΠ· Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π½Π° использованиС этих ΠΊΠΎΠΌΠ°Π½Π΄ Π² контСкстС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ нашСго сайта.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°

Наш Π²Π΅Π±-сайт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ находится Π² сСти, Π½ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, скаТСм, Ρ‚Π΅Π»Π΅ΠΆΠΊΡƒ для ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наши ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚ΡŒ наш ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

ΠœΡ‹ создадим Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ cart :

  $ git checkout -b cart
ΠŸΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ "Ρ‚Π΅Π»Π΅ΠΆΠΊΠ°"
  

ΠŸΡ€ΠΈ этом создаСтся новая Π²Π΅Ρ‚ΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Π»Π΅ΠΆΠΊΠ° ΠΈ автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° Π½Π΅Π΅, готовая Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° являСтся сокращСниСм для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ:

  $ git branch cart
$ git кассира
  

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‚Π²ΠΈ: наша основная Π²Π΅Ρ‚ΠΊΠ°, называСмая master , ΠΈ наша Π½Π΅Π΄Π°Π²Π½ΠΎ созданная Π²Π΅Ρ‚ΠΊΠ° cart .

Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΈΠ»ΠΈΠ°Π»

БСйчас ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² нашСй Π²Π΅Ρ‚ΠΊΠ΅ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹, Π½ΠΎ допустим, ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π° нашСм основном сайтС. На этом этапС ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ:

  $ git checkout -b bugfix
ΠŸΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ bugfix
  

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ нашим исправлСниСм, Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ сайта, ΠΈ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² нашСй Π²Π΅Ρ‚ΠΊΠ΅ с исправлСниями ошибок:

  $ git commit -m "fixed the bug"
[bugfix c42b77e] исправлСнная ошибка
1 Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½
  

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ Π² наш ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:

  $ git push -u origin buxfix
* [новая Π²Π΅Ρ‚ΠΊΠ°] исправлСниС -> исправлСниС
Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ошибки Π²Π΅Ρ‚ΠΊΠΈ, настроСнноС для отслСТивания исправлСния ошибки ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ· источника
  

ОбъСдинСниС Π²Π΅Ρ‚ΠΊΠΈ

ΠœΡ‹ протСстировали исправлСниС ΠΈ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ объСдиним это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² мастСр.Но сначала Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ нашСй основной Π²Π΅Ρ‚ΠΊΠ΅:

  $ git checkout master
ΠŸΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° Π²Π΅Ρ‚ΠΊΡƒ master
Π’ вашСй Π²Π΅Ρ‚ΠΊΠ΅ установлСна ​​послСдняя вСрсия "origin / master"
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нашС исправлСниС:

  $ git merge bugfix
ОбновлСниС 68fb3f6..c42b77e
ΠŸΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ° Π²ΠΏΠ΅Ρ€Π΅Π΄
index.html | 1
1 Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½
  

И Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° GitHub:

  $ git push origin master
ВсСго 0 (Π΄Π΅Π»ΡŒΡ‚Π° 0), ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 0 (Π΄Π΅Π»ΡŒΡ‚Π° 0)
Π½Π° [email protected]: adamw / first-project / repository.ΠΌΠ΅Ρ€Π·Π°Π²Π΅Ρ†
68fb3f6..c42b77e мастСр -> мастСр
  

Π£Π±ΠΎΡ€ΠΊΠ°

ВсС выглядит Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ошибка исправлСна ​​и Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Π°. Π£Π΄Π°Π»ΠΈΠΌ Π½Π°ΡˆΡƒ Π²Π΅Ρ‚ΠΊΡƒ с исправлСниСм ошибок:

  $ git branch -d bugfix
Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ (Π±Ρ‹Π»ΠΎ c42b77e)
  

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· нашСго ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория.

  $ git push origin - ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ
ΠšΠΎΠΌΡƒ [email protected]: adamw / first-project / repository.git
- [ΡƒΠ΄Π°Π»Π΅Π½ΠΎ] исправлСниС
  

Π‘Π²ΠΎΠ΄ΠΊΠ°

Π’ этом руководствС ΠΌΡ‹ рассмотрСли созданиС, объСдинСниС ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΎΠΊ ΠΊΠ°ΠΊ локально, Ρ‚Π°ΠΊ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ.

Π“Π»Π°Π²Π° 22 Π€ΠΈΠ»ΠΈΠ°Π»Ρ‹ | Π£Π΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Git ΠΈ GitHub для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉR

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

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

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git branch , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git checkout . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ основного ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° master , ΠΌΡ‹ Π½Π°Π·ΠΎΠ²Π΅ΠΌ это Β«Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉΒ».

  git branch issue-5
git checkout issue-5  

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ярлык git checkout -b issue-5 для ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ создания ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Π΅Ρ‚ΠΊΠΈ.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ.

ΠšΠΎΠΌΠΌΡƒΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ отдСлСния

Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ git checkout для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ вСтвями.

Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² Π²Π΅Ρ‚ΠΊΠ΅ ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ,
Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°? Один ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² — Git
Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ
Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ — Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ фиксации. Π—Π΄Π΅ΡΡŒ я
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Β«WIPΒ» Π² качСствС сообщСния фиксации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

  git commit --all -m "WIP"
ΠœΠ°ΡΡ‚Π΅Ρ€ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ git  

Π—Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ Π² Ρ„ΠΈΠ»ΠΈΠ°Π» ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π²Ρ‹
Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, сбросив своС состояниС.

Если это Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ состояниС фиксации ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ, ссылка Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π° ΠΊΠ°ΠΊ SHA ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ фиксации, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² git log .

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ сдСлали свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ зафиксировали Π΅Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ master ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

  мастСр ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ git
git merge ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°-5  

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв слияниС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π³Π»Π°Π΄ΠΊΠΎ.Однако Ссли ΠΎΠ±Π΅ Π²Π΅Ρ‚Π²ΠΈ Π²Ρ‹
ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π°, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ объСдинСниС
ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚.

  git merge issue-5
# АвтоматичСскоС объСдинСниС index.html
# CONFLICT (content): ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния Π² index.html
# АвтоматичСскоС слияниС Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ; ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.  

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это NOT PANIC . ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния — это Π½Π΅ ΠΊΠΎΠ½Π΅Ρ†
world ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°Π»Ρ‹ ΠΈ ΠΈΡ… Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом ΠΊ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° слияния являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π²
ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с git status :

  git статус
# На Π²Π΅Ρ‚ΠΊΠ΅ мастСра
# Π£ вас Π΅ΡΡ‚ΡŒ нСсвязанныС ΠΏΡƒΡ‚ΠΈ.# (ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ "git commit")
#
# НС ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ:
# (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add  ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
#
# ΠΎΠ±Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹: index.html
#
# Π² ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π±Ρ‹Π»ΠΎ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add" ΠΈ / ΠΈΠ»ΠΈ "git commit -a")  

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, это ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ index.html Π½Π΅ объСдинСно ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ
Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ строки ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚.

  <<<<<<< HEAD: index.html
ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚: [email protected]
=======
ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ ΠΏΠΎ адрСсу [email protected]
>>>>>>> ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°-5: index.html

Π’ этом ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅ строки ΠΌΠ΅ΠΆΠ΄Ρƒ <<<<<< HEAD: index.html ΠΈ ====== ΡΠ²Π»ΡΡŽΡ‚ΡΡ
ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ сСйчас Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ =======
ΠΈ >>>>>>> issue-5: index.html взяты ΠΈΠ· Π²Π΅Ρ‚Π²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ объСдиняСм.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ этот Ρ€Π°Π·Π΄Π΅Π», ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ состояниС Π² объСдинСнном Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅.Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ»ΠΈ создайтС Π³ΠΈΠ±Ρ€ΠΈΠ΄. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° <<<<<< , ====== ΠΈ >>>>>> .

  
ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ ΠΏΠΎ [email protected]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС git add index.

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

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