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

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ основам Git/GitHub. Руководство ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŽ вСрсий для… | by Vlad Kopenkin

Если Π’Ρ‹ всё Π΅Ρ‰Π΅ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с систСмой контроля вСрсий ΠΈ Π΅Ρ‘ использованиС Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π’Π°Ρˆ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, Ρ‚ΠΎ сСйчас — самоС врСмя Π½Π°Ρ‡Π°Ρ‚ΡŒ! Π­Ρ‚ΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰Π΅Π΅ руководство ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π’Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Git ΠΈ даст Π’Π°ΠΌ ΠΏΡ€ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ для дальнСйшСго развития. Git ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° любом ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈ Ρ‡Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅ Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ†Π΅Π½Π½Ρ‹ΠΌ сотрудником Π’Ρ‹ станСтС для Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’Π°ΠΊ ΠΆΠ΅, это ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ Π’Π°Ρˆ Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π’Ρ‹ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ смоТСтС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ, Π½Π΅ Π²ΠΎΠ»Π½ΡƒΡΡΡŒ ΠΏΡ€ΠΈ этом ΠΎ пСрСносС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· Ρ„Π»ΡΡˆ накопитСли… Π Π°Π±ΠΎΡ‚Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ станСт Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»Π΅Π³Ρ‡Π΅. Π‘Ρ‹Π²Π°Π»ΠΈ Π»ΠΈ Ρƒ Вас случаи, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ становился Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ казалось, Π±ΡƒΠ΄Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π»Π΅Π³Ρ‡Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с нуля? Π‘ систСмой контроля вСрсий Π’Ρ‹ смоТСтС просто Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии, Π±Π΅Π· всСго Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π’Ρ‹ успСли Π²ΠΎΠΏΠ»ΠΎΡ‚ΠΈΡ‚ΡŒ Π² 4 часа ΡƒΡ‚Ρ€Π°.

Git — это ΠΎΠ΄Π½Π° ΠΈΠ· систСм контроля вСрсий. По сущСству это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Π’Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ этого ΠΆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρƒ Π’Π°ΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³ — Ρƒ всСго Π±ΡƒΠ΄Π΅Ρ‚ копия. Π­Ρ‚ΠΎ полная ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ SVN, Π³Π΄Π΅ вся история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС.

GitHub, часто ΠΏΡƒΡ‚Π°ΡŽΡ‚ с Git. На самом Π΄Π΅Π»Π΅ — это хостинг Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π’Π°ΠΌ ΠΏΠΎΠΊΠ° нСпонятно Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π½ΠΎ Π½Π΅ ΡΠΏΠ΅ΡˆΠΈΡ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ всё прояснится. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, GitHub — это Ρ‚ΠΎ мСсто, ΠΊΡƒΠ΄Π° Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Git.

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

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ Git. Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Windows я ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Git Bash, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ доступСн послС установки Git. Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Mac, использованиС Terminal Π±ΡƒΠ΄Π΅Ρ‚ достаточным. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ установки приступайтС ΠΊ рСгистрации Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° GitHub. Π˜Ρ‚Π°ΠΊ, Ρƒ Вас Π΅ΡΡ‚ΡŒ Git, инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΈ GitHub Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, ΠΊΡƒΠ΄Π° Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ свои Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Git Bash ΠΈΠ»ΠΈ Terminal ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Если Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Git Bash, Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ β€œGit Bash Here” ΠΈ ΠΎΠ½ запустится Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

git init
Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст .git Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² Π’Π°ΡˆΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ»ΠΈ β€œrepo” это коллСкция всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Ρ‹ Π½Π° протяТСнии всСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ послС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ рСпозитория. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

git config --global user.name "Π’Π°ΡˆΠ΅ Имя"
git config --global user.email "Π’Π°ΡˆΠ°ΠŸΠΎΡ‡Ρ‚Π°@mail.com"
Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ опрСдСлят ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ commit(фиксированиС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ). Π˜Ρ… стоит Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всСго ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΉ установкС Git.

git add имяЀайла.Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅
Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ β€œΠΈΠΌΡΠ€Π°ΠΉΠ»Π°.Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅β€ Π½Π° любой Ρ„Π°ΠΉΠ», измСнСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π’Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€œindex.html”. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Ρ„Π°ΠΉΠ» Π² β€œstaging area”(участок ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ). ВоспринимайтС staging area, ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡ†ΠΈΡŽ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ»Ρ‹ проходят ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ Π² Π’Π°Ρˆ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

git add .
Если Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всё ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² staging area, Ρ‚ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° сдСлаСт всё сама.

git add *.html
Если Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .html Π² staging area Ρ‚ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π² зависимости ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ.

git status
ΠŸΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² staging area ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΈ ΠΆΠ΄ΡƒΡ‚ пСрСмСщСния Π² staging area.

git reset имяЀайла. Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅
Π£Π±ΠΈΡ€Π°Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ· staging area.

git rm --cached имяЀайла.Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅
Π£Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΈΠ· staging area ΠΈ опрСдСляСт Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ.

git commit -m "ОписаниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°"
Π‘Π΅Ρ€Ρ‘Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· staging area ΠΈ β€œΡ„ΠΈΠΊΡΠΈΡ€ΡƒΠ΅Ρ‚β€ ΠΈΡ… Π² Π’Π°Ρˆ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π’ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ слСдуСт Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ дСталями, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: β€œΡƒΡΡ‚Ρ€Π°Π½ΠΈΠ» ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρβ€ вмСсто ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… сообщСний β€œΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния”

touch .gitignore
Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст Ρ„Π°ΠΉΠ» с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ .gitignore. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ названия Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, измСнСния Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π’Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ (ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Git). ИзмСнСния Π² ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ git status.

git branch Π½Π°Π·Π²Π°Π½ΠΈΠ΅Π’Π΅Ρ‚ΠΊΠΈ
Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ branch(Π²Π΅Ρ‚Π²ΡŒ). Π’Π΅Ρ‚Π²ΡŒ — это точная копия Π’Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².

git checkout β€œΠ½Π°Π·Π²Π°Π½ΠΈΠ΅Π’Π΅Ρ‚ΠΊΠΈβ€
ΠŸΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π’Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ созданной Π’Π°ΠΌΠΈ Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π΅Ρ‘ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…. Π—Π΄Π΅ΡΡŒ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ измСнСния ΠΊΠΎΠ΄Π°. Когда Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ commit ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния Π² GitHub (ΠΎΠ± этом Π½ΠΈΠΆΠ΅) ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ Π’Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ измСнСния сдСланныС Π² этой Π²Π΅Ρ‚ΠΊΠ΅.

git merge Π½Π°Π·Π²Π°Π½ΠΈΠ΅Π’Π΅Ρ‚ΠΊΠΈ
ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² Master(Π³Π»Π°Π²Π½ΠΎΠΉ) Π²Π΅Ρ‚Π²ΠΈ, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π·ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· любой ΠΈΠ· Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… вмСстС.

git remote add origin https://github.com/ΠΈΠΌΡΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.git
Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ β€œΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅β€ Π’Π°ΡˆΠ΅Π³ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория. Всё Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎ этого происходило ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° Π’Π°ΡˆΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² GitHub Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΡƒΠ΄Π° Π’Ρ‹ смоТСтС ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ измСнСния ΠΈΠ· локального рСпозитория. After you created your remote repository you will be provided with a link and that link is the location you will want to use in the above command.

git remote
Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ список ΠΈΠ· всСх ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊ Π’Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.

git push -u origin master
Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ стоит ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·.

git push
This is what you will use to push your code to GitHub after your initial push.

git clone https://github.com/ΠΈΠΌΡΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.git
Если Ρƒ Вас отсутствуСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Ρ‚ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

git pull
Если Π’Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ с нСсколькими людьми, Ρ‚ΠΎ эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ· ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

НадСюсь это руководство ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π’Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ происходит. Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с уточнСниями ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ Π½Π° вопросы Π² коммСнтариях.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π» ΡΡ‚Π°Ρ‚ΡŒΠΈ — ссылка

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git

Как Π²Ρ‹ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с github

  1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Β project_name, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π½Π΅Π΅.
  2. ВыполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
  
git clone [emailΒ protected]:devlabuser/sharp.git ./
  1. Β«./» означаСт, Ρ‡Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с выписанной Π²Π΅Ρ‚ΠΊΠΎΠΉΒ master. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ, ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ с githubΒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅.

Как Π²Ρ‹ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ с github

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹Β Β«checkout» моТно Π²Ρ‹ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с github:

$ git checkout -b dev origin/dev
$ git checkout -b project_branch origin/project_branch

Или Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅:

$ git checkout --track origin/production

Если ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ сработала, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅:

$ git remote update

Если Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ сработали, Π²Ρ‹Π΄Π°Π»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с Π½Π΅ΠΉ Π½Π΅Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ способом:

git checkout -b project_branch
git pull origin project_branch

Π’. Π΅. сначала ΠΌΡ‹ создаСм Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π² Π½Π΅Π΅ измСнСния ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ Π½Π° github.

Β 

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

  1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:
$ git checkout -b dev
Switched to a new branch 'dev'

2. ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ Π΅Π΅ Π½Π° github:

$ git push origin dev
Total 0 (delta 0), reused 0 (delta 0)
To [emailΒ protected]:devlabuser/sharp.git
 * [new branch]      dev -> dev

Как ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² git

$ git checkout project2_branch

Если Π²Ρ‹ случайно ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ„Π°ΠΉΠ», ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π΅Π³ΠΎ ΠΈΠ· Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°:

$ git checkout readme.txt

Как ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список Π²Π΅Ρ‚ΠΎΠΊ

Команда «branch» позволяСт ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список Π²Π΅Ρ‚ΠΎΠΊ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ВСкущая Π²Π΅Ρ‚ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ:

$ git branch
* dev
  master

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ commit

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, выполняСм Π² Π½Π΅ΠΉ Π½ΡƒΠΆΠ½Ρ‹Π΅ измСнСния.

  1. Бписок всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
  
$ git status

2. ΠŸΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚, добавляя Π² Π½Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

$ git add <file1> <file2> ...

Или удаляСм ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:

$ git rm <file1> <file2> ...

3. ВыполняСм ΠΊΠΎΠΌΠΌΠΈΡ‚:

$ git commit -m 'ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ'

4. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ сущСствуСт Π΄Π²Π΅ основныС Π²Π΅Ρ‚ΠΊΠΈ β€” dev ΠΈ master. Dev β€” общая Π²Π΅Ρ‚ΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ тСстировщиков. ИмСнно Π² Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ всС Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹ΠΌ Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ. Master β€” Π²Π΅Ρ‚ΠΊΠ° для Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° Π±ΠΎΠ΅Π²Ρ‹Π΅ сСрвСра.

ПослС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π½Π°Π΄ΠΎ Π²Π»ΠΈΡ‚ΡŒ Π² Π½Π°ΡˆΡƒ Π²Π΅Ρ‚ΠΊΡƒ измСнСния ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ dev ΠΈ master:

$ git pull origin dev 
$ git pull origin master

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наша Π²Π΅Ρ‚ΠΊΠ° содСрТит измСнСния для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈ всС послСдниС измСнСния ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ успСла внСсти ΠΊΠΎΠΌΠ°Π½Π΄Π°.

5. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ dev:

$ git checkout dev

6. Π’Π»ΠΈΠ²Π°Π΅ΠΌ Π² dev измСнСния ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

  
$ git merge project_branch

7. Π—Π°Π»ΠΈΠ²Π°Π΅ΠΌ послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Π²Π΅Ρ‚ΠΊΠΈ dev Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр:

$ git push origin dev
 
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 286 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To [emailΒ protected]:devlab/sharp.git
   d528335..9a452d9  dev -> dev

pushΒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉΒ origin/devΒ ΠΎΠ±ΠΎΠ³Π½Π°Π» Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π΅Π³ΠΎ копию.

Β 

Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Допустим, ΠΏΡ€ΠΈ слиянии с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ git Π²Ρ‹Π΄Π°Π» ΠΎΡˆΠΈΠ±ΠΊΡƒ. Команда git statusΒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅:

$ git status
...
Unmerged paths:
  (use "git add <file>. .." to mark resolution)
 
        both modified:      root/css/styles.css.gz
 
 
$ git diff root/css/styles.css.gz
diff --cc root/css/styles.css.gz
index 970c721,bc6d170..0000000
Binary files differ

ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» являСтся Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ (это ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, изобраТСния ΠΈ Ρ‚.ΠΏ.), ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° стандартным способом, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСдактирования β€” Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, Π½Π°Π΄ΠΎ просто Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ β€” какая вСрсия Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ: ваша ΠΈΠ»ΠΈ ΠΈΠ· Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ„Π°ΠΉΠ»Π°, Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git checkout --ours binary.dat
git add binary.dat

Если ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ· Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ:

git checkout --theirs binary.dat
git add binary.dat

Β«oursΒ» β€” ΠΎΡ‚ английского «наш», Β«theirsΒ» β€” ΠΎΡ‚ английского Β«ΠΈΡ…Β».

Β 

Как ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

git logΒ β€” просмотр Π»ΠΎΠ³ΠΎΠ².

$ git log
commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a
Author: DevLab User <[emailΒ protected]>
Date:   Wed Jul 31 18:35:47 2013 +0400
 
    first commit
 
commit d528335724dfc15461996ed9d44d74f23ce6a075
Author: DevLab User <[emailΒ protected]>
Date:   Wed Jul 31 06:24:57 2013 -0700
 
    Initial commit

Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π² ΠΎΠ΄Π½Ρƒ строку:

git log --pretty=oneline
 
9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a first commit
d528335724dfc15461996ed9d44d74f23ce6a075 Initial commit

Для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈΒ git logΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ просмотрщик, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ рСпозитория. d528335 (devlabuser 2013-07-31 06:24:57 -0700 2) =====

git annotate, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ строки ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…, Π³Π΄Π΅ это ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ:

$ git annotate readme.txt
9a452d9c        (DevLab User      2013-07-31 18:35:47 +0400       1)Text

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚

  1. git logΒ β€” просмотр Π»ΠΎΠ³ΠΎΠ², ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π΅Π»ΡŒΡ‚Ρƒ (Ρ€Π°Π·Π½ΠΈΡ†Ρƒ/diff), ΠΏΡ€ΠΈΠ²Π½Π΅ΡΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.
commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a
Author: devlabuser <[emailΒ protected]>
Date:   Wed Jul 31 18:35:47 2013 +0400
 
    first commit
 
commit d528335724dfc15461996ed9d44d74f23ce6a075
Author: devlabuser <[emailΒ protected]>
Date:   Wed Jul 31 06:24:57 2013 -0700
 
    Initial commit
  1. ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ происходит ΠΎΡ‚ΠΊΠ°Ρ‚.
  2. ΠžΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡΡ Π΄ΠΎ послСднСго ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚):
$ git reset --hard 9a452d955bdb57e7e4f2b09f8ce2fbb6cd56377a
HEAD is now at 9a45779 first commit

МоТно ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Π΄ΠΎ послСднСй вСрсии Π²Π΅Ρ‚ΠΊΠΈ:

$ git reset --hard origin/dev HEAD is now at 9a45779 first commit

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Ρ‚ сдСлан, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ push Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, git ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ вСрсия вашСй Π²Π΅Ρ‚ΠΊΠΈ младшС Ρ‡Π΅ΠΌ Π½Π° github ΠΈ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ pull. Π­Ρ‚ΠΎ лСчится ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ:

git push -f origin master

Β 

Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ слияниС с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ

git merge выполняСт слияниС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. ИзмСнСния Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

$ git merge origin/ticket_1001_branch

git pull Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ измСнСния ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ слияниС с Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ.

  
$ git pull origin ticket_1001_branch

git pull отличаСтся ΠΎΡ‚Β git mergeΒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΒ mergeΒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ выполняСт слияниС Π²Π΅Ρ‚ΠΎΠΊ, Π° pull ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ слияниС β€” Π·Π°ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ измСнСния с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра.Β mergeΒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для слияния Π²Π΅Ρ‚ΠΎΠΊ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ,Β pullΒ β€” слияния Π²Π΅Ρ‚ΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ… Π»Π΅ΠΆΠΈΡ‚ Π½Π° github.

Β 

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

$ mkdir project_dir
$ cd project_dir
$ git init

git cherry-pick

git cherry-pickΒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½-СдинствСнный ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΊ Π΄Π΅Ρ€Π΅Π²Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

  1. Для этого Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅ΠΌ Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚:
git checkout master

2. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π΅:

git pull origin master

3. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

git cherry-pick eb042098a5

4. ПослС этого ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° сСрвСрС:

git push origin master

Β 

Как Ρ€Π°ΡΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git

ПослС создания рСпозитория Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ появится субдирСктория .gitΒ . Она содСрТит Ρ„Π°ΠΉΠ»Β configΒ .

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = [emailΒ protected]:devlab/sharp.git
[branch "master"]
        remote = origin
        merge = refs/heads/master
[branch "dev"]
        remote = origin
        merge = refs/heads/dev

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΊΡ€Π°ΡΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ git, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» Π±Π»ΠΎΠΊΒ [color]:

[color]
        branch = auto
        diff = auto
        interactive = auto
        status = auto
        ui = auto

Β 

Β 

Β 

Β 

Setup
β€”β€”

git clone <repo>
clone the repository specified by <repo>; this is similar to Β«checkoutΒ» in
some other version control systems such as Subversion and CVS

Add colors to your ~/. gitconfig file:

[color] ui = auto
[color Β«branchΒ»] current = yellow reverse
local = yellow
remote = green
[color Β«diffΒ»] meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color Β«statusΒ»] added = yellow
changed = green
untracked = cyan

Highlight whitespace in diffs

[color] ui = true
[color Β«diffΒ»] whitespace = red reverse
[core] whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol

Add aliases to your ~/.gitconfig file:

[alias] st = status
ci = commit
br = branch
co = checkout
df = diff
dc = diff β€”cached
lg = log -p
lol = log β€”graph β€”decorate β€”pretty=oneline β€”abbrev-commit
lola = log β€”graph β€”decorate β€”pretty=oneline β€”abbrev-commit β€”all
ls = ls-files

# Show files ignored by git:
ign = ls-files -o -i β€”exclude-standard

Configuration
β€”β€”β€”β€”-

git config -e [β€”global] edit the . git/config [or ~/.gitconfig] file in your $EDITOR

git config β€”global user.name β€˜John Doe’
git config β€”global user.email [emailΒ protected]
sets your name and email for commit messages

git config branch.autosetupmerge true
tells git-branch and git-checkout to setup new branches so that git-pull(1)
will appropriately merge from that remote branch. Recommended. Without this,
you will have to add β€”track to your branch command or manually merge remote
tracking branches with Β«fetchΒ» and then Β«mergeΒ».

git config core.autocrlf true
This setting tells git to convert the newlines to the system’s standard
when checking out files, and to LF newlines when committing in

git config β€”list
To view all options

git config apply.whitespace nowarn
To ignore whitespace

You can add Β«β€”globalΒ» after Β«git configΒ» to any of these commands to make it
apply to all git repos (writes to ~/.gitconfig).

Info
β€”-
git reflog
Use this to recover from *major* mess ups! It’s basically a log of the
last few actions and you might have luck and find old commits that
have been lost by doing a complex merge.

git diff
show a diff of the changes made since your last commit
to diff one file: Β«git diff β€” <filename>Β»
to show a diff between staging area and HEAD: `git diff β€”cached`

git status
show files added to the staging area, files with changes, and untracked files

git log
show recent commits, most recent on top. Useful options:
β€”color with color
β€”graph with an ASCII-art commit graph on the left
β€”decorate with branch and tag names on appropriate commits
β€”stat with stats (files changed, insertions, and deletions)
-p with full diffs
β€”author=foo only by a certain author
β€”after=Β»MMM DD YYYYΒ» ex. (Β«Jun 20 2008β€³) only commits after a certain date
β€”before=Β»MMM DD YYYYΒ» only commits that occur before a certain date
β€”merge only the commits involved in the current merge conflicts

git log <ref>..<ref>
show commits between the specified range. Useful for seeing changes from remotes:
git log HEAD..origin/master # after git remote update

git show <rev>
show the changeset (diff) of a commit specified by <rev>, which can be any
SHA1 commit ID, branch name, or tag (shows the last commit (HEAD) by default)

also to show the contents of a file at a specific revision, use
git show <rev>:<filename>
this is similar to cat-file but much simpler syntax.

git show β€”name-only <rev>
show only the names of the files that changed, no diff information.

git blame <file>
show who authored each line in <file>

git blame <file> <rev>
show who authored each line in <file> as of <rev> (allows blame to go back in
time)

git gui blame
really nice GUI interface to git blame

git whatchanged <file>
show only the commits which affected <file> listing the most recent first
E.g. view all changes made to a file on a branch:
git whatchanged <branch> <file> | grep commit | \
colrm 1 7 | xargs -I % git show % <file>
this could be combined with git remote show <remote> to find all changes on
all branches to a particular file.

git diff <commit> head path/to/fubar
show the diff between a file on the current branch and potentially another branch

git diff β€”cached [<file>] shows diff for staged (git-add’ed) files (which includes uncommitted git cherry-pick’ed files)

git ls-files
list all files in the index and under version control.

git ls-remote <remote> [HEAD] show the current version on the remote repo. This can be used to check whether
a local is required by comparing the local head revision.

Adding / Deleting
β€”β€”β€”β€”β€”β€”

git add <file1> <file2> …
add <file1>, <file2>, etc… to the project

git add <dir>
add all files under directory <dir> to the project, including subdirectories

git add .
add all files under the current directory to the project
*WARNING*: including untracked files.

git rm <file1> <file2> …
remove <file1>, <file2>, etc… from the project

git rm $(git ls-files β€”deleted)
remove all deleted files from the project

git rm β€”cached <file1> <file2> …
commits absence of <file1>, <file2>, etc… from the project

Ignoring
β€”β€”β€”

Option 1:

Edit $GIT_DIR/.git/info/exclude. See Environment Variables below for explanation on $GIT_DIR.

Option 2:

Add a file .gitignore to the root of your project. This file will be checked in.

Either way you need to add patterns to exclude to these files.

Staging
β€”β€”-

git add <file1> <file2> …
git stage <file1> <file2> …
add changes in <file1>, <file2> … to the staging area (to be included in
the next commit

git add -p
git stage β€”patch
interactively walk through the current changes (hunks) in the working
tree, and decide which changes to add to the staging area.

git add -i
git stage β€”interactive
interactively add files/changes to the staging area. For a simpler
mode (no menu), try `git add β€”patch` (above)

Unstaging
β€”β€”β€”

git reset HEAD <file1> <file2> …
remove the specified files from the next commit

Committing
β€”β€”β€”-

git commit <file1> <file2> … [-m <msg>] commit <file1>, <file2>, etc…, optionally using commit message <msg>,
otherwise opening your editor to let you type a commit message

git commit -a
commit all files changed since your last commit
(does not include new (untracked) files)

git commit -v
commit verbosely, i. e. includes the diff of the contents being committed in
the commit message screen

git commit β€”amend
edit the commit message of the most recent commit

git commit β€”amend <file1> <file2> …
redo previous commit, including changes made to <file1>, <file2>, etc…

Branching
β€”β€”β€”

git branch
list all local branches

git branch -r
list all remote branches

git branch -a
list all local and remote branches

git branch <branch>
create a new branch named <branch>, referencing the same point in history as
the current branch

git branch <branch> <start-point>
create a new branch named <branch>, referencing <start-point>, which may be
specified any way you like, including using a branch name or a tag name

git push <repo> <start-point>:refs/heads/<branch>
create a new remote branch named <branch>, referencing <start-point> on the
remote. Repo is the name of the remote.
Example: git push origin origin:refs/heads/branch-1
Example: git push origin origin/branch-1:refs/heads/branch-2
Example: git push origin branch-1 ## shortcut

git branch β€”track <branch> <remote-branch>
create a tracking branch. Will push/pull changes to/from another repository.
Example: git branch β€”track experimental origin/experimental

git branch β€”set-upstream <branch> <remote-branch> (As of Git 1.7.0)
Make an existing branch track a remote branch
Example: git branch β€”set-upstream foo origin/foo

git branch -d <branch>
delete the branch <branch>; if the branch you are deleting points to a
commit which is not reachable from the current branch, this command
will fail with a warning.

git branch -r -d <remote-branch>
delete a remote-tracking branch.
Example: git branch -r -d wycats/master

git branch -D <branch>
even if the branch points to a commit not reachable from the current branch,
you may know that that commit is still reachable from some other branch or
tag. In that case it is safe to use this command to force git to delete the
branch.

git checkout <branch>
make the current branch <branch>, updating the working directory to reflect
the version referenced by <branch>

git checkout -b <new> <start-point>
create a new branch <new> referencing <start-point>, and check it out.

git push <repository> :<branch>
removes a branch from a remote repository.
Example: git push origin :old_branch_to_be_deleted

git co <branch> <path to new file>
Checkout a file from another branch and add it to this branch. File
will still need to be added to the git branch, but it’s present.
Eg. git co remote_at_origin__tick702_antifraud_blocking …./…nt_elements_for_iframe_blocked_page.rb

git show <branch> β€” <path to file that does not exist>
Eg. git show remote_tick702 β€” path/to/fubar.txt
show the contents of a file that was created on another branch and that
does not exist on the current branch.

git show <rev>:<repo path to file>
Show the contents of a file at the specific revision. Note: path has to be
absolute within the repo.

Merging
β€”β€”-

git merge <branch>
merge branch <branch> into the current branch; this command is idempotent
and can be run as many times as needed to keep the current branch
up-to-date with changes in <branch>

git merge <branch> β€”no-commit
merge branch <branch> into the current branch, but do not autocommit the
result; allows you to make further tweaks

git merge <branch> -s ours
merge branch <branch> into the current branch, but drops any changes in
<branch>, using the current tree as the new tree

Cherry-Picking
β€”β€”β€”β€”β€”

git cherry-pick [β€”edit] [-n] [-m parent-number] [-s] [-x] <commit>
selectively merge a single commit from another local branch
Example: git cherry-pick 7300a6130d9447e18a931e898b64eefedea19544

git hash-object <file-path>
get the blob of some file whether it is in a repository or not

Find the commit in the repository that contains the file blob:

obj_blob=Β»$1β€³
git log β€”pretty=format:’%T %h %s’ \
| while read tree commit subject ; do
if git ls-tree -r $tree | grep -q Β«$obj_blobΒ» ; then
echo $commit Β«$subjectΒ»
fi
done

Squashing
β€”β€”β€”
WARNING: Β«git rebaseΒ» changes history. Be careful. Google it.

git rebase β€”interactive HEAD~10
(then change all but the first Β«pickΒ» to Β«squashΒ»)
squash the last 10 commits into one big commit

Conflicts
β€”β€”β€”

git mergetool
work through conflicted files by opening them in your mergetool (opendiff,
kdiff3, etc.) and choosing left/right chunks. The merged result is staged for
commit.

For binary files or if mergetool won’t do, resolve the conflict(s) manually
and then do:

git add <file1> [<file2> …]

Once all conflicts are resolved and staged, commit the pending merge with:

git commit

Sharing
β€”β€”-

git fetch <remote>
update the remote-tracking branches for <remote> (defaults to Β«originΒ»).
Does not initiate a merge into the current branch (see Β«git pullΒ» below).

git pull
fetch changes from the server, and merge them into the current branch.
Note: .git/config must have a [branch Β«some_nameΒ»] section for the current
branch, to know which remote-tracking branch to merge into the current
branch. Git 1.5.3 and above adds this automatically.

git push
update the server with your commits across all branches that are *COMMON*
between your local copy and the server. Local branches that were never
pushed to the server in the first place are not shared.

git push origin <branch>
update the server with your commits made to <branch> since your last push.
This is always *required* for new branches that you wish to share. After
the first explicit push, Β«git pushΒ» by itself is sufficient.

git push origin <branch>:refs/heads/<branch>
E.g. git push origin twitter-experiment:refs/heads/twitter-experiment
Which, in fact, is the same as git push origin <branch> but a little
more obvious what is happening.

Reverting
β€”β€”β€”

git revert <rev>
reverse commit specified by <rev> and commit the result. This does *not* do
the same thing as similarly named commands in other VCS’s such as Β«svn
revertΒ» or Β«bzr revertΒ», see below

git checkout <file>
re-checkout <file>, overwriting any local changes

git checkout .
forgot something in your last commit? That’s easy to fix. Undo your last
commit, but keep the changes in the staging area for editing.

git commit β€”amend
redo previous commit, including changes you’ve staged in the meantime.
Also used to edit commit message of previous commit.

Plumbing
β€”β€”β€”

test <sha1-A> = $(git merge-base <sha1-A> <sha1-B>)
determine if merging sha1-B into sha1-A is achievable as a fast forward;
non-zero exit status is false.

Stashing
β€”β€”β€”

git stash
git stash save <optional-name>
save your local modifications to a new stash (so you can for example
Β«git svn rebaseΒ» or Β«git pullΒ»)

git stash apply
restore the changes recorded in the stash on top of the current working tree
state

git stash pop
restore the changes from the most recent stash, and remove it from the stack
of stashed changes

git stash list
list all current stashes

git stash show <stash-name> -p
show the contents of a stash β€” accepts all diff args

git stash drop [<stash-name>] delete the stash

git stash clear
delete all current stashes

Remotes
β€”β€”-

git remote add <remote> <remote_URL>
adds a remote repository to your git config. Can be then fetched locally.
Example:
git remote add coreteam git://github.com/wycats/merb-plugins.git
git fetch coreteam

git push <remote> :refs/heads/<branch>
delete a branch in a remote repository

git push <remote> <remote>:refs/heads/<remote_branch>
create a branch on a remote repository
Example: git push origin origin:refs/heads/new_feature_name

git push <repository> +<remote>:<new_remote>
replace a <remote> branch with <new_remote>
think twice before do this
Example: git push origin +master:my_branch

git remote prune <remote>
prune deleted remote-tracking branches from Β«git branch -rΒ» listing

git remote add -t master -m master origin git://example.com/git.git/
add a remote and track its master

git remote show <remote>
show information about the remote server.

git checkout -b <local branch> <remote>/<remote branch>
Eg. :
git checkout -b myfeature origin/myfeature
git checkout -b myfeature remotes/<remote>/<branch>

Track a remote branch as a local branch. It seems that
somtimes an extra β€˜remotes/’ is required, to see the exact
branch name, β€˜git branch -a’.

git pull <remote> <branch>
git push
For branches that are remotely tracked (via git push) but
that complain about non-fast forward commits when doing a
git push. The pull synchronizes local and remote, and if
all goes well, the result is pushable.

git fetch <remote>
Retrieves all branches from the remote repository. After
this β€˜git branch β€”track …’ can be used to track a branch
from the new remote.

Submodules
β€”β€”β€”-

git submodule add <remote_repository> <path/to/submodule>
add the given repository at the given path. The addition will be part of the
next commit.

git submodule update [β€”init] Update the registered submodules (clone missing submodules, and checkout
the commit specified by the super-repo). ..d8efce43099
Revision does not need to be fully specified.

git am <patch file>
Applies the patch file generated by format-patch.

git diff β€”no-prefix > patchfile
Generates a patch file that can be applied using patch:
patch -p0 < patchfile
Useful for sharing changes without generating a git commit.

Tags
β€”-

git tag -l
Will list all tags defined in the repository.

git co <tag_name>
Will checkout the code for a particular tag. After this you’ll
probably want to do: β€˜git co -b <some branch name>’ to define
a branch. Any changes you now make can be committed to that
branch and later merged.

Archive
β€”β€”-

git archive master | tar -x -C /somewhere/else
Will export expanded tree as tar archive at given path

git archive master | bzip2 > source-tree.tar.bz2
Will export archive as bz2

git archive β€”format zip β€”output /full/path master
Will export as zip

Git Instaweb
β€”β€”β€”β€”

git instaweb β€”httpd=webrick [β€”start | β€”stop | β€”restart]

Environment Variables
β€”β€”β€”β€”β€”β€”β€”

GIT_AUTHOR_NAME, GIT_COMMITTER_NAME
Your full name to be recorded in any newly created commits. Overrides
user.name in .git/config

GIT_AUTHOR_EMAIL, GIT_COMMITTER_EMAIL
Your email address to be recorded in any newly created commits. Overrides
user.email in .git/config

GIT_DIR
Location of the repository to use (for out of working directory repositories)

GIT_WORKING_TREE
Location of the Working Directory β€” use with GIT_DIR to specifiy the working directory root
or to work without being in the working directory at all.

Changing history
β€”β€”β€”β€”β€”-

Change author for all commits with given name

git filter-branch β€”commit-filter β€˜
if [ Β«$GIT_COMMITTER_NAMEΒ» = Β«<Old Name>Β» ];
then
GIT_COMMITTER_NAME=Β»<New Name>Β»;
GIT_AUTHOR_NAME=Β»<New Name>Β»;
GIT_COMMITTER_EMAIL=Β»<New Email>Β»;
GIT_AUTHOR_EMAIL=Β»<New Email>Β»;
git commit-tree Β«[emailΒ protected]Β»;
else
git commit-tree Β«[emailΒ protected]Β»;
fi’ HEAD

DVCS Git ΠΈ TortoiseGit Π² ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ…. ПособиС для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ².

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ git? git β€” это распрСдСлСнная систСма управлСния вСрсиями.

НС Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Β«Google API Π² DelphiΒ» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΅Ρ…Π°Π» Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ адрСс ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ находится ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ распрСдСлСнной систСмы контроля вСрсий Git. Для Ρ‡Π΅Π³ΠΎ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ это сдСлали β€” это вопрос второстСпСнный, Π° Π²ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π° с Git, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ для мСня, стала основной. По сути этот пост Π½ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° для сСбя любимого ΠΏΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Git, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ эта ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с этой DVCS.

Если Π’Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² Delphi, Ρ‚ΠΎ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ прСдставлСно пошаговоС руководство ΠΏΠΎ настройкС ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Git нСпосрСдствСнно ΠΈΠ· IDE Delphi

НСбольшоС Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅. О Ρ‡Π΅ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ

Git β€” распрСдСлённая систСма управлСния вСрсиями Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» создан Линусом Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ΡΠΎΠΌ для управлСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ядра Linux.

Π’ΠΎ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, Ρ‡Ρ‚ΠΎ систСма создавалась Β«ΠΏΠΎΠ΄ LinuxΒ» ΡƒΠΆΠ΅ ΠΊΠ°ΠΊ Π±Ρ‹ Π½Π°ΠΌΠ΅ΠΊΠ°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Π΅Π· консоли Π½Π°ΠΌ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ. Но Π½Π΅ стоит ΠΌΠ°Ρ…Π°Ρ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΈ ΠΊΡ€ΠΈΡ‡Π°Ρ‚ΡŒ «консоль отстой, git β€” Π² ΠΏΠ΅Ρ‡ΡŒΒ» ΠΈ всС Ρ‚Π°ΠΊΠΎΠ΅. ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ β€” консоль Linux ΠΈ консоль Windows ΠΈΠΌΠ΅ΡŽΡ‚ для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠ±Ρ‰Π΅Π΅ свойство β€” Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ экран ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Linux (ИМΠ₯О) просты ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с консолью Π½Π΅ составляСт особого Ρ‚Ρ€ΡƒΠ΄Π° Π΄Π°ΠΆΠ΅ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΊΠ°ΠΊ я.

Π‘Π°ΠΌΡ‹ΠΌ Π³Π»Π°Π²Π½Ρ‹ΠΌ, Π½Π° ΠΌΠΎΠΉ взгляд, ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Git ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ SVN являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Git Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ понятия ΠΊΠ°ΠΊ Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ свою Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ рСпозитория,Β Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Π΅Π»Π°Π΅Ρ‚ commit’ы ΠΈ, ΠΏΡ€ΠΈ нСобходимости, синхронизируСт всС измСнСния с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ, Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠΌΡΡ Π½Π° сСрвСрС.

Π­Ρ‚ΠΎ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΈ поставило мСня Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git Π² Ρ‚ΡƒΠΏΠΈΠΊ.
Как это Ρ‚Π°ΠΊ commit ΠΈ Π½Π΅ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ?
Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСр?
Как Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ?

Π­Ρ‚ΠΈ ΠΈ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вопросы посСщали мСня Π½Π° стартС Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git. БСйчас я Π½Π΅ Π±ΡƒΠ΄Ρƒ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π² тСорСтичСскиС вопросы Git, Π΄Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π»ΡŽΠ±Ρ‹Ρ… систСм контроля вСрсия β€” всСго этого ΠΏΠΎΠ»Π½ΠΎ Π² Π‘Π΅Ρ‚ΠΈ. А Π·Π°Ρ‚Ρ€ΠΎΠ½Ρƒ ΠΎΠ΄ΠΈΠ½ практичСский ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²ΠΎΠΎΠ±Ρ‰Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΌΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ больно Π·Π° Π±Π΅ΡΡ†Π΅Π»ΡŒΠ½ΠΎ потСрянныС исходники.

ΠšΠ°Ρ‡Π°Π΅ΠΌ ΠΈ устанавливаСм софт

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git ΠΏΠΎΠ΄ Windows ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π²ΠΏΠΎΠ»Π½Π΅ работоспособныС ΠΈ ΡŽΠ·Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, msysgit. Однако Ссли Π’Ρ‹ Ρ€Π°Π½Π΅Π΅ ΠΈΠΌΠ΅Π»ΠΈ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SVN ΠΈ использовали Π² Ρ€Π°Π±ΠΎΡ‚Π΅ TortoiseSVN, Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎ, Π’Π°ΠΌ захочСтся ΠΈΠΌΠ΅Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ интСрфСйса ΠΈ для Git? НСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²ΠΎΡ‚ Π°Π½Π°Π»ΠΎΠ³ TortoiseSVN для Git β€” TortoiseGit.
По сути TortoiseGit послС наТатия ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· контСкстного мСню запускаСт ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· MSysGit ΠΈ рисуСт Π² окошко Π΅Π΅ Π²Ρ‹Π²ΠΎΠ΄. Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ просто Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Git, Ρ‚ΠΎ TortoiseGit β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.
Π˜Ρ‚Π°ΠΊ, Ссли Π’Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ΄ 32-Ρ… Π±ΠΈΡ‚Π½ΠΎΠΉ Windows, Ρ‚ΠΎ Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ софт:

  1. msysgit β€” ΠΊΠ°Ρ‡Π°Π΅ΠΌ Git-1. 7.1-previewXXXXXXXX.exe (11,6 Mb) Git For Windows
  2. TortoiseGit. На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ послСднСй Π±Ρ‹Π»Π° вСрсия TortoiseGit-1.5.2.0-32bit.msi (19.6 MB). НовыС вСрсии Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ссылкС.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Ρ‡ΡƒΡ‚ΡŒ большС 30 Mb.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ устанавливаСм скачанныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π½Π°Ρ‡Π°Π»Π΅ ставим msysgit, Π° ΠΏΠΎΡ‚ΠΎΠΌ TortoiseGit.

ΠŸΡ€ΠΈ установкС msysgit настройки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ.
ΠŸΡ€ΠΈ установкС TortoiseGit Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² ΠΎΠΊΠ½Π΅ Β«Choose SSH ClientΒ» Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ установки ΠΎΠ±ΠΎΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ этапом ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ доступа ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ Git.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ доступ ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я Π±ΡƒΠ΄Ρƒ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ доступа ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располагаСтся Π½Π° github.com.
РаспишСм всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ шагам.

1. РСгистрация Π½Π° GitHub’e.

Π­Ρ‚Π° опСрация Π½Π΅ отличаСтся Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΈΡ‡Π΅ΠΌ ΠΎΡ‚ всСх ΠΏΡ€ΠΎΡ‡ΠΈΡ… рСгистраций Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… сайтах. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ β€” адрСс email ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ ΠΏΡ€ΠΈ рСгистрации. Π­Ρ‚ΠΎΡ‚ адрСс ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС своСго профиля:

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π½Π° GitHub.com

2. Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡ для доступа ΠΏΠΎ SSH.
Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ Ρ…ΠΎΡ‡Π΅ΡˆΡŒ-Π½Π΅ Ρ…ΠΎΡ‡Π΅ΡˆΡŒ, Π° Π½Π°Π΄ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ консоль. ПослС установки msysgit Ρƒ Вас Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС появился Π½ΠΎΠ²Ρ‹ΠΉ ярлык β€” Git Bush β€” Π²ΠΎΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ ΠΈ запускаСм консоль.

  1. НабираСм Π² консоли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    ssh-keygen -t rsa -C Β«E-Mail ΠΈΠ· Π’Π°ΡˆΠ΅Π³ΠΎ профиля»

  2. На экранС появится запрос Β«Enter file in which to save the keyΒ». Пока оставим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π–ΠΌΠ΅ΠΌ Enter.
  3. Нас попросят ввСсти ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. Π­Ρ‚Ρƒ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ пропускаСм β€” впослСдствии ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, Π° ΠΏΠΎΠΊΠ° β€” учимся. Π–ΠΌΠ΅ΠΌ ΠΎΠΏΡΡ‚ΡŒ Enter.
  4. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… β€” ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ для доступа.

Если Π’Ρ‹ всС Π΄Π΅Π»Π°Π»ΠΈ с настройками ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

C:/Documents and Settings/UserName/.ssh/

Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Β«Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚Π°Β» Ρ„Π°ΠΉΠ» ida_rsa.pub ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ всС Π΅Π³ΠΎ содСрТимоС Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°.

3. Заносим ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ доступа Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ.

Для записи ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ:

  1. Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² свой ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ github ΠΈ ΠΆΠΌΠ΅ΠΌ ссылку Account Settings (свСрху)
  2. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ Β«SSH Public KeysΒ»
  3. Π–ΠΌΠ΅ΠΌ ссылку Β«Add another public keyΒ»

ΠŸΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ появится Ρ„ΠΎΡ€ΠΌΠ° добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. ВставляСм ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π΅ вСсь скопированный Ρ€Π°Π½Π΅Π΅ тСкст (ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ida_rsa.pub) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΠΎΠ»Π΅ key β€” ΠΏΠΎΠ»Π΅ Title оставляСм пустым.

На этом Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π°.

4. ΠŸΡ€ΠΎΡΠΈΠΌΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Для этого достаточно Π½Π°ΠΉΡ‚ΠΈ наш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° github ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· администраторов запрос Π½Π° прСдоставлСниС доступа ΠΊ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. Или просто ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ½Π΅ email с Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ Π½Π° github. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ Π±ΡƒΠ΄ΠΈΡ‚Π΅ записаны Π² список Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„Π°Π·Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ исходников.

Π Π°Π±ΠΎΡ‚Π° со своим ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΠΎΡ€ΠΈΠ΅ΠΌ Git

Доступ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½, исходники Π² Π’Π°ΡˆΠ΅ΠΌ распоряТСнии. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с TortoiseGit. Для порядка, ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ сСйчас Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ я Π±ΡƒΠ΄Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ консольной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ β€” лишним Π·Π½Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с консолью Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚.

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π½Π° ТСстком дискС Π³Π΄Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹. Π”Π°Π»Π΅Π΅ дСйствуСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ контСкстноС мСню ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ Β«TortoiseGit β€” SettingsΒ«:

Π’ появившСмся ΠΎΠΊΠ½Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ сразу ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ Β«Git β€” ConfigΒ» ΠΈ записываСм своС имя ΠΈ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π² точности ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ‚Π΅ΠΌΠΈ, Ρ‡Ρ‚ΠΎ записаны Π² Π’Π°ΡˆΠ΅ΠΌ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅ Π½Π° github, ΠΈΠ½Π°Ρ‡Π΅ ваш ΠΊΠ»ΡŽΡ‡ просто Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚.

2. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Для этого Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° страницу ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Π² Π±ΡƒΡ„Π΅Ρ€ адрСс:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠΌΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ исходники ΠΈ Π² мСню Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Git Clone..Β«:

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π² ΠΏΠΎΠ»Π΅ URL вставляСм скопированный адрСс ΠΈ ΠΆΠΌΠ΅ΠΌ Β«OkΒ»:

НачнСтся процСсс клонирования рСпозитория.

Всё Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всСго двумя ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π² консоли:

cd path/to/dir
git clone URL

ПослС клонирования рСпозитория Π’Ρ‹ автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π°ΡˆΡƒ Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ (master). Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· нас занят ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ своя Π²Π΅Ρ‚Π²ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, поэтому ΠΈ Π’Π°ΠΌ придСтся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свой branch. ДСлаСтся это достаточно просто.

3. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ свою Π²Π΅Ρ‚ΠΊΡƒ. Для этого ΠΆΠΌΠ΅ΠΌ ΠΏΡ€Π°Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΡ‹ΡˆΠΈ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² мСню Β«TortoiseGit β€” Create BranchΒ«:

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ΅ Π·Π°Π΄Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π½Π° основании ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ рСпозитория ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ. Π–ΠΌΠ΅ΠΌ «Ок», подтвСрТдая созданиС Π²Π΅Ρ‚ΠΊΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ Π½Π° свой Π½ΠΎΠ²Ρ‹ΠΉ branch.

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² мСню Β«TortoiseGit β€” Switch/Checkout…«:

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½Π°ΡˆΡƒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΆΠΌΠ΅ΠΌ «Ок». УбСТдаСмся, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ:

По сути, всС Ρ‡Ρ‚ΠΎ касалось создания Π½ΠΎΠ²ΠΎΠ³ΠΎ branch’a Π² консоли Ρ€Π΅ΡˆΠΈΠ»ΠΎΡΡŒ Π±Ρ‹ всСго ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

checkout -b new-branch

4. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ всС настроили β€” ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Delphi, вносим свои ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, измСняСм ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Ρ‚.Π΄. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²Π΅Π΄Π΅ΠΌ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ»ΠΎΠ΄ΠΎΡ‚Π²ΠΎΡ€Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

5. Вносим измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ внСсСны ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ измСнСния Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ… Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Π² Git. И здСсь ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ проявляСтся ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ этой систСмы контроля вСрсий ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ SVN. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Commit Π² Git Π½Π΅ сбрасываСтся сразу Π½Π° сСрвСр. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ внСсти измСнСния Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° PUSH. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ построСна ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. Вносятся измСнСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

2. ИзмСнСния Π·Π°ΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡ Π² вашСм локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Commit Π² мСню ΠΈΠ»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ консоль:

git commit

3. Когда Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ/ΡƒΠ΄ΠΎΠ±Π½ΠΎ/трСбуСтся Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ всС измСнСния Π½Π° сСрвСрС выполняСм push Π² свою Π²Π΅Ρ‚ΠΊΡƒ (brunch). Команда консоли выглядит Ρ‚Π°ΠΊ:

git push origin <своС имя Π±Ρ€Π°Π½Ρ‡Π°>

Π—Π΄Π΅ΡΡŒ стоит, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь процСсс Π½Π° Π΄Π΅Π»Π΅. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ простой тСкстовый Ρ„Π°ΠΉΠ» с описаниСм Ρ‡Π΅Π³ΠΎ Π»ΠΈΠ±ΠΎ. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ», записываСм Π² Π½Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ добавляСм Ρ„Π°ΠΉΠ» Π² индСкс.

Для этого Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ мСню ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«Add…»:

По рисунку ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ я Π²Π½ΠΎΡˆΡƒ Π² индСкс Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» text.txt. Π–ΠΌΠ΅ΠΌ Β«OkΒ».

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½, ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Commit β€” ΠΊΠ½ΠΎΠΏΠΊΠ° Commit появится Π² ΠΎΠΊΠ½Π΅ с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ консоли. Π–ΠΌΠ΅ΠΌ Π΅Ρ‘ ΠΈ откроСтся ΠΎΠΊΠ½ΠΎ для внСсСния Commit’a:

ЗаполняСм ΠΏΠΎΠ»Π΅ с описаниСм, ΠΆΠΌΠ΅ΠΌ «Ок»  ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π³ΠΎΡ‚ΠΎΠ². Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ сразу ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эти измСнСния Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Ρ‚ΠΎ Π² ΠΎΠΊΠ½Π΅ с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ консоли появится Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠ° PUSH. Если ΠΆΠ΅ Вас Π½Π΅ устраиваСт Ρ‚Π°ΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ 1 Ρ„Π°ΠΉΠ»ΠΈΠΊΡƒ Ρ‚ΡƒΠ΄Π°-сюда ΠΈΠ»ΠΈ измСнСния ΡΡ‚ΠΎΠ»ΡŒ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π½Π΅Ρ‚ смысла ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π° сСрвСр, Ρ‚ΠΎ просто ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚Π΅ дальшС ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ, Π° push Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠΎΠ·Π΄Π½Π΅Π΅.

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

1. Π—Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Shift ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ контСкстноС мСню. Π’ мСню Π΄ΠΎΠ»ΠΆΠ½Ρ‹ появится Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Push. ΠŸΠ΅Ρ€Π΅Π΄ Π’Π°ΠΌΠΈ откроСтся ΠΎΠΊΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

ВсС, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ Вас трСбуСтся Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС β€” Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ (Π½Π° рисункС ΠΎΠ½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° красным) Π½Π°ΠΉΡ‚ΠΈ Π² спискС ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ push ΠΈ Π΄Π²Π° Ρ€Π°Π·Π° Π½Π°ΠΆΠ°Ρ‚ΡŒ Ok. ВсС измСнСния, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π’Π°ΠΌΠΈ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ отправятся Π² Π‘Π΅Ρ‚ΡŒ.

Π’ΠΎΡ‚ ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ всС, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΎΠ²ΠΎΠΉ для мСня систСмой контроля вСрсий. НадСюсь эта ΠΌΠΈΠ½ΠΈ-ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΡ€ΠΎΠΌΠ΅ мСня. А Ссли Вас заинтСрСсовала Ρ€Π°Π±ΠΎΡ‚Π° с консолью, Ρ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π· сСйчас я ΠΈΠ·ΡƒΡ‡Π°ΡŽ Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΎΠΏΠΈΠΊΠΈ Π½Π° habrahabr.ru:
1. Git Workflow.
2. Git Wizardry
Π‘Ρ‚Π°Ρ‚ΡŒΠΈ написаны понятным простым языком ΠΈ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git с нуля.

КниТная полка

Автор: АндрСй Π¨ΠΊΡ€Ρ‹Π»ΡŒ

НазваниС:Β Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Delphi

ОписаниС: РассмотрСны практичСскиС вопросы ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² срСдС Delphi 7 ΠΈ Delphi 2005 с использованиСм Π‘Π£Π‘Π” MS SQL Server 2000, InterBase ΠΈ Firebird. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° информация ΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ построСния рСляционных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ языкС SQL. ΠžΡΠ²Π΅Ρ‰Π΅Π½Ρ‹ вопросы эксплуатации ΠΈ администрирования Π‘Π£Π‘Π”.

Автор: Антон Π“Ρ€ΠΈΠ³ΠΎΡ€ΡŒΠ΅Π²

НазваниС: О Ρ‡Π΅ΠΌ Π½Π΅ ΠΏΠΈΡˆΡƒΡ‚ Π² ΠΊΠ½ΠΈΠ³Π°Ρ… ΠΏΠΎ Delphi

ОписаниС: РассмотрСны малоосвСщСнныС вопросы программирования Π² Delphi. ΠžΠΏΠΈΡΠ°Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ VCL ΠΈ API. ΠŸΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ VCL ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² эти ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹. РассмотрСно использованиС сокСтов Π² Delphi: Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹, особСнности для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² TCP ΠΈ UDP ΠΈ Π΄Ρ€.

0 0 голоса

Π Π΅ΠΉΡ‚ΠΈΠ½Π³ ΡΡ‚Π°Ρ‚ΡŒΠΈ

ΠŸΠ°ΠΌΡΡ‚ΠΊΠ° ΠΏΠΎ Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Follow @Cloudways

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

Git β€” это огромная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ всС аспСкты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Git. НачнСм сначала с Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Git:

Git Terminologies

# Команда Git ОписаниС
1 Чистый Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.
2 Π€ΠΈΠ»ΠΈΠ°Π» Π€ΠΈΠ»ΠΈΠ°Π» β€” это активная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Git. Бамая послСдняя фиксация ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΡƒ Π²Π΅Ρ‚ΠΊΠΈ.
3 Π’ΠΈΠ½ΠΎΠ²Π°Ρ‚ ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ послСднюю ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² Ρ„Π°ΠΉΠ»Π΅. ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΡŽ, Π°Π²Ρ‚ΠΎΡ€Π° ΠΈ врСмя.
4 Касса Π­Ρ‚ΠΎ относится ΠΊ процСссу, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ любая данная фиксация выбираСтся ΠΈΠ· рСпозитория, Π° состояниС связанного Ρ„Π°ΠΉΠ»Π° ΠΈ Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² воссоздаСтся Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.
5 Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π­Ρ‚ΠΎ СдинствСнная Ρ‚ΠΎΡ‡ΠΊΠ° Π² истории Git, которая содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π°Π±ΠΎΡ€Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
6 Π”ΠΈΡ„Ρ„. Diff β€” это Ρ€Π°Π·Π½ΠΈΡ†Π° Π² измСнСниях ΠΌΠ΅ΠΆΠ΄Ρƒ двумя фиксациями ΠΈΠ»ΠΈ сохранСнными измСнСниями.
7 БъСмная Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° БостояниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ конкрСтная фиксация извлСкаСтся вмСсто Π²Π΅Ρ‚ΠΊΠΈ.
8 ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ послСдних ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅Ρ‚ΠΊΠ΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ…/ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… рСпозиториях.
9 Π’ΠΈΠ»ΠΊΠ° РазвСтвляя Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π²Ρ‹ смоТСтС Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ запросы Π½Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅.
10 Π₯эш Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ SHA1 для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ фиксации
11 Π“ΠΎΠ»ΠΎΠ²ΠΊΠ° ИмСнованная ссылка Π½Π° Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Π² ΠΊΠΎΠ½Ρ†Π΅ Π²Π΅Ρ‚ΠΊΠΈ
12 ИндСкс Набор Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ состоянии.
13 ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти содСрТимоС Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.
14 ΠœΠ°ΡΡ‚Π΅Ρ€ Π’Π΅Ρ‚Π²ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Git
15 ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Основной Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
16 Запрос Π½Π° вытягиваниС ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ внСсти измСнСния Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ
17 Π’ΠΎΠ»Ρ‡ΠΎΠΊ ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ измСнСния послС ΠΈΡ… фиксации
18 Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Набор ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π²Π΅Ρ‚ΠΎΠΊ ΠΈ Ρ‚Π΅Π³ΠΎΠ² для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².
19 Π Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ Π”Π΅Ρ€Π΅Π²ΠΎ фактичСски ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Git

# Команда Git ОписаниС
1 git config – глобальноС имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ УстановитС имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для всСх дСйствий
2 git config – Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ user.email Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для всСх дСйствий.
3 git config – Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ псСвдоним. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ярлык для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git.
4 git config – system core.editor Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для всСх ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… дСйствий.
5 git config – Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ – Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ рСдактирования.
6 git config –global color.ui Π°Π²Ρ‚ΠΎ Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Настройка рСпозитория Git

# Команда Git ОписаниС
1 Π³ΠΈΡ‚ инициализация Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ пустой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.
2 ΠΊΠ»ΠΎΠ½ git (URL-адрСс рСпозитория) ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с GitHub Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
3 git clone (URL-адрСс рСпозитория) (ΠΏΠ°ΠΏΠΊΠ°) ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ.
4 git ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ источника
https://github.com/username/(repo_name).git
Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Ρ€Π΅ΠΏΠΎ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ GitHub.
5 Π³ΠΈΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².
6 git ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ -v ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ имя ΠΈ URL ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π².
7 git remote rm (имя ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΏΠΎ) УдаляСт ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
8 git ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ URL-адрСсов (URL-адрСс git) Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ URL-адрСс рСпозитория.
9 git Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдниС измСнСния ΠΈΠ· источника, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ.
10 git Ρ‚ΡΠ½ΡƒΡ‚ΡŒ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдниС измСнСния ΠΈΠ· источника ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ….

ИзмСнСния локального Ρ„Π°ΠΉΠ»Π°
# Команда Git ОписаниС
1 git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (имя Ρ„Π°ΠΉΠ»Π°) Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ измСнСния Π² Ρ„Π°ΠΉΠ» для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ.
2 git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ . Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС измСнСния ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² staging (Π±Π΅Π· удалСния Ρ„Π°ΠΉΠ»ΠΎΠ²).
3 git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ -A Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС Π½ΠΎΠ²Ρ‹Π΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ срСду.
4 git rm (имя_Ρ„Π°ΠΉΠ»Π°) УдаляСт Ρ„Π°ΠΉΠ» ΠΈ отмСняСт Π΅Π³ΠΎ отслСТиваниС (ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ отслСТивания).
5 git rm – ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ (имя_Ρ„Π°ΠΉΠ»Π°) ΠžΡ‚ΠΌΠ΅Π½ΡΠ΅Ρ‚ отслСТиваниС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°.
6 git mv Β (имя_Ρ„Π°ΠΉΠ»Π°) (имя_Π½ΠΎΠ²ΠΎΠ³ΠΎ_Ρ„Π°ΠΉΠ»Π°) Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ имя Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΊ фиксации.
7 git checkout <имя ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°> ВосстанавливаСт ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΊ фиксации
8 статус git ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ состояниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².
9 git ls-files –другоС –игнорируСтся –exclude-standard ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ список всСх ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².
10 git Ρ€Π°Π·Π½ΠΈΡ†Π° ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ нСустановлСнныС измСнСния Π² индСксС ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.
11 git diff β€” поэтапно ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ различия Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈ послСднСй вСрсиСй Ρ„Π°ΠΉΠ»Π°.
12 git diff (имя_Ρ„Π°ΠΉΠ»Π°) ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с послСднСй фиксациСй.

ОбъявлСниС фиксации

# Команда Git ОписаниС
1 git commit -m Β«(сообщСниС)Β» ЀиксируСт измСнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ сообщСния.
2 git commit -am Β«(сообщСниС)Β» ДобавляСт всС измСнСния Π² staging ΠΈ фиксируСт ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сообщСния.
3 git-касса ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° прСдоставлСнный Commit.
4 Π³ΠΈΡ‚-ΡˆΠΎΡƒ Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ измСнСния содСрТимого ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ фиксации.
5 git reset β€” ТСсткий ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ фиксации.
6 git reset β€” ТСсткая Π³ΠΎΠ»ΠΎΠ²Π° ΠžΡ‚ΠΌΠ΅Π½ΡΠ΅Ρ‚ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.
7 ΠΆΡƒΡ€Π½Π°Π» git ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
8 ΠΆΡƒΡ€Π½Π°Π» git -p ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ фиксации.
9 ΠΆΡƒΡ€Π½Π°Π» git -oneline ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с простым сообщСниСм.
10 git log – ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ (имя_Ρ„Π°ΠΉΠ»Π°) Бписок истории для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°.
11 Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ git (имя_Ρ„Π°ΠΉΠ»Π°) ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС измСнСния вмСстС с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
12 git Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ сохраняСт всС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹.
13 git stash pop ВосстанавливаСт послСдниС сохранСнныС Ρ„Π°ΠΉΠ»Ρ‹.
14 список Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² git Бписок всСх Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.
15 git stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднСС спрятанноС содСрТимоС.
16 git stash drop Π£Π΄Π°Π»ΠΈΡ‚ΡŒ послСдниС спрятанныС Ρ„Π°ΠΉΠ»Ρ‹
17 git stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°) ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ содСрТимоС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ.
18 git stash drop (stash_id) Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ содСрТимоС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ.
19 git push ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Origin.
16 источник git push (имя_Π²Π΅Ρ‚ΠΊΠΈ) ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π²Π΅Ρ‚ΠΊΠΈ Π² Origin.
17 Git push -f происхоТдСниС (имя_Π²Π΅Ρ‚ΠΊΠΈ) ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отправляСт измСнСния Π² Origin.
18 git-Ρ‚Π΅Π³ (имя_Ρ‚Π΅Π³Π°) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‚Π΅Π³ для вСрсии.
19 git push ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Origin.

ΠžΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΡ

# Команда Git ОписаниС
1 Π²Π΅Ρ‚ΠΊΠ° git ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ список всСх Π²Π΅Ρ‚Π²Π΅ΠΉ.
2 Π²Π΅Ρ‚ΠΊΠ° git Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ.
3 Π²Π΅Ρ‚ΠΊΠ° git -m ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Ρ‚Π²ΡŒ.
4 Π²Π΅Ρ‚ΠΊΠ° git -a Бписок всСх Ρ„ΠΈΠ»ΠΈΠ°Π»ΠΎΠ², Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ….
5 git checkout -b Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° Π½Π΅Π΅.
6 git-касса ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.
7 git checkout -b происхоТдСниС/ ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΈΠ· источника Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.
8 Π²Π΅Ρ‚ΠΊΠ° git -d Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ.
9 git слияниС ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ с мастСром (сначала ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ· мастСра)
10 git ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ всС измСнСния Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ….
11 git ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° Π±Π°Π·Ρƒ. Base ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ фиксации ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ.
12 git fetch ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π’Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· рСпозитория.
13 Π³ΠΈΡ‚ Π΄ΠΈΡ„.. ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ различия ΠΌΠ΅ΠΆΠ΄Ρƒ двумя вСтвями.
14 git pull – ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ копию Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ копию.
15 git push β€” всС ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PDF, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Бвязано: Как Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Git с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Cloudways API

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

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Git ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ вСсь спСктр Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Git. Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ вСсь Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ Git. Π‘ΠΎΠ»Π΅Π΅ простой способ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° Git ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ слоТными ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Если Π²Ρ‹ считаСтС, Ρ‡Ρ‚ΠΎ я пропустил Π²Π°ΠΆΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ, ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½ΠΈΠΆΠ΅.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ своим ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². ΠšΠžΠœΠœΠ•ΠΠ’ΠΠ Π˜Π™ БЕЙЧАБ

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ

Shahroze Nawaz

Shahroze β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ сообщСства PHP Π² Cloudways β€” управляСмой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ PHP-хостинга. Помимо Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΎΠ½ Π»ΡŽΠ±ΠΈΡ‚ ΠΊΠΈΠ½ΠΎ ΠΈ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΡ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΏΠΎ адрСсу [emailΒ protected]

. Π’Π²ΠΈΡ‚Ρ‚Π΅Ρ€ Π€ΠΎΡ€ΡƒΠΌ сообщСства

Γ—

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ наш ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½ΡŒ


ΠŸΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ послСдниС обновлСния ΠΈ руководства.

Бпасибо, Ρ‡Ρ‚ΠΎ подписались Π½Π° нас!

Полная ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π“Π˜Π’

05 октября 2022 Π³.

Домантас Π“.

5 ΠΌΠΈΠ½ΡƒΡ‚ Π§Ρ‚Π΅Π½ΠΈΠ΅

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ ΠΏΠΎ Git

НуТно Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ GIT? Π’Ρ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ мСсто. Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ дальшС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ для сСбя Π½Π°ΡˆΡƒ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠ³ΠΎ использования.

НачнСм!

ПониманиС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса GIT

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

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ GIT состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… основных Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²: Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ , промСТуточная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ git .

Π’ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π²Ρ‹ добавляСтС, удаляСтС ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π—Π°Ρ‚Π΅ΠΌ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ (ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΡƒΡŽΡ‚ΡΡ) Π² области ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ зафиксируСтС свои измСнСния, снимок ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ сохранСн Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ git.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GIT, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ доступСн для Linux, Windows, Mac ΠΈ Solaris. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΡ€ΡƒΡ‚ΡƒΡŽ ΠΊΡ€ΠΈΠ²ΡƒΡŽ обучСния, Π½ΠΎ Π΅ΡΡ‚ΡŒ мноТСство руководств ΠΏΠΎ GIT, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ.

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

Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ GIT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ:

  • git init создаст Π½ΠΎΠ²Ρ‹ΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ GIT. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Git создаст Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅:
 git init 
  • ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΡƒΠΊΠ°Π·Π°Π² имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
 git init [имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°] 
  • git clone ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для копирования рСпозитория. Если Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ находится Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:
 git clone username@host:/path/to/repository 
  • И Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:
 git clone /path/ to/repository 
  • git add ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для добавлСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ базовая ΠΊΠΎΠΌΠ°Π½Π΄Π° Git проиндСксируСт Ρ„Π°ΠΉΠ» temp.txt:
 git add  
  • git commit создаст ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ снимок ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ сохранит Π΅Π³ΠΎ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ git.
 git commit –m Β«Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ для фиксации здСсь» 
Pro Tip

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±Ρ‹Π΅ зафиксированныС измСнСния Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

  • git config ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для установки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ‚. Π΄. Для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° для настройки элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
 git config --global user.email [email protected] 
  • Π€Π»Π°Π³ –global сообщаСт GIT, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ для всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ адрСса элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅:
 git config --local user. email [email protected] 
  • git status ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ список ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² вмСстС с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ поставлСны ΠΈ Π½Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Ρ‹.
 git status 
  • git push ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория. Π’ΠΎΡ‚ базовая структура ΠΊΠΎΠ΄Π°:
 git push origin  
Pro Tip

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ измСнСния, Ссли Π²Ρ‹ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ измСнСния Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

  • git checkout создаСт Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ базовая ΠΊΠΎΠΌΠ°Π½Π΄Π° создаСт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ автоматичСски ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ вас Π½Π° Π½Π΅Π΅:
 ΠΊΠΎΠΌΠ°Π½Π΄Π° git checkout -b <Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ> 
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ с ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:
 git checkout <Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ> 
  • git remote позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ всС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ . Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ список всСх ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ вмСстС с ΠΈΡ… URL-адрСсами:
 git remote –v 
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ сСрвСру, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
 git remote add origin  
  • ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡƒΠ΄Π°Π»ΠΈΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ:
 git remote rm <имя-рСпозитория> 
  • git branch пСрСчислит, создаст ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ Π²Π΅Ρ‚ΠΊΠΈ. НапримСр, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ вывСсти список всСх Π²Π΅Ρ‚ΠΎΠΊ, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
 git branch 
  • Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:
 git branch –d  
  • git pull ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ всС измСнСния, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ.
 git pull 
  • git merge ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для слияния Π²Π΅Ρ‚ΠΊΠΈ с Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ.
 git merge  
  • git diff пСрСчисляСт ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅
 git diff --base  
  • Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ базовая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для просмотра ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ вСтвями ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… слияниСм:
 git diff <исходная-Π²Π΅Ρ‚Π²ΡŒ> <цСлСвая-Π²Π΅Ρ‚Π²ΡŒ> 
  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:
 git diff 
  • git tag ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π³ΠΎ для ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… Ρ‚ΠΎΡ‡Π΅ΠΊ выпуска, ΠΊΠ°ΠΊ v1.0 ΠΈ v2.0.
 git tag  
  • git log ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для просмотра истории рСпозитория ΠΏΡƒΡ‚Π΅ΠΌ пСрСчислСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ фиксации. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ даст Π²Π°ΠΌ Π²Ρ‹Π²ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
 ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 15f4b6c44b3c8344caasdac9e4be13246e21sadw
Автор: АлСкс Π₯Π°Π½Ρ‚Π΅Ρ€  com>
Π”Π°Ρ‚Π°:  Пн, 1 октября, 12:56:29 2016 -0600 
  • Команда git reset сбросит индСкс ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄ΠΎ состояния послСднСй фиксации git.
 git reset --hard HEAD 
  • git rm ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· индСкса ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.
 git rm filename.txt 
  • git stash 9Команда 0341 Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ сохранит измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ фиксации. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ смоТСтС Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ этому ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΏΠΎΠ·ΠΆΠ΅.
 git stash 
  • git show  – это ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для просмотра ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ любом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ git.
 git show 
  • git fetch позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ находятся Π² локальном Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.
 git fetch источник 
  • git ls-tree позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π΅Ρ€Π΅Π²Π° вмСстС с ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ SHA-1 большого Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ HEAD, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:
 git ls-tree HEAD 
  • git cat-file ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для просмотра ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° рСпозитория. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -p вмСстС со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ SHA-1 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° для просмотра ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
 git cat-file –p d670460b4b4aece5915caf5c68d12f560a9fe3e4 
  • git grep позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поиск ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Ρ€Π°Π· ΠΈ слов Π² зафиксированных Π΄Π΅Ρ€Π΅Π²ΡŒΡΡ…, Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ области. Для поиска www.hostinger.com Π²ΠΎ всСх Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:
 git grep "www.hostinger.com" 
  • gitk ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ графичСский интСрфСйс локального рСпозитория. ΠŸΡ€ΠΎΡΡ‚ΠΎ запуститС:
 gitk 
  • git instaweb позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² интСрфСйсС git-web. НапримСр:
 git instaweb –httpd=webrick 
  • git gc очистит Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
 git gc 
  • git archive позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ zip- ΠΈΠ»ΠΈ tar-Ρ„Π°ΠΉΠ», содСрТащий ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° рСпозитория. НапримСр:
 git archive --format=tar master 
  • git prune удаляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ входящих ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.
 git prune 
  • git fsck выполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ цСлостности Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы git ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.
 git fsck 
  • git rebase ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для примСнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. НапримСр:
 git rebase master 

ΠŸΠ°ΠΌΡΡ‚ΠΊΠ° ΠΏΠΎ основным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ GIT Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ .pdf

Если Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с GIT, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π΄Π°ΠΆΠ΅ основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΡ‹ составили ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ GIT, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» Π½Π° своих устройствах ΠΈΠ»ΠΈ распСчатайтС Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ всСгда Π±Ρ‹Π» Ρƒ вас ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ застряли, вспоминая ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ GIT.

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ (Ρ€Π°Π·ΠΌΠ΅Ρ€: 1,2 ΠœΠ‘)

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

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ основных ΠΊΠΎΠΌΠ°Π½Π΄ GIT Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈΡ… всС, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Π½ΠΎ, надСюсь, наша ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° GIT Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Π°.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° этих ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ максимально ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ваши Π½Π°Π²Ρ‹ΠΊΠΈ! Π£Π΄Π°Ρ‡ΠΈ!

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы ΠΏΠΎ основным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ GIT

КакиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ GIT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго?

Π₯отя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ сотни Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Git, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго, Π² Ρ‚ΠΎΠΌ числС:

β€” git config
β€” git clone
β€” git init
β€” git status
β€” git push
β€” git add
β€” git commit
β€” Π²Π΅Ρ‚ΠΊΠ° git

Как Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с GIT?

НачнитС с создания ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи GitHub ΠΈ установки Git Π½Π° свой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° Git ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° Github. ДобавляйтС Ρ„Π°ΠΉΠ»Ρ‹ Π² свой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, удаляйтС эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Git, создавайтС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ.

Домантас возглавляСт Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ ΠΈ SEO, прСдлагая свСТиС ΠΈΠ΄Π΅ΠΈ ΠΈ нСстандартныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. Обладая ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌΠΈ знаниями Π² области SEO ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π°, ΠΎΠ½ стрСмится Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Hostinger Π²ΠΎ всСх ΡƒΠ³ΠΎΠ»ΠΊΠ°Ρ… ΠΌΠΈΡ€Π°. Π’ свободноС врСмя Домантас Π»ΡŽΠ±ΠΈΡ‚ ΠΎΡ‚Ρ‚Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ экзотичСским мСстам.

Π•Ρ‰Π΅ ΠΎΡ‚ Домантаса Π“.

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° Git для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π“ΠΈΡ‚ | Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° | Новичок |… | ΠΎΡ‚ Shanika Ediriweera

Git | Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° | Новичок | ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚

БСгодня для любого программиста ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий становится Π²Π°ΠΆΠ½Ρ‹ΠΌ инструмСнтом.

БистСмы контроля вСрсий β€” это катСгория ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ измСнСниями Π² исходном ΠΊΠΎΠ΄Π΅ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Если Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π° ошибка, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ врСмя Π²ΡΠΏΡΡ‚ΡŒ ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ вСрсии ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ нСудобства для всСх Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

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

Π₯Π²Π°Ρ‚ΠΈΡ‚ вступлСния.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для всСх Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это ΠΊΠ°ΠΊ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ, ΠΏΠΎΠΊΠ° ваш ΠΌΠΎΠ·Π³ Π½Π΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ ΠΈΡ… автоматичСски!!! πŸ˜‰

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ настройка ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Git. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ связаны с вашими фиксациями. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±Π΅Π· Ρ„Π»Π°Π³Π° --global , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Git для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ рСпозитория.

 $ git config --global user.name "JohnDoe" 
$ git config --global user. email "[email protected]"

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

 $ git init 

ВБЕГДА ΠŸΠ ΠžΠ’Π•Π Π―Π™Π’Π• БВАВУБ!!!

ΠžΡ‡Π΅Π½ΡŒ полСзная ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ git. Он ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус рСпозитория ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса git, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ дСйствия.

 $ git status 

Π‘ΠΏΡ€Π°Π²ΠΊΠ°. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ справку ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ git

 $ git help <ΠΊΠΎΠΌΠ°Π½Π΄Π° git> 

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

Настройка ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ URL-адрСса для рСпозитория. (ПолСзно ΠΏΡ€ΠΈ настройкС Ρ„ΠΎΡ€ΠΊΠ°)

 $ git remote -v // ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ устройства 
$ git remote add origin // Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ происхоТдСниС
$ git remote rename // ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ исходный URL-адрСс Ρ€Π΅ΠΏΠΎ ΠΊΠ°ΠΊ Upstream. (Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ имя)

 $ git remote add upstream https://github.com/  ORIGINAL_REPOSITORY  .git 
$ git remote show upstream //Π΄Π΅Ρ‚Π°Π»ΠΈ

Бинхронизация Ρ„ΠΎΡ€ΠΊΠ° с восходящим ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ. (синхронизация Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ)

 $ git fetch upstream 
$ git checkout master
$ git merge upstream/master

Branching
 $ git branch //список Π²Π΅Ρ‚ΠΎΠΊ 
$ git branch -a //список всСх ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ
$ git branch //ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ
$ git branch -d //ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ
$ git branch -D <Π²Π΅Ρ‚ΠΊΠ°> //ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ
$ git branch -m //ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ$ git checkout <Π²Π΅Ρ‚ΠΊΠ°> //ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ
$ git checkout -b //ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ

ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ для отслСТивания ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ

 $ git branch -u origin/  

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ

 $ git push origin --delete remote-branch-name 

    Основной Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Git
     $ git Π΄ΠΎΠΏ.  //ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с измСнСниями послС Ρ€Π°Π±ΠΎΡ‚Ρ‹ 
    Π˜Π›Π˜
    $ git add $ git commit //ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ для сообщСния ΠΎ фиксации Ρ‚ΠΈΠΏΠ°
    Π˜Π›Π˜
    $ git commit -m "ВАШЕ Π‘ΠžΠžΠ‘Π©Π•ΠΠ˜Π• О Π‘ΠžΠžΠ‘Π©Π•ΠΠ˜Π˜"$ git pull // Π²Ρ‹Ρ‚ΡΠ³ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ, отслСТиваСмой Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ локальной Π²Π΅Ρ‚ΠΊΠΎΠΉ
    Π˜Π›Π˜
    $ git pull origin //Π’Π•Π’Π’Π¬ β€” master, dev, feature-x...$ git push //Ссли ΡƒΠΆΠ΅ отслСТиваСтся удалСнная Π²Π΅Ρ‚ΠΊΠ°

    ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² удалСнная Π²Π΅Ρ‚ΠΊΠ°. (создайтС ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Ссли ΠΎΠ½Π° Π½Π΅ сущСствуСт)

     $ git push -u origin  

    Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ большС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

     $ git commit --amend 
    $ git commit --amend -m «сообщСниС»

    ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ измСнСния с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй фиксации.

     $ git diff 
    $ git diff --staged //ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… (git add) Ρ„Π°ΠΉΠ»ΠΎΠ²

    Для Π±ΠΎΠ»Π΅Π΅ слоТного использования, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ сравнСниС 2 Ρ„Π°ΠΉΠ»ΠΎΠ², сравнСниС 2 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², сравнСниС 2 Π²Π΅Ρ‚ΠΎΠΊ, посСтитС https://www. atlassian.com/git/tutorials/saving-changes/git-diff

    Π–ΡƒΡ€Π½Π°Π» Git. ( ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²)

     $ git log 
    $ git log -n //limit
    $ git log --oneline // Condense
    $ git log --stat // статистика
    $ git log --author ="" //ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΡ€Π°
    $ git log //ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ»$ git log --graph --decorate --oneline

    Авторство (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ всС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅ )

     $ git Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ <ЀАЙЛ> 
    $ git Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ <ЀАЙЛ> --date short

    Π£Π΄Π°Π»ΠΈΡ‚ΡŒ

     $ git rm  //ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» 
    $ git rm '*.txt' //ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .txt

    Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» нСотслСТиваСмым. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ· индСкса git. Но сохранитС Ρ„Π°ΠΉΠ»:

     $ git rm β€” cached  // ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» нСотслСТиваСмым 

    Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .gitignore .

    Биловая тяга. (ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΊΠ΅)

     $ git fetch --all 
    $ git reset --hard origin/
    $ git ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π· -- .

    ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅. (ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ локальной историСй ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²)

     $ git push origin  --force 

    ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ

    Бброс Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области. (Unstage)

     $ git reset  

    Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС измСнСния с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй фиксации Ρ„Π°ΠΉΠ»Π°.

     $ git checkout --  
    $ git reset HEAD

    ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ для фиксации ΠΏΠ΅Ρ€Π΅Π΄ HEAD, Ρ„Π°ΠΉΠ»Ρ‹ фиксации Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½Π° сцСну. 9

Бброс Π΄ΠΎ послСднСй фиксации. ( ПолСзно для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² слияния слияния Π΄ΠΎ послСднСй фиксации)

 $ git reset --hard HEAD 

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Π½Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² стСк, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½ΠΎΠ²Ρ‹Π΅ измСнСния с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра.

 $ git stash //сохранСниС нСустановлСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ 
$ git stash save "Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ Π½Π° наш сайт" //сохранСниС с сообщСниСм//Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ $ git stash show //ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ схрон
$ git stash show -p //ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°
$ git stash list$ git stash pop
Π˜Π›Π˜
$ git stash pop stash@{0} //stash@{0} - Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°$ git stash apply

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

 $ git stash branch  stash@{1} //Ρ‚Π°ΠΉΠ½ΠΈΠΊ@{1} - Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.  

ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ

 $ git stash drop stash@{1} 
$ git stash clear //ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ

ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°

ПолСзно для отслСТивания выпусков/вСрсий.

 $ git tag // список Ρ‚Π΅Π³ΠΎΠ² 
$ git checkout // ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° ΠΏΠΎ Ρ‚Π΅Π³Ρƒ (вСрсия)
$ git tag -a v0.0.3 -m "вСрсия 0.0.3" //ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Π³ v0.0.3
$ git push --tags

ΠžΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π· https://www.atlassian.com/git/tutorials/ inspecting-a-repository/git-tag для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ использования.

ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)

ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это процСсс пСрСмСщСния ΠΈΠ»ΠΈ объСдинСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Π½ΠΎΠ²Ρ‹ΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. Π’Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ пСрСписываниС истории git.

 $ git fetch 
$ git rebase //добавляСт Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… исходных ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π±Π΅Π· слияния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
$ git rebase -i //ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ сСссию

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

 $ git rebase --continue //ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ 
$ git rebase β€” ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ //ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚
$ git rebase -- abort //ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅

 $ git checkout  
$ git rebase master //ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² "some_branch"
$ git checkout master
$ git merge

своСго Ρ€ΠΎΠ΄Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ функция Git. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, слСдуйтС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ слияния

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ слияния Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π΅Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

 $ git rebase --onto    

.gitignore β€” ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

Когда Ρ„Π°ΠΉΠ»Ρ‹ ΡƒΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ git, .gitignore Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡ… ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ. Π’ основном это происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ добавляСтС Π½ΠΎΠ²ΡƒΡŽ запись Π² .gitignore для Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ git.

 $ git rm -r --cached . && git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ . && git commit -m "fixing .gitignore"// Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ΄Π½Ρƒ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ с большим ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ/Ρ‡Π΅Ρ‚ΠΊΠΎΡΡ‚ΡŒΡŽ 
$ git rm -r --cached .
$ git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ .
$ git commit -m "fixing .gitignore"

НадСюсь, эта ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈ использовании Git! πŸ˜€

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½ΠΈΠΆΠ΅, Ссли я пропустил ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Git.