Π Π°Π·Π½ΠΎΠ΅

Mv git: Git — git-mv Documentation

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

git rm ΠΈ git mv

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ практичСский вопрос ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Git — это ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

Π’ частности, это ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ удалСния ΠΈ пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ систСмС Git ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π² Linux/Mac OS. Но для Git ΠΎΠ½ΠΈ выглядят нСсколько ΠΈΠ½Π°Ρ‡Π΅: — для удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ — для пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ². НиТС я Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ ΠΎΠ±Π΅ эти ΠΊΠΎΠΌΠ°Π΄Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Команда git rm

Для удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² систСмС Git, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, имССтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° . Π•Π΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ консольной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Linux) Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² особСнности самой систСмы Git.

Как Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстно, Π² систСмС Git Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Ρ€Π΅Ρ… ипостасях: Π² области β€œWorking Directory”, Π² области β€œStaging Area”, Π² области β€œRepository”. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· области β€œWorking Directory” Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΅Π³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ ΠΈΠ· областСй β€œStaging Area” ΠΈ β€œRepository”.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», Π½ΡƒΠΆΠ½ΠΎ (Π² ΠΈΠ΄Π΅Π°Π»Π΅) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ подряд для удалСния Ρ„Π°ΠΉΠ»Π° ΠΈΠ· Π Π°Π±ΠΎΡ‡Π΅ΠΉ области β€œWorking Directory”, Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ· области индСкса β€œStaging Area” ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ· области рСпозитория β€œRepository”:

$ rm index.html
$ git add .
$ git commit -m 'Delete file index.html'

Команда являСтся Π½ΠΈ Ρ‡Π΅ΠΌ ΠΈΠ½Ρ‹ΠΌ, ΠΊΠ°ΠΊ β€œΠ²ΡˆΠΈΡ‚Ρ‹ΠΌβ€ Π² Git сокращСниСм Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄:

$ rm index.html
$ git add .

Π‘Π΄Π΅Π»Π°Π½ΠΎ это всСго лишь для удобства пользования систСмой Git. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ посмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ . ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ имССтся Ρ„Π°ΠΉΠ» , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ проиндСксирован ΠΈ зафиксирован.

Π£Π΄Π°Π»ΠΈΠΌ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ :

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» сразу ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· Π΄Π²ΡƒΡ… областСй: Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° β€œWorking Directory” ΠΈ области индСксации β€œStaging Area”. Но Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ„Π°ΠΉΠ» всС ΠΆΠ΅ остался, ΠΎ Ρ‡Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ .

Π›ΡŽΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ commit зафиксируСт ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ этого Ρ„Π°ΠΉΠ»Π°:

Команда git rm -cached

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ имССтся ΠΏΠ°Ρ€Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся ΠΊΠ»ΡŽΡ‡ . Π—Π°Π΄Π°Ρ‡Π° этого ΠΊΠ»ΡŽΡ‡Π° — ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ· области индСксирования β€œStaging Area”, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² области Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€œWorking Directory”. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° создан Ρ„Π°ΠΉΠ» ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π΅Π³ΠΎ индСксация (Π½ΠΎ Π½Π΅ фиксация):

Π£Π΄Π°Π»ΠΈΠΌ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ :

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ! Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° . ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области β€œWorking Directory” имССтся нСотслСТиваСмый (untracked) Ρ„Π°ΠΉΠ» ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ .

Команда git rm -f

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ я рассмотрСл Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° созданный ΠΈ проиндСксированный Ρ„Π°ΠΉΠ» удаляСтся ΠΈΠ· области индСксирования β€œStaging Area”, Π½ΠΎ остаСтся Π² области β€œWorking Directory”. ВыполняСтся это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ .

ЛогичСским ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ являСтся Ρ‚Π° ΠΆΠ΅ самая ΠΊΠΎΠΌΠ°Π½Π΄Π° , Π½ΠΎ с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ . Вакая ΠΊΠΎΠΌΠ°Π½Π΄Π° удаляСт проиндСксированный (Π½ΠΎ Π΅Ρ‰Π΅ Π½Π΅ зафиксированный) Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ ΠΈΠ· области β€œStaging Area”, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· области β€œWorking Directory”.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ созданного ΠΈ проиндСксированного Ρ„Π°ΠΉΠ»Π° Π΅Π³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ :

Π€Π°ΠΉΠ» ΡƒΠ΄Π°Π»Π΅Π½ ΠΊΠ°ΠΊ ΠΈΠ· области β€œStaging Area”, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· области β€œWorking Directory”. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ практичСски Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹.

Команда git mv — ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

Π’ систСмС Git имССтся β€œΡΠ²ΠΎΡβ€ ΠΊΠΎΠΌΠ°Π½Π΄Π° для пСрСмСщСния ΠΈΠ»ΠΈ пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘Π»ΠΎΠ²ΠΎ β€œΡΠ²ΠΎΡβ€ здСсь Π½Π΅ Π΄Π°Ρ€ΠΎΠΌ взято Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ — аналогия с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ полная. Команда ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹, автоматичСски β€œΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡβ€ ΠΎΠ± этих событиях ΠΎΠ±Π»Π°ΡΡ‚ΡŒ β€œStaging Area”:

ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти измСнСния Π»ΡŽΠ±Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ:

$ git commit -m 'Move index.html to papka'
  [master 868d428] Move index.html to papka
   1 file changed, 0 insertions(+), 0 deletions(-)
   rename index.html => papka/index.html (100%)

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ :

Π’ΠΎΡ‚ ΠΈ всС нСслоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ\ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ , ΠΏΠΎΠ΄ всСвидящим ΠΎΠΊΠΎΠΌ Git.


git

Какова Ρ†Π΅Π»ΡŒ git-mv? | Π‘Π»ΠΎΠ³ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

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

рассмотрим Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Начиная с пустого Π Π•ΠŸΠž,

git init
echo "First" >a
echo "Second" >b
git add *
git commit -m "initial commit"
mv a c
mv b a
git status

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   a
#   deleted:    b
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   c
no changes added to commit (use "git add" and/or "git commit -a")

Π°Π²Ρ‚ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ πŸ™
Или это сдСлал?

$ git add *
$ git commit -m "change"
$ git log c

commit 0c5425be1121c20cc45df04734398dfbac689c39
Author: Sergey Orshanskiy <*****@gmail.com>
Date:   Sat Oct 12 00:24:56 2013 -0400

    change

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

$ git log --follow c

Author: Sergey Orshanskiy <*****@gmail.com>
Date:   Sat Oct 12 00:24:56 2013 -0400

    change

commit 50c2a4604a27be2a1f4b95399d5e0f96c3dbf70a
Author: Sergey Orshanskiy <*****@gmail.com>
Date:   Sat Oct 12 00:24:45 2013 -0400

    initial commit

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ вмСсто этого (Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ .git ΠΏΠ°ΠΏΠΊΠ° ΠΏΡ€ΠΈ экспСримСнтировании):

git init
echo "First" >a
echo "Second" >b
git add *
git commit -m "initial commit"
git mv a c
git status

Ρ‚Π°ΠΊ:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   renamed:    a -> c


git mv b a
git status

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π΅Π½:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   a
#   deleted:    b
#   new file:   c
#

Π² самом Π΄Π΅Π»Π΅? Ну ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅…

git add *
git commit -m "change"
git log c
git log --follow c

…ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹ΡˆΠ΅: Ρ‚ΠΎΠ»ΡŒΠΊΠΎ --follow ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ.


Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны с ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ любой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ странно эффСкты.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

git init
echo "First" >a
git add a
git commit -m "initial a"
echo "Second" >b
git add b
git commit -m "initial b"

git mv a c
git commit -m "first move"
git mv b a
git commit -m "second move"

git log --follow a

commit 81b80f5690deec1864ebff294f875980216a059d
Author: Sergey Orshanskiy <*****@gmail.com>
Date:   Sat Oct 12 00:35:58 2013 -0400

    second move

commit f284fba9dc8455295b1abdaae9cc6ee941b66e7f
Author: Sergey Orshanskiy <*****@gmail.com>
Date:   Sat Oct 12 00:34:54 2013 -0400

    initial b

сравнитС Π΅Π³ΠΎ с:

git init
echo "First" >a
git add a
git commit -m "initial a"
echo "Second" >b
git add b
git commit -m "initial b"

git mv a c
git mv b a
git commit -m "both moves at the same time"

git log --follow a

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

commit 84bf29b01f32ea6b746857e0d8401654c4413ecd
Author: Sergey Orshanskiy <*****@gmail.com>
Date:   Sat Oct 12 00:37:13 2013 -0400

    both moves at the same time

commit ec0de3c5358758ffda462913f6e6294731400455
Author: Sergey Orshanskiy <*****@gmail.com>
Date:   Sat Oct 12 00:36:52 2013 -0400

    initial a

Ups… Π’Π΅ΠΏΠ΅Ρ€ΡŒ история возвращаСтся ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ a вмСсто Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ b, Ρ‡Ρ‚ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ Π΄Π²Π° Ρ…ΠΎΠ΄Π° Π·Π° Ρ€Π°Π·, Git запутался ΠΈ Π½Π΅ отслСТивал измСнСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π² ΠΌΠΎΠΈΡ… экспСримСнтах Ρ‚ΠΎ ΠΆΠ΅ самоС происходило, ΠΊΠΎΠ³Π΄Π° я удалял/создавал Ρ„Π°ΠΉΠ»Ρ‹ вмСсто использования git mv. ДСйствуйтС остороТно; Π²Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ…

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ bash, git, npm ΠΈ yarn, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ package.json ΠΈ semver / Π₯Π°Π±Ρ€

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, Π΄Ρ€ΡƒΠ·ΡŒΡ!

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ ΠΏΠΎ основным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ bash, git, npm, yarn, package.json ΠΈ semver.

УсловныС обозначСния: [dir-name] β€” ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, | β€” ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«ΠΈΠ»ΠΈΒ».

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‚Π°ΠΊ Π²Ρ‹ быстро ΠΈΡ… Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹, Π° ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅Ρ‚.

ΠŸΡ€ΠΈΠ½ΠΎΡˆΡƒ извинСния Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки ΠΈ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ. Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ Π»ΡŽΠ±Ρ‹ΠΌ замСчаниям ΠΈ прСдлоТСниям.

Π‘Π΅Π· Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… прСдисловий.

ОглавлСниС:

bash

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

Установка: Π² ΠΌΠΎΠ΅ΠΌ случаС bash Π±Ρ‹Π» установлСн вмСстС с git.

Π‘ΠΏΡ€Π°Π²ΠΊΠ°:

help

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄:

history

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°:

clear

Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°:

exit

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

// make directory
mkdir [dir-name]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
mkdir my-app
// нСсколько Π΄ΠΈΡ€Π΅Ρ‚ΠΎΡ€ΠΈΠΉ
mkdir -p {dir1,dir2}
// нСсколько Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ
mkdir -p my-app/{css,js}

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

// change directory
cd [dir-name]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
cd my-app
// сразу послС создания
cd !$
// Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ дирСктория
cd ..
// Π½Π° Π΄Π²Π° уровня Π²Ρ‹ΡˆΠ΅
cd ../..
// прСдыдущая дирСктория
cd -
// домашняя дирСктория
cd ~

ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

// print work directory
pwd

Бписок Ρ„Π°ΠΉΠ»ΠΎΠ²:

// list
ls
// Π²ΠΊΠ»ΡŽΡ‡Π°Ρ скрытыС Ρ„Π°ΠΉΠ»Ρ‹
ls -a | -f
// большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
// Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π°Π²Π° доступа
ls -l

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

touch [file-name]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
touch index.html
// нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ²
touch my-app/{index.html,css/style.css,js/script.js}

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π°:

cat [file-name]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
cat index.html
// сортировка ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
cat [file-name] | sort | uniq
// мСньшС ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°
less [file-name] // q - exit
// n строк с Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°
head -50 [file-name]
// n строк с ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°
tail -50 [file-name]
// поиск слова
grep [string] [file-name]

// распаковка ΠΈ просмотр содСрТимого Π°Ρ€Ρ…ΠΈΠ²Π°
unzip [achive-name]

// Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°
file [file-name]

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°:

// copy
cp [file1] [file2]

// move
mv [file1] [file2]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
// ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ
mv [dir1]/*.* [dir2]

// remove
rm [file-name]
// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ пустой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
rmdir [dir-name]
// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ нСпустой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
rm -r [dir-name]
// ΠΈΠ»ΠΈ
rm -rf [dir-name]

Π’Ρ‹Π²ΠΎΠ΄ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» строки:

echo [string]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
echo hello
// созданиС ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»Π°
echo hello > greet.txt
// Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ строки Π² Ρ„Π°ΠΉΠ»
echo hello >> greet.txt

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»Π°:

wget [url]

ΠšΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€Ρ‹:

true && echo hello
false || echo hello
echo hello ; ls

ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€:

// количСство пСрСносов строки - \n
cat [file] | wc -l

git

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

Книга Pro Git.

Бкринкаст Ильи ΠšΠ°Π½Ρ‚ΠΎΡ€Π°.

Быстрый старт: Git How To.

Установка: git-scm.com.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° установки:

git --version

Π‘ΠΏΡ€Π°Π²ΠΊΠ°:

git help
git help [command-name]
git [command-name] --help | -h

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ настройки:

// --local - настройки для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅ΠΏΠΎ
// --global - настройки для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
// --system - настройки для всСй систСмы, Ρ‚.Π΅. для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
git config --global user.name "My Name"
git config --global user.email "[email protected]"

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки:

// список Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк
git config --list | -l --global

// Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк
git config --global --edit | -e

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория:

git init

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° рСпозитория:

// -d - Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, -x - Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, -f - ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ
git clean | -dxf

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ:

// remove
git rm [file-name]
git rm -r [dir-name]

git rm --force | -f

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

// git add + git remove
// move
git mv [old-file] [new-file]

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ состояния рСпозитория:

git status

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

git add [file-name]

git add --force | -f

// всС Ρ„Π°ΠΉΠ»Ρ‹
git add . | --all | -A

// для добавлСния пустой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Π½Π΅ΠΉ пустой Ρ„Π°ΠΉΠ» .gitkeep

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ сообщСния (ΠΊΠΎΠΌΠΌΠΈΡ‚Π°):

// Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°
git commit

// ΠΊΠΎΠΌΠΌΠΈΡ‚ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ измСнСния, Ссли Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ git add . | -A
// Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ, сообщСниС Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ для всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git commit --message | -m "My Message"

// для всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ссли git add [file-name] Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ нСсколько Ρ€Π°Π·
git commit --all | -a -m | -am "My Message"

// исправлСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°
git commit --amend "My Message" | --no-edit

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

// послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚
git show

// Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚
git show [hash] // ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 4 символа

// поиск ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ части сообщСния
git show :/[string]

// поиск ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΏΠΎ Ρ‚Π΅Π³Ρƒ
git show [tag-name]

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ:

git diff HEAD | @ // HEAD - ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, тСкущая Π²Π΅Ρ‚ΠΊΠ°; @ - алиас для HEAD

// staged
git diff --staged | --cached

git diff [hash2] [hash3]

// Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ
git diff [branch2]...[branch3]

// просмотр Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ сообщСния
git commit --verbose | -v

// кастомизация Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ сообщСния
git diff --word-diff | --color-words

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

git log

// n - количСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git log -n
// --since, --after - послС
// --until, --before - Π΄ΠΎ

// Ρ€Π°Π·Π½ΠΈΡ†Π°
git log -p

// быстроС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
git log --graph --oneline --stat

// кастомноС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
git log --pretty=format
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
git log --pretty=format:'%C(red)%h %C(green)%cd %C(reset)| %C(blue)%s%d %C(yellow)[%an]' --date=short | format-local:'%F %R'

// поиск ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ слову, Ρ„Π°ΠΉΠ»Ρƒ, Π²Π΅Ρ‚ΠΊΠ΅; i - Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра
git log --grep | -G [string] | [file] | [branch] & -i

// поиск ΠΏΠΎ нСскольким строкам
git log --grep [string1] --grep [string2] --all-match

// поиск Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Ρ„Π°ΠΉΠ»Π°
git log -L '/<head>/','/<\/head>/':index.html

// поиск ΠΏΠΎ Π°Π²Ρ‚ΠΎΡ€Ρƒ
git log --author=[name]

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

git reset
// --hard - Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ индСкс
// --soft - Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ индСкса
// --mixed - ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π½ΠΎ с индСксом

git reset --hard [hash] | @~ // @~ - послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² HEAD

// Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ
git reset --hard ORIG_HEAD

// Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ
git checkout

git restore

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

// список Π²Π΅Ρ‚ΠΎΠΊ
git branch

// созданиС Π²Π΅Ρ‚ΠΊΠΈ
git branch [branch-name]

// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ
git checkout [branch-name]

// branch + checkout
git checkout -b [branch-name]

// ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅
git branch -m [old-branch] [new-branch]

// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ
git branch -d [branch-name]

// слияниС Π²Π΅Ρ‚ΠΎΠΊ
git merge [branch-name]

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ слиянии:

// ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, открываСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€

// ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния ΠΈΠ· сливаСмой Π²Π΅Ρ‚ΠΊΠΈ
git checkout --ours

// ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ
git checkout --theirs

// ΠΎΡ‚ΠΌΠ΅Π½Π° слияния
git reset --merge
git merge --abort

// ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
git checkout --conflict=diff3 --merge [file-name]

// ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ слияниС
git merge --continue

Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:

// ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
git clone [url] & [dir]

// просмотр
git remote
git remote show
git remote add [shortname] [url]
git remote rename [old-name] [new-name]

// ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
// git fetch + git merge
git pull

// ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git push

Π’Π΅Π³ΠΈ:

// просмотр
git tag

// лСгковСсная ΠΌΠ΅Ρ‚ΠΊΠ°
git tag [tag-name]
//ΠΏΡ€ΠΈΠΌΠ΅Ρ€
git tag v1-beta

// аннотированная ΠΌΠ΅Ρ‚ΠΊΠ°
git tag -a v1 -m "My Version 1"

// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅
git tag -d [tag-name]

ΠžΡ‚Π»Π°Π΄ΠΊΠ°

git bisect

git blame

git grep

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

// сохранСниС
git stash

// ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅
git stash pop

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

git cherry-pick | -x [hash]

// Ссли Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚
// ΠΎΡ‚ΠΌΠ΅Π½Π°
git cherry-pick --abort

// ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
git cherry-pick --continue

git cherry-pick --no-commit | -n

// --cherry = --cherry-mark --left-right --no-merges
git log --oneline --cherry [branch2] [branch3]

ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅:

git rebase [branch]

// ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°
// ΠΎΡ‚ΠΌΠ΅Π½Π°
git rebase --abort

// ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ
git rebase --skip

// ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
git rebase --continue

// ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² слияния
git rebase --preserve-merges | -p

// ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
git rebase -i [branch]

ΠΠ²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²:

// rerere - reuse recorder resolution
// rerere.enabled true | false
// rerere.autoUpdate true | false
// rerere-train.sh - скрипт для обучСния rerere
git rerere forget [file-name]

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹:

git revert @ | [hash]

// ΠΎΡ‚ΠΌΠ΅Π½Π° слияния
// git reset --hard @~ Π½Π΅ сработаСт
git revert [hash] -m 1

// git merge [branch] Π½Π΅ сработаСт
// ΠΎΡ‚ΠΌΠ΅Π½Π° ΠΎΡ‚ΠΌΠ΅Π½Ρ‹
git revert [hash]

// ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ слияниС с rebase
git rebase [branch2] [branch3] | --onto [branch2] [hash] [branch3]

git merge [branch]

git rebase [hash] --no-ff

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ алиасов (сокращСний) для .gitconfig:

[alias]
    aa = add -A
    co = checkout
    ci = commit -m
    st = status
    br = branch

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ .gitconfig:

[user]
	name = [My Name]
	email = [[email protected]]
	username = [myusername]
[core]
	editor = [myeditor]
	whitespace = fix,-indent-with-non-tab,trailing-space,cr-at-eol
	pager = delta
[web]
	browser = google-chrome
[instaweb]
	httpd = apache2 -f
[rerere]
	enabled = 1
	autoupdate = 1
[push]
	default = matching
[color]
	ui = auto
[color "branch"]
	current = yellow bold
	local = green bold
	remote = cyan bold
[color "diff"]
	meta = yellow bold
	frag = magenta bold
	old = red bold
	new = green bold
	whitespace = red reverse
[color "status"]
	added = green bold
	changed = yellow bold
	untracked = red bold
[difftool]
	prompt = false
[delta]
	features = line-numbers decorations
	line-numbers = true
[delta "decorations"]
	minus-style = red bold normal
	plus-style = green bold normal
	minus-emph-style = white bold red
	minus-non-emph-style = red bold normal
	plus-emph-style = white bold green
	plus-non-emph-style = green bold normal
	file-style = yellow bold none
	file-decoration-style = yellow box
	hunk-header-style = magenta bold
	hunk-header-decoration-style = magenta box
	minus-empty-line-marker-style = normal normal
	plus-empty-line-marker-style = normal normal
	line-numbers-right-format = "{np:^4}β”‚ "
[github]
	user = [username]
	token = token
[gitflow "prefix"]
	versiontag = v
[sequence]
	editor = interactive-rebase-tool
[alias]
	a = add --all
	ai = add -i
	###
	ap = apply
	as = apply --stat
	ac = apply --check
	###
	ama = am --abort
	amr = am --resolved
	ams = am --skip
	###
	b = branch
	ba = branch -a
	bd = branch -d
	bdd = branch -D
	br = branch -r
	bc = rev-parse --abbrev-ref HEAD
	bu = !git rev-parse --abbrev-ref --symbolic-full-name "@{u}"
	bs = !git-branch-status
	###
	c = commit
	ca = commit -a
	cm = commit -m
	cam = commit -am
	cem = commit --allow-empty -m
	cd = commit --amend
	cad = commit -a --amend
	ced = commit --allow-empty --amend
	###
	cl = clone
	cld = clone --depth 1
	clg = !sh -c 'git clone git://github.com/$1 $(basename $1)' -
	clgp = !sh -c 'git clone [email protected]:$1 $(basename $1)' -
	clgu = !sh -c 'git clone [email protected]:$(git config --get user.username)/$1 $1' -
	###
	cp = cherry-pick
	cpa = cherry-pick --abort
	cpc = cherry-pick --continue
	###
	d = diff
	dp = diff --patience
	dc = diff --cached
	dk = diff --check
	dck = diff --cached --check
	dt = difftool
	dct = difftool --cached
	###
	f = fetch
	fo = fetch origin
	fu = fetch upstream
	###
	fp = format-patch
	###
	fk = fsck
	###
	g = grep -p
	###
	l = log --oneline
	lg = log --oneline --graph --decorate
	###
	ls = ls-files
	lsf = !git ls-files | grep -i
	###
	m = merge
	ma = merge --abort
	mc = merge --continue
	ms = merge --skip
	###
	o = checkout
	om = checkout master
	ob = checkout -b
	opr = !sh -c 'git fo pull/$1/head:pr-$1 && git o pr-$1'
	###
	pr = prune -v
	###
	ps = push
	psf = push -f
	psu = push -u
	pst = push --tags
	###
	pso = push origin
	psao = push --all origin
	psfo = push -f origin
	psuo = push -u origin
	###
	psom = push origin master
	psaom = push --all origin master
	psfom = push -f origin master
	psuom = push -u origin master
	psoc = !git push origin $(git bc)
	psaoc = !git push --all origin $(git bc)
	psfoc = !git push -f origin $(git bc)
	psuoc = !git push -u origin $(git bc)
	psdc = !git push origin :$(git bc)
	###
	pl = pull
	pb = pull --rebase
	###
	plo = pull origin
	pbo = pull --rebase origin
	plom = pull origin master
	ploc = !git pull origin $(git bc)
	pbom = pull --rebase origin master
	pboc = !git pull --rebase origin $(git bc)
	###
	plu = pull upstream
	plum = pull upstream master
	pluc = !git pull upstream $(git bc)
	pbum = pull --rebase upstream master
	pbuc = !git pull --rebase upstream $(git bc)
	###
	rb = rebase
	rba = rebase --abort
	rbc = rebase --continue
	rbi = rebase --interactive
	rbs = rebase --skip
	###
	re = reset
	rh = reset HEAD
	reh = reset --hard
	rem = reset --mixed
	res = reset --soft
	rehh = reset --hard HEAD
	remh = reset --mixed HEAD
	resh = reset --soft HEAD
	rehom = reset --hard origin/master
	###
	r = remote
	ra = remote add
	rr = remote rm
	rv = remote -v
	rn = remote rename
	rp = remote prune
	rs = remote show
	rao = remote add origin
	rau = remote add upstream
	rro = remote remove origin
	rru = remote remove upstream
	rso = remote show origin
	rsu = remote show upstream
	rpo = remote prune origin
	rpu = remote prune upstream
	###
	rmf = rm -f
	rmrf = rm -r -f
	###
	s = status
	sb = status -s -b
	###
	sa = stash apply
	sc = stash clear
	sd = stash drop
	sl = stash list
	sp = stash pop
	ss = stash save
	ssk = stash save -k
	sw = stash show
	st = !git stash list | wc -l 2>/dev/null | grep -oEi '[0-9][0-9]*'
	###
	t = tag
	td = tag -d
	###
	w = show
	wp = show -p
	wr = show -p --no-color
	###
	svnr = svn rebase
	svnd = svn dcommit
	svnl = svn log --oneline --show-commit
	###
	subadd = !sh -c 'git submodule add git://github.com/$1 $2/$(basename $1)' -
	subrm = !sh -c 'git submodule deinit -f -- $1 && rm -rf .git/modules/$1 && git rm -f $1' -
	subup = submodule update --init --recursive
	subpull = !git submodule foreach git pull --tags origin master
	###
	assume = update-index --assume-unchanged
	unassume = update-index --no-assume-unchanged
	assumed = !git ls -v | grep ^h | cut -c 3-
	unassumeall = !git assumed | xargs git unassume
	assumeall = !git status -s | awk {'print $2'} | xargs git assume
	###
	bump = !sh -c 'git commit -am \"Version bump v$1\" && git psuoc && git release $1' -
	release = !sh -c 'git tag v$1 && git pst' -
	unrelease = !sh -c 'git tag -d v$1 && git pso :v$1' -
	merged = !sh -c 'git o master && git plom && git bd $1 && git rpo' -
	aliases = !git config -l | grep alias | cut -c 7-
	snap = !git stash save 'snapshot: $(date)' && git stash apply 'stash@{0}'
	bare = !sh -c 'git symbolic-ref HEAD refs/heads/$1 && git rm --cached -r . && git clean -xfd' -
	whois = !sh -c 'git log -i -1 --author=\"$1\" --pretty=\"format:%an <%ae>\"' -
	serve = daemon --reuseaddr --verbose --base-path=. --export-all ./.git
	###
	behind = !git rev-list --left-only --count $(git bu)...HEAD
	ahead = !git rev-list --right-only --count $(git bu)...HEAD
	###
	ours = "!f() { git checkout --ours $@ && git add $@; }; f"
	theirs = "!f() { git checkout --theirs $@ && git add $@; }; f"
	subrepo = !sh -c 'git filter-branch --prune-empty --subdirectory-filter $1 master' -
	human = name-rev --name-only --refs=refs/heads/*
[filter "lfs"]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ .gitignore:

### Node ###

# Logs
logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Optional npm cache directory
.npm

# Dependency directories
/node_modules
/jspm_packages
/bower_components

# Yarn Integrity file
.yarn-integrity

# Optional eslint cache
.eslintcache

# dotenv environment variables file(s)
.env
.env.*

#Build generated
dist/
build/

# Serverless generated files
.serverless/

### SublimeText ###
# cache files for sublime text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache

# workspace files are user-specific
*.sublime-workspace

# project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using SublimeText
# *.sublime-project


### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

### Vim ###
*.sw[a-p]

### WebStorm/IntelliJ ###
/.idea
modules.xml
*.ipr
*.iml


### System Files ###
*.DS_Store

# Windows thumbnail cache files
Thumbs.db
ehthumbs.db
ehthumbs_vista.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

npm

npm прСдставляСт собой ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт: npmjs.com.

Установка.

npm устанавливаСтся вмСстС с Node.js.

Π’Π°ΠΊΠΆΠ΅ вмСстС с Node.js устанавливаСтся npx, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π±Π΅Π· установки: npx create-react-app my-app.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° установки:

node --version | -v
npm --version | -v

ОбновлСниС:

npm i -g npm@latest

Бписок доступных ΠΊΠΎΠΌΠ°Π½Π΄:

npm help
npm help [command-name]

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

npm init

// auto
npm init --yes | -y

Установка зависимостСй

npm install | i

// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ зависимости
npm explore [package-name]

// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° всСх зависимостСй
npm doctor

// очистка
npm ci

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСустановка зависимостСй:

npm i --force | -f

Установка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

npm i --only=production | --only=prod

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости:

npm i [package-name]
npm i [package-name@version]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
npm i express

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

npm i --save-dev | -D [package-name]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
npm i -D nodemon

ОбновлСниС зависимости:

npm update | up [package-name]

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ зависимости:

// dependency
npm remove | rm | r [package-name]

// devDependency
npm r -D [package-name]

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ установка/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

npm i/up/r -g [package-name]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
npm i -g create-react-app
// использованиС
create-react-app my-app

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

npm outdated
npm outdated [package-name]

Бписок установлСнных зависимостСй:

npm list | ls

// top level
npm ls --depth=0 | --depth 0

// global + top level
npm ls -g --depth 0

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅:

npm view | v [package-name]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
npm v react
npm v react.description

Запуск скрипта/Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

npm run [script]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
// package.json: "scripts": { "dev": "nodemon server.js" }
npm run dev
// script start ΠΈΠ»ΠΈ node server.js
npm start
npm stop

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

npm dedupe | ddp

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ посторонних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

npm prune

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ уязвимостСй (ΡƒΠ³Ρ€ΠΎΠ· бСзопасности):

npm audit
// json
npm audit --json
// plain text
npm audit --parseable

АвтоматичСскоС исправлСниС уязвимостСй:

npm audit fix

yarn

yarn, ΠΊΠ°ΠΊ ΠΈ npm, прСдставляСт собой ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт: yarnpkg.com.

Установка:

npm i -g yarn

Команда Β«yarn dlxΒ» позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π±Π΅Π· установки: yarn dlx create-react-app my-app. Для этого yarn Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ вСрсии: yarn set version berry.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° установки:

yarn --version | -v

ОбновлСниС:

yarn set version latest

Бписок доступных ΠΊΠΎΠΌΠ°Π½Π΄:

yarn help
yarn help [command-name]

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

yarn init

// auto
yarn init --yes | -y

// "private": true Π² package.json
yarn init --private | -p

// auto + private
yarn init -yp

Установка зависимостСй:

yarn
// ΠΈΠ»ΠΈ
yarn install

// тихая установка
yarn install --silent | -s

// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°
yarn --check-files

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСустановка зависимостСй:

yarn install --force

Установка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

yarn install --production | --prod

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости:

yarn add [package-name]
yarn add [package-name@version]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
yarn add express

// тихая установка
yarn add --silent
// ΠΈΠ»ΠΈ
yarn add -s

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

yarn add --dev | -D [package-name]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
yarn add -D nodemon

ОбновлСниС зависимости:

yarn upgrade [package-name]

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ зависимости:

yarn remove [package-name]

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ установка/ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅/ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

yarn global add/upgrade/remove [package-name]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
yarn global add create-react-app
// использованиС
create-react-app my-app

Бписок установлСнных зависимостСй:

yarn list

// top level
yarn list --depth=0 | --depth 0

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅:

yarn info [package-name]
// ΠΈΠ»ΠΈ
yarn why [package-name]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
yarn info react
yarn info react description
yarn why webpack

Запуск скрипта/Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

yarn [script]
// ΠΈΠ»ΠΈ
yarn run [script]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
// package.json: "scripts": { "dev": "nodemon server.js" }
yarn dev

package.json

{
  "name": "my-app",
  "version": "1.0.0",
  "description": "my awesome app",
  "keywords": [
    "amazing",
    "awesome",
    "best"
  ],
  "private": true,
  "main": "server.js",
  "license": "MIT",
  "homepage": "https://my-website.com",
  "repository": {
    "type": "git",
    "url": "https://github.com/user/repo.git"
  },
  "repository": "github:user/repo",
  "author": {
    "name": "My Name",
    "email": "[email protected]",
    "url": "https://my-website.com"
  },
  "author": "My Name <[email protected]> (https://my-website.com)",
  "contributers": [
    {
      "name": "Friend Name",
      "email": "[email protected]",
      "url": "https://friend-website.com"
    }
  ],
  "contributors": "Friend Name <friendemail.com> (https://friend-website.com)",
  "dependencies": {
    "express": "^4.17.1"
  },
  "devDependencies": {
    "nodemon": "^2.0.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "dev": "nodemon server.js"
  }
}

  • name β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • version β€” вСрсия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (см. вСрсионированиС)
  • description β€” описаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚?)
  • keywords β€” ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова (ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ поиск Π² рССстрС npm)
  • private β€” установка значСния Π² true ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² рССстрС npm
  • main β€” основная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° для функционирования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • repository β€” ссылка Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²)
  • author β€” Π°Π²Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²)
  • contributors β€” участники ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (люди, внСсшиС Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚)
  • dependencies β€” зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ)
  • devDependencies β€” зависимости для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ)
  • scripts β€” ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (выполняСмыС сцСнарии, Π·Π°Π΄Π°Ρ‡ΠΈ), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«yarn devΒ» запустит скрипт Β«nodemon server.jsΒ»

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список доступных ΠΏΠΎΠ»Π΅ΠΉ Ρ„Π°ΠΉΠ»Π° Β«package.jsonΒ»: npm-package.json

Π€Π°ΠΉΠ»Ρ‹ Β«package-lock.jsonΒ» ΠΈ Β«yarn.lockΒ» содСрТат Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± установлСнных ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, Ρ‡Π΅ΠΌ package.json, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² вмСсто Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° допустимых вСрсий.

ВСрсионированиС

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ†ΠΈΡ„Ρ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1.0.0), Π³Π΄Π΅ пСрвая Ρ†ΠΈΡ„Ρ€Π° β€” маТорная вСрсия (major), вторая β€” минорная вСрсия (minor), Ρ‚Ρ€Π΅Ρ‚ΡŒΡ β€” патчСвая вСрсия (ΠΏΠ°Ρ‚Ρ‡, patch). Выпуск Π½ΠΎΠ²ΠΎΠΉ вСрсии называСтся Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ.

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих Ρ†ΠΈΡ„Ρ€ согласно ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ сСмантичСского вСрсионирования (semver) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • major β€” внСсСниС нСсовмСстимых с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсиСй ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
  • minor β€” новая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, совмСстимая с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсиСй
  • patch β€” исправлСниС ошибок, Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ вСрсий ΠΈΠ»ΠΈ допустимыС Ρ€Π΅Π»ΠΈΠ·Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²):

  • * β€” любая вСрсия (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ пустой строкС)
  • <1.0.0 β€” любая вСрсия, которая мСньшС 1.0.0
  • <=1.0.0 β€” любая вСрсия, которая мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Π° 1.0.0
  • >1.0.0 β€” любая вСрсия, которая большС 1.0.0
  • >=1.0.0 β€” любая вСрсия, которая большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Π° 1.0.0
  • =1.0.0 β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вСрсия 1.0.0 (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «=» ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ)
  • >=1.0.0 <2.0.0 β€” большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 1.0.0 ΠΈ мСньшС 2.0.0
  • 1.0.0-2.0.0 β€” Π½Π°Π±ΠΎΡ€ вСрсий Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ
  • ^1.0.0 β€” ΠΌΠΈΠ½ΠΎΡ€Π½Ρ‹Π΅ ΠΈ ΠΏΠ°Ρ‚Ρ‡Π΅Π²Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ (>=1.0.0 <2.0.0)
  • ~.1.0.0 β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°Ρ‚Ρ‡Π΅Π²Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ (>=1.0.0 <1.1.0)

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния ΠΎ semver: node-semver.

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

Git — Book

2nd Edition (2014)

Download Ebook

The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.>

    1. 1.1
      О систСмС контроля вСрсий
    2. 1.2
      ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Git
    3. 1.3
      ΠžΡΠ½ΠΎΠ²Ρ‹ Git
    4. 1.4
      Командная строка
    5. 1.5
      Установка Git
    6. 1.6
      ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка Git
    7. 1.7
      Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ?
    8. 1.8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 2.1
      Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Git-рСпозитория
    2. 2.2
      Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    3. 2.3
      ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
    4. 2.4
      ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹
    5. 2.5
      Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ рСпозиториями
    6. 2.6
      Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ
    7. 2.7
      ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ Π² Git
    8. 2.8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 3.1
      О Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡƒΡ… словах
    2. 3.2

Git-Mv – вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

Π£ мСня Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° ΠΏΠ°ΠΏΠΊΠ° с ~ 300 Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ~ 30 ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ. Π― Π²Ρ‹Ρ€Π΅Π·Π°Π» ΠΏΠ°ΠΏΠΊΡƒ (Ctrl + X) ΠΈ вставил (Ctrl + V) Π² ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ. Π’ΠΎΠ³Π΄Π° я Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сдСлал git add -A . ПослС выполнСния git status я Π±Ρ‹ сказал,…

6 мСсяцСв, 2Β Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄

J4N

ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» имя Ρ„Π°ΠΉΠ»Π° ΠΈ Π΅Π³ΠΎ содСрТимоС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ git Π½Π΅ смог ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ„Π°ΠΉΠ». Они Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ использовали git mv , поэтому, ΠΊΠΎΠ³Π΄Π° я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» запрос Π½Π° pull, я ΡƒΠ²ΠΈΠ΄Π΅Π» Π΄ΠΎΠ±Π°Π²Π»…

6 мСсяцСв, 2Β Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄

Roberto

Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ мСсяцС я Π½Π°Ρ‡Π°Π» Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π²ΠΊΠ»Π°Π΄ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ GitHub, открывая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π΅ΠΏΠΎ, создавая Π²Π΅Ρ‚Π²ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π·Π°Ρ‚Π΅ΠΌ отправляя запрос Π½Π° пСрСнос. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΡ этот процСсс Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½…

Π― знаю, Ρ‡Ρ‚ΠΎ git прСдоставляСт ‘git rm’ ΠΈ ‘git mv’ для удалСния/пСрСмСщСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Но я Π½Π΅ Π²ΠΈΠΆΡƒ практичСского Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования этого. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ я просто mv ΠΈΠ»ΠΈ rm Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ …

10Β Π»Π΅Ρ‚, 1 мСсяц Π½Π°Π·Π°Π΄

prosseek

Вопрос Π˜ΠΌΠ΅Π΅Ρ‚ Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли я ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽ Git отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git mv , Π° Π½Π΅ просто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с MS -DOS move ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ Windows? Π’ Π΄Π½ΠΈ Subversion Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ

5Β Π»Π΅Ρ‚, 1 мСсяц Π½Π°Π·Π°Π΄

Lernkurve

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ GIT ΠΏΠΎΠ΄ ΠΎΠΊΠ½Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта GIT Bash ΠΈ ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π― ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ clean, commit again ΠΈ Ρ‚.Π΄., Но ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄…

Π― ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для пСрСмСщСния ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ рСпозиториями git, ΠΈ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, — это Ρ‚ΠΎΡ‚ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ git subtree . БлСдуя шагам, всС, каТСтся, Ρ€Π°Π±ΠΎΡ‚Π°Π΅…

Π£ мСня ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΌΠΎΠΈΠΌΠΈ мСстными Π²Π΅Ρ‚ΠΊΠΈΠΌΠΈ. Когда я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git checkout <branch> я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ это сообщСниС ΠΎΠ± ошибкС: error: The following untracked working tree files would be overwri…

Π£ мСня Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ структура git — git-repo a — subdirectory 2015 — git-submodule b — git-submodule c — git-submodule d Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ git c Π² ΠΏΠ°ΠΏΠΊΡƒ 2015. Π― знаю «Π³Ρ€ΡΠ·Π½Ρ‹Π΅…

Π£ мСня Π΅ΡΡ‚ΡŒ git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с> 100 ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π½Π°Π·Π°Π΄ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡƒΡ‚ΠΈ: /Users/myusername/ Однако всС ΠΌΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° самом Π΄Π΅Π»Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ„Π°ΠΉΠ»ΠΎΠ²…

Π― Ρ‡ΠΈΡ‚Π°Π», Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² git Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ измСнСния, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Git распознаСт Ρ„Π°ΠΉΠ» ΠΈΠ· содСрТимого, Π²…

10Β Π»Π΅Ρ‚, 6 мСсяцСв Π½Π°Π·Π°Π΄

Greg K

Π’ bash я ΠΌΠΎΠ³Ρƒ find. -name jndi.properties -exec rename ‘s/jndi/environment/’ {} \; find. -name jndi.properties -exec rename ‘s/jndi/environment/’ {} \; рСкурсивно Π½Π°ΠΉΡ‚ΠΈ всС Ρ„Π°ΠΉΠ»Ρ‹ jndi.propertie ΠΈ ΠΏ…

4Β Π³ΠΎΠ΄Π°, 4 мСсяца Π½Π°Π·Π°Π΄

dr jerry

Π­Ρ‚ΠΎ вопрос ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ вопросу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Π·Π°Π΄Π°Π» Ρ€Π°Π½ΡŒΡˆΠ΅ . ΠŸΠ΅Ρ€Π΅Π΄ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ созданный Ρ„Π°ΠΉΠ» something пСрСимСновываСтся Π² someth

Π’ ΠΌΠΎΠ΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° git ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‡Ρ‚ΠΎ я, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, создав Π½ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π΅ тСряя ΠΊ…

Π£ мСня Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ. Π’ исходной Π²Π΅Ρ‚ΠΊΠΈ Ρƒ мСня Π΅ΡΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎ 2-ΠΌ Π²Π΅Ρ‚ΠΊΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мСсто. ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡ…

3Β Π³ΠΎΠ΄Π°, 8 мСсяцСв Π½Π°Π·Π°Π΄

ufk

Π― случайно использовал mv для пСрСимСнования Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находился ΠΏΠΎΠ΄ git. Π― ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π» Ρ„Π°ΠΉΠ» ΠΎΡ‚ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра Π΄ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ рСгистра, сохраняя Π΅Π³ΠΎ имя. mv abc.java ABC.java Π― Ρ‚Π°ΠΊΠΆΠ΅ внСс ΠΈΠ·ΠΌΠ΅…

4Β Π³ΠΎΠ΄Π°, 7 мСсяцСв Π½Π°Π·Π°Π΄

AshwiniR

git rm | Atlassian Git Tutorial

Π’ Π½Π°Ρ‡Π°Π»Π΅ использования Git часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: «Как Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Git большС Π½Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ²?Β» Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· рСпозитория Git, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git rm. Π•Π΅ дСйствиС ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git add .

ΠžΠ±Π·ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rm

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

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ git rm Π½Π΅ удаляСт Π²Π΅Ρ‚ΠΊΠΈ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± использовании Π²Π΅Ρ‚ΠΎΠΊ Git см. здСсь.

ИспользованиС

Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ. МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π» (file1 file2 file3) ΠΈΠ»ΠΈ шаблон подстановки (~./directory/*).

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -f примСняСтся для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° бСзопасности, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Git обСспСчиваСт соотвСтствиС Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ HEAD Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ содСрТимому Ρ€Π°Π·Π΄Π΅Π»Π° проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ dry run являСтся Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ. Он позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π½Ρ‹ΠΉ запуск ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rm Π±Π΅Π· удалСния Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -r β€” это сокращСниС ΠΎΡ‚ слова recursive. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rm Π² рСкурсивном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π° удаляСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния, Π½ΠΎ ΠΈ всС содСрТимоС Π΅Π³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

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

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

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ заставляСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ со статусом sigterm, Ρ€Π°Π²Π½Ρ‹ΠΌ 0, Π΄Π°ΠΆΠ΅ Ссли Ρ„Π°ΠΉΠ»Ρ‹, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ для удалСния, Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹. Sigterm β€” это ΠΊΠΎΠ΄ состояния Π² Unix. Код 0 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --ignore-unmatch ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Ссли ΠΊΠΎΠΌΠ°Π½Π΄Π° git rm ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² составС скрипта ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ quiet скрываСт Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rm. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ строкС Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсСнных ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git rm

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

Команда git reset восстановит Ρ€Π°Π·Π΄Π΅Π» индСксированных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° HEAD. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ измСнСния, внСсСнныС git rm, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Ρ‹.

Π’Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git checkout: ΠΎΠ½Π° восстановит Π½ΠΎΠ²Π΅ΠΉΡˆΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· указатСля HEAD.

Если послС выполнСния git rm Π±Ρ‹Π» создан Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git reflog, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ссылку, ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ git rm. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± использовании git reflog см. здСсь.

ПояснСния

АргумСнт file>, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ, ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ поиска Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚ΠΈ, зафиксированныС Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Git посрСдством ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ поиска Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². ΠŸΡ€ΠΈ использовании шаблонов поиска слСдуСт Π±Ρ‹Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: directory/* ΠΈ directory*. ИспользованиС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ шаблона ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ directory/, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ всСх ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², имя ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… начинаСтся Π½Π° directory β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, directory1, directory2, directory_whatever ΠΈ Ρ‚. Π΄., Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rm

ДСйствиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git rm распространяСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π΄Π΅Ρ€Π΅Π²ΡŒΡΡ… Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π° проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ². Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π΅ сохраняСтся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ создан Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git rm, Π° Π½Π΅ rm

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Git ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стандартной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ rm для отслСТиваСмого ΠΈΠΌ Ρ„Π°ΠΉΠ»Π° ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ обновляСт Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Но Ρ€Π°Π·Π΄Π΅Π» проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ обновляСтся. Π§Ρ‚ΠΎΠ±Ρ‹ внСсти Π² Π½Π΅Π³ΠΎ измСнСния, для ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git add. Команда git rm ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ количСство дСйствий, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ обновляСт ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈ Ρ€Π°Π·Π΄Π΅Π» проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

gitΒ rmΒ Documentation/\*.txt

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ шаблон поиска Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удалСния всСх Ρ„Π°ΠΉΠ»ΠΎΠ² *.txt Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Documentation ΠΈ всСх Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ….

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ символ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ * здСсь экранируСтся символами косой Ρ‡Π΅Ρ€Ρ‚Ρ‹. Π­Ρ‚ΠΎ сдСлано, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ»Π° шаблон. Π’ Ρ‚Π°ΠΊΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ, находящимся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Documentation/.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСтся с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ force для всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ подстановки git-*.sh. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ force явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ удаляСт Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π° проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ².

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΆΠ΅ Π½Π΅Ρ‚ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС

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

Если трСбуСтся Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ всС явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² составС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git commit -a. Она внСсСт всС события удалСния Π² Ρ€Π°Π·Π΄Π΅Π» проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.

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

gitΒ diffΒ --name-onlyΒ --diff-filter=DΒ -zΒ |Β xargsΒ -0Β gitΒ rmΒ --cached

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст список ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ пСрСдаст Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git rm --cached, которая ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ Ρ€Π°Π·Π΄Π΅Π» проиндСксированных Ρ„Π°ΠΉΠ»ΠΎΠ².

Команда git rm: Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

git rm ΠΈ git mv

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ практичСский вопрос ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Git — это ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

Π’ частности, это ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ удалСния ΠΈ пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ систСмС Git ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π² Linux / Mac OS. Но для Git ΠΎΠ½ΠΈ выглядят нСсколько ΠΈΠ½Π°Ρ‡Π΅: — для удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ — для пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ². НиТС я Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ ΠΎΠ±Π΅ эти ΠΊΠΎΠΌΠ°Π΄Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Команда git rm

Для удалСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² систСмС Git, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, имССтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° .Π•Π΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ консольной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Linux) Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² особСнностях самой систСмы Git.

Как Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстно, Π² систСмС Git ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Ρ€Π΅Ρ… ипостасях: Β«Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Β», Π² области Β«ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΒ», Π² области Β«Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉΒ». Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· области Β«Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Β» Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΅Π³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ ΠΈΠ· областСй Β«ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΒ» ΠΈ Β«Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉΒ».

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», Π½ΡƒΠΆΠ½ΠΎ (Π² ΠΈΠ΄Π΅Π°Π»Π΅) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ подряд для удалСния ΠΈΠ· Π Π°Π±ΠΎΡ‡Π΅ΠΉ области Β«Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Β», ΠΈΠ· области индСкса Β«ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΒ» ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ· рСпозитория Β«Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉΒ»:

  $ rm индСкс.html
$ git add.
$ git commit -m 'Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» index.html'  

Команда являСтся Π½ΠΈ Ρ‡Π΅ΠΌ ΠΈΠ½Ρ‹ΠΌ, ΠΊΠ°ΠΊ Β«Π²ΡˆΠΈΡ‚Ρ‹ΠΌΒ» Π² Git сокращСниСм Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄:

  $ rm index.html
$ git add.  

Π‘Π΄Π΅Π»Π°Π½ΠΎ это всСго лишь для удобства пользования систСмой Git. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ посмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ . ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ имССтся Ρ„Π°ΠΉΠ» , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ проиндСксирован ΠΈ зафиксирован.

Π£Π΄Π°Π»ΠΈΠΌ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ :

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· Π΄Π²ΡƒΡ… областСй: Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Β«Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Β» ΠΈ области индСксации Β«ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΒ».Но Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ„Π°ΠΉΠ» всС ΠΆΠ΅ остался, ΠΎ Ρ‡Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ .

Π›ΡŽΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ зафиксируСт Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ удалСния этого Ρ„Π°ΠΉΠ»Π°:

Команда git rm -cached

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ имССтся ΠΏΠ°Ρ€Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся ΠΊΠ»ΡŽΡ‡ . Π—Π°Π΄Π°Ρ‡Π° этого ΠΊΠ»ΡŽΡ‡Π° — ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ· области индСксирования Β«ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ области», Π½ΠΎ ΠΏΡ€ΠΈ этом Π΅Π³ΠΎ Π² области Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Β«Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Β». Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° создан Ρ„Π°ΠΉΠ» ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π΅Π³ΠΎ индСкс (Π½ΠΎ Π½Π΅ фиксация):

Π£Π΄Π°Π»ΠΈΠΌ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ :

ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ! Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° .ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, отряд ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области Β«Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Β» имССтся нСотслСТиваСмый (нСотслСТиваСмый) Ρ„Π°ΠΉΠ» ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ .

Команда git rm -f

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

ЛогичСским ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ являСтся Ρ‚Π° ΠΆΠ΅ самая ΠΊΠΎΠΌΠ°Π½Π΄Π° , Π½ΠΎ с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ .Вакая ΠΊΠΎΠΌΠ°Π½Π΄Π° удаляСт проиндСксированный (Π½ΠΎ Π΅Ρ‰Π΅ Π½Π΅ зафиксированный) Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ ΠΈΠ· области Β«ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Π°Ρ Π·ΠΎΠ½Π°Β», Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· области Β«Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Β».

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ созданного ΠΈ проиндСксированного Ρ„Π°ΠΉΠ»Π° Π΅Π³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ :

Π€Π°ΠΉΠ» ΡƒΠ΄Π°Π»Π΅Π½ ΠΊΠ°ΠΊ ΠΈΠ· области Β«ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΒ», Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· области Β«Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Β». Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ практичСски Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹.

Команда git mv — ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²

Π’ систСмС Git имССтся «своя» ΠΊΠΎΠΌΠ°Π½Π΄Π° для пСрСмСщСния ΠΈΠ»ΠΈ пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘Π»ΠΎΠ²ΠΎ «своя» здСсь Π½Π΅ Π΄Π°Ρ€ΠΎΠΌ взято Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ — аналогия с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ полная. Команда ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹, автоматичСски «увСдомляя» ΠΎΠ± этих событиях ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Β«Staging AreaΒ»:

ΠžΡΡ‚Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти измСнСния Π»ΡŽΠ±Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ:

  $ git commit -m 'ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ индСкс.html Π² papka '
  [master 868d428] ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ index.html Π² ΠΏΠ°ΠΏΠΊΡƒ papka
   1 Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 0 вставок (+), 0 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ (-)
   ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ index.html => papka / index.html (100%)  

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ :

Π’ΠΎΡ‚ ΠΈ всС нСслоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ \ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ , ΠΏΠΎΠ΄ всСвидящим ΠΎΠΊΠΎΠΌ Git.


ΠΌΠ΅Ρ€Π·Π°Π²Π΅Ρ†

.

Какова Ρ†Π΅Π»ΡŒ git-mv? | Π‘Π»ΠΎΠ³ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

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

рассмотрим Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Начало с пустого Π Π•ΠŸΠž,

  git init
echo "ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ"> Π°
echo "Second"> b
git add *
git commit -m "Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация"
мв а с
mv b a
git status
  

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  # ΠœΠ°ΡΡ‚Π΅Ρ€ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°
# ИзмСнСния, Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для фиксации:
# (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add / rm ... "ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΎ)
# (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git checkout - <Ρ„Π°ΠΉΠ»> ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅)
#
# ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: a
# ΡƒΠ΄Π°Π»Π΅Π½ΠΎ: b
#
# НС отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹:
# (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add  ..." для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ зафиксировано)
#
# c
Π² Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add" ΠΈ / ΠΈΠ»ΠΈ "git commit -a")
  

Π°Π²Ρ‚ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ πŸ™
Или это сдСлал?

  $ git add *
$ git commit -m "ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ"
$ git ΠΆΡƒΡ€Π½Π°Π» c

ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 0c5425be1121c20cc45df04734398dfbac689c39
Автор: Π‘Π΅Ρ€Π³Π΅ΠΉ ΠžΡ€ΡˆΠ°Π½ΡΠΊΠΈΠΉ <***** @ gmail.com>
Π”Π°Ρ‚Π°: Π‘Π± 12 ΠΎΠΊΡ‚, 00:24:56 2013 -0400

    ΠΌΠ΅Π½ΡΡ‚ΡŒ
  

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

  $ git log - ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ c

Автор: Π‘Π΅Ρ€Π³Π΅ΠΉ ΠžΡ€ΡˆΠ°Π½ΡΠΊΠΈΠΉ <***** @ gmail.com>
Π”Π°Ρ‚Π°: Π‘Π± 12 ΠΎΠΊΡ‚, 00:24:56 2013 -0400

    ΠΌΠ΅Π½ΡΡ‚ΡŒ

ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 50c2a4604a27be2a1f4b95399d5e0f96c3dbf70a
Автор: Π‘Π΅Ρ€Π³Π΅ΠΉ ΠžΡ€ΡˆΠ°Π½ΡΠΊΠΈΠΉ <***** @ gmail.com>
Π”Π°Ρ‚Π°: Π‘Π± 12 ΠΎΠΊΡ‚, 00:24:45 2013 -0400

    Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация
  

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ вмСсто этого (Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ .git ΠΏΠ°ΠΏΠΊΠ° ΠΏΡ€ΠΈ экспСримСнтировании):

  git init
echo "ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ"> Π°
echo "Second"> b
git add *
git commit -m "Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация"
git mv a c
git status
  

Ρ‚Π°ΠΊ:

  # ΠœΠ°ΡΡ‚Π΅Ρ€ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°
# ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:
# (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git reset HEAD <Ρ„Π°ΠΉΠ»>... "ΡƒΠ±Ρ€Π°Ρ‚ΡŒ сцСну)
#
# ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΎ: a -> c


git mv b a
git status
  

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π΅Π½:

  # ΠœΠ°ΡΡ‚Π΅Ρ€ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°
# ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:
# (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git reset HEAD <Ρ„Π°ΠΉΠ»> ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сцСну)
#
# ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: a
# ΡƒΠ΄Π°Π»Π΅Π½ΠΎ: b
# Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: c
#
  

Π² самом Π΄Π΅Π»Π΅? Ну ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ …

  git add *
git commit -m "ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ"
git ΠΆΡƒΡ€Π½Π°Π» c
git log - ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ c
  

… ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹ΡˆΠ΅: Ρ‚ΠΎΠ»ΡŒΠΊΠΎ - слСдуйтС ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ.


Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны с ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ любой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ странно эффСкты .
ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

  git init
echo "ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ"> Π°
git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ
git commit -m "Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π°"
echo "Second"> b
git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ b
git commit -m "Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±"

git mv a c
git commit -m "ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ…ΠΎΠ΄"
git mv b a
git commit -m "Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ…ΠΎΠ΄"

git log - ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π°

ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 81b80f5690deec1864ebff294f875980216a059d
Автор: Π‘Π΅Ρ€Π³Π΅ΠΉ ΠžΡ€ΡˆΠ°Π½ΡΠΊΠΈΠΉ <***** @ gmail.com>
Π”Π°Ρ‚Π°: Π‘Π± 12 ΠΎΠΊΡ‚, 00:35:58 2013 -0400

    Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ…ΠΎΠ΄

ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ f284fba9dc8455295b1abdaae9cc6ee941b66e7f
Автор: Π‘Π΅Ρ€Π³Π΅ΠΉ ΠžΡ€ΡˆΠ°Π½ΡΠΊΠΈΠΉ <***** @ gmail.com>
Π”Π°Ρ‚Π°: Π‘Π± 12 ΠΎΠΊΡ‚, 00:34:54 2013 -0400

    Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π±
  

сравнитС Π΅Π³ΠΎ с:

  git init
echo "ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ"> Π°
git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ
git commit -m "Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Π°"
echo "Second"> b
git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ b
git commit -m "Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±"

git mv a c
git mv b a
git commit -m "ΠΎΠ±Π° Ρ…ΠΎΠ΄Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ"

git log - ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π°
  

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 84bf29b01f32ea6b746857e0d8401654c4413ecd
Автор: Π‘Π΅Ρ€Π³Π΅ΠΉ ΠžΡ€ΡˆΠ°Π½ΡΠΊΠΈΠΉ <***** @ gmail.com>
Π”Π°Ρ‚Π°: Π‘Π± 12 ΠΎΠΊΡ‚, 00:37:13 2013 -0400

    ΠΎΠ±Π° двиТСния ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ

ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ec0de3c5358758ffda462913f6e6294731400455
Автор: Π‘Π΅Ρ€Π³Π΅ΠΉ ΠžΡ€ΡˆΠ°Π½ΡΠΊΠΈΠΉ <***** @ gmail.com>
Π”Π°Ρ‚Π°: Π‘Π± 12 ΠΎΠΊΡ‚, 00:36:52 2013 -0400

    ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Ρ‹
  

Упс … Π’Π΅ΠΏΠ΅Ρ€ΡŒ история возвращаСтся ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ a вмСсто Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ b , Ρ‡Ρ‚ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ Π΄Π²Π° Ρ…ΠΎΠ΄Π° Π·Π° Ρ€Π°Π·, Git запутался ΠΈ Π½Π΅ отслСТивал измСнСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π² ΠΌΠΎΠΈΡ… экспСримСнтах Ρ‚ΠΎ ΠΆΠ΅ самоС происходило, ΠΊΠΎΠ³Π΄Π° я удалял / создавал Ρ„Π°ΠΉΠ»Ρ‹ вмСсто git mv . ДСйствуйтС остороТно; Π²Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ …

.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ bash, git, npm ΠΈ yarn, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ package.json ΠΈ semver / Π₯Π°Π±Ρ€

Π”ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток, Π΄Ρ€ΡƒΠ·ΡŒΡ!

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ ΠΏΠΎ основным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ bash, git, npm, yarn, package.json ΠΈ semver.

УсловныС обозначСния: [dir-name] — ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, | — ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«ΠΈΠ»ΠΈΒ».

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ввСсти ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΈ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‚Π°ΠΊ Π²Ρ‹ быстро ΠΈΡ… Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹, Π° ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅Ρ‚.

ΠŸΡ€ΠΈΠ½ΠΎΡˆΡƒ извинСния Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки ΠΈ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ. Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ Π»ΡŽΠ±Ρ‹ΠΌ замСчаниям ΠΈ прСдлоТСниям.

Π‘Π΅Π· Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… прСдисловий.

ОглавлСниС:

bash

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

Установка: Π² ΠΌΠΎΠ΅ΠΌ случаС bash Π±Ρ‹Π» установлСн вмСстС с git.

Π‘ΠΏΡ€Π°Π²ΠΊΠ°:

  справка
  

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄:

  Π˜ΡΡ‚ΠΎΡ€ΠΈΡ
  

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°:

  clear
  

Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°:

  exit
  

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

  // ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
mkdir [имя-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
mkdir ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
// нСсколько Π΄ΠΈΡ€Π΅Ρ‚ΠΎΡ€ΠΈΠΉ
mkdir -p {dir1, dir2}
// нСсколько Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ
mkdir -p ΠΌΠΎΠ΅-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / {css, js}
  

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

  // ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
cd [dir-name]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
cd my-app
// сразу послС создания
cd! $
// Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠ°Ρ дирСктория
CD ..
// Π½Π° Π΄Π²Π° уровня Π²Ρ‹ΡˆΠ΅
CD ../..
// прСдыдущая дирСктория
CD -
// домашняя дирСктория
cd ~
  

ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

  // Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
pwd
  

Бписок Ρ„Π°ΠΉΠ»ΠΎΠ²:

  // список
ls
// Π²ΠΊΠ»ΡŽΡ‡Π°Ρ скрытыС Ρ„Π°ΠΉΠ»Ρ‹
ls -a | -f
// большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
// Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π°Π²Π° доступа
ls -l
  

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

  touch [имя-Ρ„Π°ΠΉΠ»Π°]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
сСнсорный index.html
// нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ²
ΠΊΠΎΡΠ½ΠΈΡ‚Π΅ΡΡŒ my-app / {index.html, css / style.css, js / script.js}
  

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π°:

  cat [имя-Ρ„Π°ΠΉΠ»Π°]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
индСкс кошки.html
// сортировка ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
ΠΊΠΎΡ‚ [имя-Ρ„Π°ΠΉΠ»Π°] | ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ | uniq
// мСньшС ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°
less [имя-Ρ„Π°ΠΉΠ»Π°] // q - Π²Ρ‹Ρ…ΠΎΠ΄
// n строк с Π½Π°Ρ‡Π°Π»Π° Ρ„Π°ΠΉΠ»Π°
head -50 [имя-Ρ„Π°ΠΉΠ»Π°]
// n строк с ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°
хвост -50 [имя-Ρ„Π°ΠΉΠ»Π°]
// поиск слова
grep [строка] [имя-Ρ„Π°ΠΉΠ»Π°]

// распаковка ΠΈ просмотр содСрТимого Π°Ρ€Ρ…ΠΈΠ²Π°
Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ [имя Π°Ρ€Ρ…ΠΈΠ²Π°]

// Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°
Ρ„Π°ΠΉΠ» [имя-Ρ„Π°ΠΉΠ»Π°]
  

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ„Π°ΠΉΠ»Π°:

  // копия
cp [Ρ„Π°ΠΉΠ»1] [Ρ„Π°ΠΉΠ»2]

// ΠΏΠ΅Ρ€Π΅Π΅Ρ…Π°Ρ‚ΡŒ
mv [Ρ„Π°ΠΉΠ»1] [Ρ„Π°ΠΉΠ»2]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
// ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ
mv [dir1] / *.* [dir2]

// Π£Π΄Π°Π»ΠΈΡ‚ΡŒ
rm [имя-Ρ„Π°ΠΉΠ»Π°]
// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ пустой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
rmdir [имя-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°]
// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ нСпустой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
rm -r [имя-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°]
// ΠΈΠ»ΠΈ
rm -rf [имя-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°]
  

Π’Ρ‹Π²ΠΎΠ΄ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» строки:

  echo [строка]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
эхо ΠΏΡ€ΠΈΠ²Π΅Ρ‚
// созданиС ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ Ρ„Π°ΠΉΠ»Π°
эхо ΠΏΡ€ΠΈΠ²Π΅Ρ‚> greet.txt
// Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ строки Π² Ρ„Π°ΠΉΠ»
эхо ΠΏΡ€ΠΈΠ²Π΅Ρ‚ >> greet.txt
  

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»Π°:

  wget [url]
  

ΠšΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€Ρ‹:

  true && echo hello
лоТь || эхо ΠΏΡ€ΠΈΠ²Π΅Ρ‚
эхо ΠΏΡ€ΠΈΠ²Π΅Ρ‚; ls
  

ΠšΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€:

  // количСство пСрСносов строки - \ n
ΠΊΠΎΡ‚ [Ρ„Π°ΠΉΠ»] | wc -l
  

Π³ΠΈΡ‚

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

Книга Pro Git.

Бкринкаст Ильи ΠšΠ°Π½Ρ‚ΠΎΡ€Π°.

Быстрый старт: Git How To.

Установка: git-scm.com.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° установки:

  git --version
  

Π‘ΠΏΡ€Π°Π²ΠΊΠ°:

  git help
git help [имя-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹]
git [имя-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹] --help | -час
  

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ настройки:

  // --local - настройки для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅ΠΏΠΎ
// --global - настройки для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
// --систСма - настройки для всСй систСмы, Ρ‚.Π΅. для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
git config --global user.name «МоС имя»
git config --global user.email "[email protected]"
  

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки:

  // список Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк
git config --list | -l --global

// Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк
git config --global --edit | -e
  

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория:

  git init
  

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° рСпозитория:

  // -d - Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, -x - Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, -f - ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ
git clean | -dxf
  

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ:

  // ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ
git rm [имя-Ρ„Π°ΠΉΠ»Π°]
git rm -r [имя-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°]

git rm --force | -f
  

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

  // git add + git remove
// ΠΏΠ΅Ρ€Π΅Π΅Ρ…Π°Ρ‚ΡŒ
git mv [старый Ρ„Π°ΠΉΠ»] [Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»]
  

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ состояния рСпозитория:

  git status
  

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

  git add [имя-Ρ„Π°ΠΉΠ»Π°]

git add --force | -f

// всС Ρ„Π°ΠΉΠ»Ρ‹
git add.| --всС | -А

// для добавлСния пустой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ пустой Ρ„Π°ΠΉΠ» .gitkeep
  

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ сообщСний (ΠΊΠΎΠΌΠΌΠΈΡ‚Π°):

  // Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°
git commit

// ΠΊΠΎΠΌΠΌΠΈΡ‚ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ измСнСния, Ссли Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ git add. | -А
// Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ, сообщСниС Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ для всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git commit --message | -m "МоС сообщСниС"

// для всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ссли git add [имя-Ρ„Π°ΠΉΠ»Π°] Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ нСсколько Ρ€Π°Π·
git commit --all | -a -m | -am "МоС сообщСниС"

// исправлСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°
git commit --amend "МоС сообщСниС" | --Π½Π΅Ρ‚-Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
  

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

  // послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚
ΠΌΠ΅Ρ€Π·Π°Π²Π΅Ρ† ΡˆΠΎΡƒ

// Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚
git show [hash] // ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 4 символов

// поиск ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ части сообщСния
git show: / [строка]

// поиск ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΏΠΎ Ρ‚Π΅Π³Ρƒ
git show [имя-Ρ‚Π΅Π³Π°]
  

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ:

  git diff HEAD | @ // HEAD - ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, тСкущая Π²Π΅Ρ‚ΠΊΠ°; @ - алиас для HEAD

// постановка
git diff --staged | --cached

git diff [hash2] [hash3]

// Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ
git diff [Π²Π΅Ρ‚ΠΊΠ°2]... [Π²Π΅Ρ‚ΠΊΠ°3]

// просмотр Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ сообщСния
git commit --verbose | -v

// кастомизация Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ сообщСния
git diff --word-diff | --Ρ†Π²Π΅Ρ‚-слова
  

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

  git log

// n - количСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git log -n
// --since, --after - послС
// - Π΄ΠΎ, - Π΄ΠΎ - Π΄ΠΎ

// Ρ€Π°Π·Π½ΠΈΡ†Π°
git log -p

// быстроС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
git log --graph --oneline --stat

// кастомноС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
git log --pretty = format
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
git log --pretty = format: '% C (красный)% h% C (Π·Π΅Π»Π΅Π½Ρ‹ΠΉ)% cd% C (сброс) | % C (синий)% s% d% C (ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ) [% an] '--date = short | Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: '% F% R'

// поиск ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ слову, Ρ„Π°ΠΉΠ»Ρƒ, Π²Π΅Ρ‚ΠΊΠ΅; i - Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра
git log --grep | -G [строка] | [Ρ„Π°ΠΉΠ»] | [Π²Π΅Ρ‚ΠΊΠ°] & -i

// поиск ΠΏΠΎ нСскольким строкам
git log --grep [строка1] --grep [строка2] --all-match

// поиск Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Ρ„Π°ΠΉΠ»Π°
git log -L '/  /', '/ <\ / head> /': index.html

// поиск ΠΏΠΎ Π°Π²Ρ‚ΠΎΡ€Ρƒ
git log --author = [имя]
  

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

  git reset
// --hard - Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ индСкс
// --soft - Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ индСкс
// - ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ - ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π½ΠΎ с индСксом

git reset --hard [Ρ…Π΅Ρˆ] | @ ~ // @ ~ - послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² HEAD

// Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ
git reset --hard ORIG_HEAD

// Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ
git checkout

git Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ
  

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

  // список Π²Π΅Ρ‚ΠΎΠΊ
Π²Π΅Ρ‚ΠΊΠ° git

// созданиС Π²Π΅Ρ‚ΠΊΠΈ
git branch [имя-Π²Π΅Ρ‚ΠΊΠΈ]

// ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅Ρ‚ΠΊΡƒ
git checkout [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Π²Π΅Ρ‚ΠΊΠΈ]

// Π²Π΅Ρ‚ΠΊΠ° + касса
git checkout -b [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Π²Π΅Ρ‚ΠΊΠΈ]

// ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅
git branch -m [старая Π²Π΅Ρ‚ΠΊΠ°] [новая Π²Π΅Ρ‚ΠΊΠ°]

// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ
git branch -d [имя-Π²Π΅Ρ‚ΠΊΠΈ]

// слияниС Π²Π΅Ρ‚ΠΎΠΊ
git merge [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-Π²Π΅Ρ‚ΠΊΠΈ]
  

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ слиянии:

  // ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, открываСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€

// ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния ΠΈΠ· сливаСмой Π²Π΅Ρ‚ΠΊΠΈ
git checkout - часы

// ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ
git checkout --theirs

// ΠΎΡ‚ΠΌΠ΅Π½Π° слияния
git reset --merge
git merge --abort

// ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
git checkout --conflict = diff3 --merge [имя-Ρ„Π°ΠΉΠ»Π°]

// ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ слияниС
git merge - ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
  

Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:

  // ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
git clone [URL] ΠΈ [ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³]

// просмотр
git ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ
git ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡˆΠΎΡƒ
git ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ [ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ имя] [URL]
git ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ [староС имя] [Π½ΠΎΠ²ΠΎΠ΅ имя]

// ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
// git fetch + git merge
git pull

// ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git push
  

Π’Π΅Π³ΠΈ:

  // просмотр
git tag

// лСгковСсная ΠΌΠ΅Ρ‚ΠΊΠ°
git tag [имя-Ρ‚Π΅Π³Π°]
// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
git tag v1-beta

// аннотированная ΠΌΠ΅Ρ‚ΠΊΠ°
git tag -a v1 -m "Моя вСрсия 1"

// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅
git tag -d [имя Ρ‚Π΅Π³Π°]
  

ΠžΡ‚Π»Π°Π΄ΠΊΠ°

  git bisect

ΠΌΠ΅Ρ€Π·Π°Π²Π΅Ρ† Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚

git grep
  

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

  // Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅
git stash

// ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅
git stash pop
  

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

  git cherry-pick | -x [Ρ…Π΅Ρˆ]

// Ссли Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚
// ΠΎΡ‚ΠΌΠ΅Π½Π°
git cherry-pick --abort

// ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
git cherry-pick - ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ

git cherry-pick --no-commit | -n

// --cherry = --cherry-mark --left-right --no-merges
git log --oneline --cherry [Π²Π΅Ρ‚ΠΊΠ°2] [Π²Π΅Ρ‚ΠΊΠ°3]
  

ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅:

  git rebase [Π²Π΅Ρ‚ΠΊΠ°]

// ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°
// ΠΎΡ‚ΠΌΠ΅Π½Π°
git rebase --abort

// ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ
git rebase - ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ

// ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
git rebase - ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ

// ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² слияния
git rebase --preserve-merges | -ΠΏ

// ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
git rebase -i [Π²Π΅Ρ‚ΠΊΠ°]
  

ΠΠ²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²:

  // ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ - ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ устройства
// ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΡ€Π°Π²Π΄Π° | Π»ΠΎΠΆΠ½Ρ‹ΠΉ
// rerere.autoUpdate true | Π»ΠΎΠΆΠ½Ρ‹ΠΉ
// rerere-train.sh - скрипт для обучСния rerere
git rerere Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ [имя-Ρ„Π°ΠΉΠ»Π°]
  

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹:

  git revert @ | [Ρ…Π΅Ρˆ]

// ΠΎΡ‚ΠΌΠ΅Π½Π° слияния
// git reset --hard @ ~ Π½Π΅ сработаСт
git revert [Ρ…ΡΡˆ] -m 1

// git merge [Π²Π΅Ρ‚ΠΊΠ°] Π½Π΅ сработаСт
// ΠΎΡ‚ΠΌΠ΅Π½Π° ΠΎΡ‚ΠΌΠ΅Π½Ρ‹
git revert [Ρ…Π΅Ρˆ]

// ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ влияниС с rebase
git rebase [Π²Π΅Ρ‚ΠΊΠ°2] [Π²Π΅Ρ‚ΠΊΠ°3] | --onto [Π²Π΅Ρ‚ΠΊΠ°2] [Ρ…Π΅Ρˆ] [Π²Π΅Ρ‚ΠΊΠ°3]

git merge [Π²Π΅Ρ‚ΠΊΠ°]

git rebase [Ρ…Π΅Ρˆ] --no-ff
  

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ алиасов (сокращСний) для.gitconfig:

  [псСвдоним]
    aa = Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ -A
    co = ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°
    ci = ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ -m
    st = статус
    br = Ρ„ΠΈΠ»ΠΈΠ°Π»
  

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ .gitconfig:

  [ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ]
name = [МоС имя]
элСктронная ΠΏΠΎΡ‡Ρ‚Π° = [[email protected]]
имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ = [myusername]
[core]
Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ = [myeditor]
ΠΏΡ€ΠΎΠ±Π΅Π» = ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, -indent-with-non-tab, trailing-space, cr-at-eol
ΠΏΠ΅ΠΉΠ΄ΠΆΠ΅Ρ€ = Π΄Π΅Π»ΡŒΡ‚Π°
[Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚]
Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ = google-chrome
[instaweb]
httpd = apache2 -f
[rerere]
Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ = 1
autoupdate = 1
[ΠžΡ‚ сСбя]
ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ = соотвСтствиС
[Ρ†Π²Π΅Ρ‚]
ui = Π°Π²Ρ‚ΠΎ
[цвСтная Β«Π²Π΅Ρ‚ΠΊΠ°Β»]
Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ = ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ
local = Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΆΠΈΡ€Π½Ρ‹ΠΉ
remote = Π³ΠΎΠ»ΡƒΠ±ΠΎΠΉ ΠΆΠΈΡ€Π½Ρ‹ΠΉ
[Ρ†Π²Π΅Ρ‚ Β«Ρ€Π°Π·Π½ΠΈΡ†Π°Β»]
ΠΌΠ΅Ρ‚Π° = ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ
frag = ΠΆΠΈΡ€Π½Ρ‹ΠΉ ΠΏΡƒΡ€ΠΏΡƒΡ€Π½Ρ‹ΠΉ
old = красный ΠΆΠΈΡ€Π½Ρ‹ΠΉ
new = Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΆΠΈΡ€Π½Ρ‹ΠΉ
ΠΏΡ€ΠΎΠ±Π΅Π» = красный рСвСрс
[Ρ†Π²Π΅Ρ‚ «статус»]
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ = Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΆΠΈΡ€Π½Ρ‹ΠΉ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ = ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ
untracked = ΠΆΠΈΡ€Π½Ρ‹ΠΉ красный
[difftool]
подсказка = лоТь
[Π΄Π΅Π»ΡŒΡ‚Π°]
features = ΡƒΠΊΡ€Π°ΡˆΠ΅Π½ΠΈΡ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² строк
Π½ΠΎΠΌΠ΅Ρ€Π° строк = истина
[Π΄Π΅Π»ΡŒΡ‚Π° "ΡƒΠΊΡ€Π°ΡˆΠ΅Π½ΠΈΡ"]
минус-ΡΡ‚ΠΈΠ»ΡŒ = красный ΠΆΠΈΡ€Π½Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ
plus-style = Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΆΠΈΡ€Π½Ρ‹ΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ
minus-emph-style = Π±Π΅Π»Ρ‹ΠΉ ΠΆΠΈΡ€Π½Ρ‹ΠΉ красный
minus-non-emph-style = красный ΠΆΠΈΡ€Π½Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ
plus-emph-style = Π±Π΅Π»Ρ‹ΠΉ ΠΆΠΈΡ€Π½Ρ‹ΠΉ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ
plus-non-emph-style = Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ
file-style = ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ Π½Π΅Ρ‚
file-decoration-style = ТСлтая ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ°
hunk-header-style = ΠΏΡƒΡ€ΠΏΡƒΡ€Π½Ρ‹ΠΉ ΠΆΠΈΡ€Π½Ρ‹ΠΉ
hunk-header-decoration-style = ΠΏΡƒΡ€ΠΏΡƒΡ€Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ
minus-empty-line-marker-style = Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ
plus-empty-line-marker-style = Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ
line-numbers-right-format = "{np: ^ 4} β”‚"
[github]
user = [имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ]
token = Ρ‚ΠΎΠΊΠ΅Π½
[gitflow "прСфикс"]
versiontag = v
[ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ]
Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ = ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ инструмСнт пСрСбазирования
[псСвдоним]
Π° = Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ - всС
ai = Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ -i
###
ap = ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ
ΠΊΠ°ΠΊ = ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ --stat
ac = apply --check
###
ama = am --abort
amr = am --resolved
ams = am --skip
###
b = Π²Π΅Ρ‚ΠΊΠ°
ba = Π²Π΅Ρ‚ΠΊΠ° -a
bd = Π²Π΅Ρ‚ΠΊΠ° -d
bdd = Π²Π΅Ρ‚ΠΊΠ° -D
br = Π²Π΅Ρ‚ΠΊΠ° -r
bc = rev-parse --abbrev-ref Π“ΠžΠ›ΠžΠ’ΠšΠ
bu =! git rev-parse --abbrev-ref --symbolic-full-name "@ {u}"
бс =! git-Π²Π΅Ρ‚ΠΊΠ°-статус
###
c = ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ
ca = commit -a
cm = ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ -m
cam = commit -am
cem = commit --allow-empty -m
cd = commit --amend
cad = commit -a --amend
ced = ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ --allow-empty --amend
###
cl = clone
cld = clone --depth 1
clg =! sh -c 'git clone git: // github.com / $ 1 $ (базовоС имя $ 1) '-
clgp =! sh -c 'git clone [email protected]: $ 1 $ (Π±Π°Π·ΠΎΠ²ΠΎΠ΅ имя $ 1)' -
clgu =! sh -c 'git clone [email protected]: $ (git config --get user.username) / $ 1 $ 1' -
###
cp = Π²Ρ‹Π±ΠΎΡ€ вишни
cpa = Π²Ρ‹Π±ΠΎΡ€ вишни --abort
cpc = Π²Ρ‹Π±ΠΎΡ€ вишни - ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
###
d = diff
dp = diff --patience
dc = diff --cached
dk = diff --check
dck = diff --cached --check
dt = difftool
dct = difftool --cached
###
f = ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ
fo = ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ источник
fu = ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ восходящий ΠΏΠΎΡ‚ΠΎΠΊ
###
fp = Ρ„ΠΎΡ€ΠΌΠ°Ρ‚-ΠΏΠ°Ρ‚Ρ‡
###
fk = fsck
###
g = grep -p
###
l = ΠΆΡƒΡ€Π½Π°Π» --oneline
lg = log --oneline --graph --decorate
###
ls = ls-Ρ„Π°ΠΉΠ»Ρ‹
lsf =! git ls-files | grep -i
###
m = ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ
ma = слияниС --abort
mc = merge - ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
мс = слияниС - ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ
###
o = ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π·
om = кассир
ob = checkout -b
opr =! sh -c 'git fo pull / $ 1 / head: pr- $ 1 && git o pr- $ 1'
###
ΠΏΡ€ = ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ -v
###
ps = push
psf = push -f
psu = push -u
pst = push --tags
###
pso = push origin
psao = push - всС происхоТдСниС
psfo = push -f origin
psuo = push -u origin
###
psom = push origin master
psaom = push - мастСр всСх источников
psfom = push -f origin master
psuom = push -u origin master
psoc =! git push origin $ (git bc)
psaoc =! git push --all origin $ (git bc)
psfoc =! git push -f origin $ (git bc)
psuoc =! git push -u origin $ (git bc)
psdc =! git push origin: $ (git bc)
###
pl = Ρ‚ΡΠ½ΡƒΡ‚ΡŒ
pb = pull --rebase
###
plo = исходная Ρ‚ΠΎΡ‡ΠΊΠ°
pbo = pull --rebase origin
plom = Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ источник происхоТдСния
ploc =! git pull origin $ (git bc)
pbom = pull --rebase origin master
pboc =! git pull --rebase origin $ (git bc)
###
plu = Ρ‚ΡΠ½ΡƒΡ‚ΡŒ Π²Π²Π΅Ρ€Ρ…
plum = потянитС Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ
pluc =! git pull upstream $ (git bc)
pbum = pull --rebase Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ сСрвСр
pbuc =! git pull --rebase upstream $ (git bc)
###
rb = ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
rba = rebase --abort
rbc = rebase - ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
rbi = rebase --interactive
rbs = rebase --skip
###
re = ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ
rh = ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ HEAD
reh = reset --hard
rem = reset - ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ
res = сброс - soft
rehh = reset --hard HEAD
remh = reset - смСшанная Π“ΠžΠ›ΠžΠ’ΠšΠ
resh = reset - soft HEAD
rehom = reset --hard origin / master
###
r = ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ
ra = ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅
rr = ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ rm
rv = ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ -v
rn = ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅
rp = удалСнная ΠΎΠ±Ρ€Π΅Π·ΠΊΠ°
rs = ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡˆΠΎΡƒ
rao = ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ источника
rau = ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ
rro = ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ источника
rru = ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ восходящСго ΠΏΠΎΡ‚ΠΎΠΊΠ°
rso = источник ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡˆΠΎΡƒ
rsu = ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡˆΠΎΡƒ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ
rpo = ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ источник ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ
rpu = удалСнная ΠΎΠ±Ρ€Π΅Π·ΠΊΠ° восходящСго ΠΏΠΎΡ‚ΠΎΠΊΠ°
###
rmf = rm -f
rmrf = rm -r -f
###
s = статус
sb = статус -s -b
###
sa = stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ
sc = Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ
sd = ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°
sl = список Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ²
sp = stash pop
ss = Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ
ssk = stash save -k
sw = Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΡˆΠΎΡƒ
st =! git список Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² | wc -l 2> / dev / null | grep -oEi '[0-9] [0-9] *'
###
t = Ρ‚Π΅Π³
td = Ρ‚Π΅Π³ -d
###
w = ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ
wp = ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ -p
wr = ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ -p --no-color
###
svnr = svn rebase
svnd = svn dcommit
svnl = svn log --oneline --show-commit
###
subadd =! sh -c 'git submodule add git: // github.h | Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ -c 3-
unassumeall =! git прСдполагаСтся | xargs git unassume
acceptall =! git status -s | awk {'print $ 2'} | xargs git ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ
###
bump =! sh -c 'git commit -am \ "Version bump v $ 1 \" && git psuoc && git release $ 1' -
release =! sh -c 'git tag v $ 1 && git pst' -
unrelease =! sh -c 'git tag -d v $ 1 && git pso: v $ 1' -
merged =! sh -c 'git o master && git plom && git bd $ 1 && git rpo' -
aliases =! git config -l | grep псСвдоним | Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ -c 7-
snap =! git stash save 'snapshot: $ (date)' && git stash apply 'stash @ {0}'
bare =! sh -c 'git symbolic-ref HEAD refs / Heads / $ 1 && git rm --cached -r.&& git clean -xfd '-
whois =! sh -c 'git log -i -1 --author = \ "$ 1 \" --pretty = \ "Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:% an <% ae> \"' -
serve = daemon --reuseaddr --verbose --base-path =. --export-all ./.git
###
Π·Π° =! git rev-list --left-only --count $ (git bu) ... Π“ΠžΠ›ΠžΠ’Π
Π²ΠΏΠ΅Ρ€Π΅Π΄ =! git rev-list --right-only --count $ (git bu) ... HEAD
###
ours = "! f () {git checkout --ours $ @ && git add $ @;}; f"
ΠΈΡ… = "! f () {git checkout --theirs $ @ && git add $ @;}; f"
subrepo =! sh -c 'git filter-branch --prune-empty --subdirectory-filter $ 1 master' -
human = name-rev --name-only --refs = refs / Heads / *
[Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ "lfs"]
clean = git-lfs clean -% f
smudge = git-lfs smudge -% f
процСсс = git-lfs Ρ„ΠΈΠ»ΡŒΡ‚Ρ€-процСсс
required = true
  

ΠŸΡ€ΠΈΠΌΠ΅Ρ€.gitignore:

  ### Π£Π·Π΅Π» ###

# Π–ΡƒΡ€Π½Π°Π»Ρ‹
ΠΆΡƒΡ€Π½Π°Π»Ρ‹
npm-debug.log *
пряТа-debug.log *
пряТа-error.log *

# ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ кСша npm
.npm

# ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ зависимостСй
/ node_modules
/ jspm_packages
/ bower_components

# Π€Π°ΠΉΠ» цСлостности пряТи
.yarn-Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ

# ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ кСш eslint
.eslintcache

# Ρ„Π°ΠΉΠ» (Ρ‹) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния dotenv
.env
.env. *

# ΠŸΠΎΡΡ‚Ρ€ΠΎΠΉΠΊΠ° создана
dist /
build /

# БСссСрвСрныС сгСнСрированныС Ρ„Π°ΠΉΠ»Ρ‹
.serverless /

### SublimeText ###
# кСш-Ρ„Π°ΠΉΠ»Ρ‹ для Π²ΠΎΠ·Π²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ тСкста
* .tmlanguage.Ρ‚Π°ΠΉΠ½ΠΈΠΊ
* .tmPreferences.cache
* .stTheme.cache

# Ρ„Π°ΠΉΠ»Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
* .sublime-workspace

# Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…
# Ρ‡Π°ΡΡ‚ΡŒ участников, вСроятно, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SublimeText
# * .sublime-project


### VisualStudioCode ###
.vscode / *
! .vscode / settings.json
! .vscode / tasks.json
! .vscode / launch.json
! .vscode / extensions.json

### Vim ###
*.ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами]

### WebStorm / IntelliJ ###
/.idea
modules.xml
* .ipr
* .iml


### БистСмныС Ρ„Π°ΠΉΠ»Ρ‹ ###
* .DS_Store

# Π€Π°ΠΉΠ»Ρ‹ кэша эскизов Windows
Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ ΠΏΠ°Π»ΡŒΡ†Ρ‹.db
ehthumbs.db
ehthumbs_vista.db

# Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΏΠΊΠΈ
Desktop.ini

# ΠšΠΎΡ€Π·ΠΈΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… рСсурсах
$ RECYCLE.BIN /

# ΠœΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Ρ‹
._ *

# Π€Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΡ€Π½Π΅ Ρ‚ΠΎΠΌΠ°
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
. ΠœΡƒΡΠΎΡ€
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
  

Π½ / ΠΌΠΈΠ½

npm прСдставляСт собой ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт: npmjs.com.

Установка.

npm устанавливаСтся вмСстС с Node.js.

Π’Π°ΠΊΠΆΠ΅ вмСстС с Node.js устанавливаСтся npx, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π±Π΅Π· установки: npx create-react-app my-app.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° установки:

  ΡƒΠ·Π΅Π» - вСрсия | -v
npm --version | -v
  

ОбновлСниС:

  npm i -g npm @ latest
  

Бписок доступных ΠΊΠΎΠΌΠ°Π½Π΄:

  npm help
npm help [имя-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹]
  

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

  npm init

// Π°Π²Ρ‚ΠΎ
npm init --yes | -Ρƒ
  

Установка зависимостСй

  npm install | я

// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ зависимости
npm ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]

// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° всСх зависимостСй
Π½ΠΏΠΌ Π΄ΠΎΠΊΡ‚ΠΎΡ€

// очистка
npm ci
  

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСустановка зависимостСй:

  npm i --force | -f
  

Установка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

  npm i --only = production | --only = prod
  

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости:

  npm i [имя-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]
npm я [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΏΠ°ΠΊΠ΅Ρ‚Π° @ вСрсия]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
npm я Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽ
  

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

  npm i --save-dev | -D [имя-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
npm i -D nodemon
  

ОбновлСниС зависимости:

  npm update | Π²Π²Π΅Ρ€Ρ… [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]
  

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ зависимости:

  // Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ
npm ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ | rm | Π³ [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]

// devDependency
npm r -D [имя-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]
  

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ установка / ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ / ΠΏΠ°ΠΊΠ΅Ρ‚:

  npm i / up / r -g [package-name]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
npm я -g ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ-Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
// использованиС
ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

  npm устарСло
npm ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]
  

Бписок зависимостСй:

  список npm | ls

// Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
npm ls --depth = 0 | - Π³Π»ΡƒΠ±ΠΈΠ½Π° 0

// Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ + Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
npm ls -g --depth 0
  

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅:

  npm просмотр | v [имя-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
npm v Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
npm v Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.описаниС
  

Запуск скрипта / Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

  npm run [скрипт]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
// package.json: "scripts": {"dev": "nodemon server.js"}
npm Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ dev
// запуск скрипта ΠΈΠ»ΠΈ ΡƒΠ·Π΅Π» server.js
npm start
npm stop
  

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

  npm dedupe | ddp
  

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ посторонних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

  npm prune
  

ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ уязвимостСй (ΡƒΠ³Ρ€ΠΎΠ·Π° бСзопасности):

  npm audit
// json
npm audit --json
// простой тСкст
npm audit --parseable
  

АвтоматичСскоС исправлСниС уязвимостСй:

  npm audit fix
  

пряТа

yarn, ΠΊΠ°ΠΊ ΠΈ npm, прСдставляСт собой ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт: yarnpkg.com.

Установка:

  npm i -g yarn
  

Команда Β«yarn dlxΒ» позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π±Π΅Π· установки: yarn dlx create-react-app my-app. Для этого yarn Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ вСрсии: yarn set version berry.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° установки:

  пряТа - вСрсия | -v
  

ОбновлСниС:

  послСдняя вСрсия Π½Π°Π±ΠΎΡ€Π° пряТи
  

Бписок доступных ΠΊΠΎΠΌΠ°Π½Π΄:

  yarn help
yarn help [имя-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹]
  

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

  пряТа инициализация

// Π°Π²Ρ‚ΠΎ
пряТа init --yes | -Ρƒ

// "частный": true Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.json
пряТа init --private | -ΠΏ

// Π°Π²Ρ‚ΠΎ + частный
пряТа init -yp
  

Установка зависимостСй:

  пряТа
// ΠΈΠ»ΠΈ
пряТа ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ

// тихая установка
установка пряТи - тихая | -s

// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°
пряТа --check-files
  

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСустановка зависимостСй:

  yarn install --force
  

Установка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

  Установка пряТи --производство | --prod
  

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости:

  yarn add [package-name]
пряТа Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΏΠ°ΠΊΠ΅Ρ‚Π° @ вСрсия]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
пряТа Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ экспрСсс

// тихая установка
пряТа Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ - Ρ‚ΠΈΡ…ΠΈΠΉ
// ΠΈΠ»ΠΈ
пряТа
  

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ:

  yarn add --dev | -D [имя-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
пряТа Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ -D nodemon
  

ОбновлСниС зависимости:

  ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ пряТи [package-name]
  

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ зависимости:

  yarn remove [package-name]
  

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ установка / ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ / ΠΏΠ°ΠΊΠ΅Ρ‚:

  yarn global add / upgrade / remove [package-name]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
пряТа Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-рСакция
// использованиС
ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  

Бписок зависимостСй:

  список пряТи

// Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
список пряТи --depth = 0 | - Π³Π»ΡƒΠ±ΠΈΠ½Π° 0
  

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅:

  информация ΠΎ пряТи [package-name]
// ΠΈΠ»ΠΈ
пряТа ΠΏΠΎΡ‡Π΅ΠΌΡƒ [Π½Π°Π·Π²Π°Π½ΠΈΠ΅-ΠΏΠ°ΠΊΠ΅Ρ‚Π°]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
информация ΠΎ пряТи Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚
информация ΠΎ пряТС Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ описаниС
пряТа ΠΏΠΎΡ‡Π΅ΠΌΡƒ webpack
  

Запуск скрипта / Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

  yarn [скрипт]
// ΠΈΠ»ΠΈ
пряТа Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ [сцСнарий]

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€
// ΠΏΠ°ΠΊΠ΅Ρ‚.json: "scripts": {"dev": "nodemon server.js"}
пряТа dev
  

package.json

  {
  "имя": "ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅",
  "вСрсия": "1.0.0",
  "description": "МоС классноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅",
  "ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова": [
    "ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ",
    "Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ",
    "Π›ΡƒΡ‡ΡˆΠΈΠΉ"
  ],
  "частный": ΠΏΡ€Π°Π²Π΄Π°,
  "main": "server.js",
  «лицСнзия»: Β«MITΒ»,
  "домашняя страница": "https://my-website.com",
  "Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ": {
    "Ρ‚ΠΈΠΏ": "ΠΌΠ΅Ρ€Π·Π°Π²Π΅Ρ†",
    "url": "https://github.com/user/repo.git"
  },
  "Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ": "github: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ / Ρ€Π΅ΠΏΠΎ",
  "author": {
    "name": "МоС имя",
    "email": "myemail @ example.2.0.4 "
  },
  "scripts": {
    "start": "запуск сцСнариСв Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ",
    "dev": "nodemon server.js"
  }
}
  

  • Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • вСрсия — вСрсия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (см. ВСрсионированиС)
  • описаниС — описаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚?)
  • ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов — ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова (ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ поиск Π² рССстрС npm)
  • private — установка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² true ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΡƒΡŽ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² рССстрС npm
  • главная — основная Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° для функционирования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

  • — ссылка Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²)
  • Π°Π²Ρ‚ΠΎΡ€ — Π°Π²Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²)
  • участников — участники ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (люди, внСсшиС Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚)
  • зависимостСй — зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ)
  • devDependencies — зависимости для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ)
  • скриптов — ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (выполняСмыС сцСнарии, Π·Π°Π΄Π°Ρ‡ΠΈ), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«yarn devΒ» запустит скрипт «сСрвСр nodemon.js Β»

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список доступных ΠΏΠΎΠ»Π΅ΠΉ Ρ„Π°ΠΉΠ»Π° Β«package.jsonΒ»: npm-package.json

Π€Π°ΠΉΠ»Ρ‹ Β«package-lock.jsonΒ» ΠΈ Β«yarn.lockΒ» содСрТат Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, Ρ‡Π΅ΠΌ package.json, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Π΅ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² вмСсто Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° допустимых вСрсий.

ВСрсионированиС

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ†ΠΈΡ„Ρ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1.0.0), Π³Π΄Π΅ пСрвая Ρ†ΠΈΡ„Ρ€Π° — маТорная вСрсия (основная), вторая — минорная вСрсия (второстСпСнная), Ρ‚Ρ€Π΅Ρ‚ΡŒΡ — патчСвая вСрсия (ΠΏΠ°Ρ‚Ρ‡, ΠΏΠ°Ρ‚Ρ‡).Выпуск Π½ΠΎΠ²ΠΎΠΉ вСрсии называСтся Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ.

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих Ρ†ΠΈΡ„Ρ€ согласно ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ сСмантичСского вСрсионирования (semver) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • major — внСсСниС нСсовмСстимых с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсиониСй ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
  • minor — новая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, совмСстимая с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсиСй
  • patch — исправлСниС ошибок, Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ вСрсий ΠΈΠ»ΠΈ допустимыС Ρ€Π΅Π»ΠΈΠ·Ρ‹ стратСгии с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²):

  • * — любая вСрсия (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ пустой строкС)
  • <1.1.0.0 - ΠΌΠΈΠ½ΠΎΡ€Π½Ρ‹Π΅ ΠΈ ΠΏΠ°Ρ‚Ρ‡Π΅Π²Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ (> = 1.0.0 <2.0.0)
  • ~ .1.0.0 — Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°Ρ‚Ρ‡Π΅Π²Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ (> = 1.0.0 <1.1.0)

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния ΠΎ сСмвСр: ΡƒΠ·Π΅Π»-сСмвСр.

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

.

Git — ΠΊΠ½ΠΈΠ³Π°

2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (2014)

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ

Вся ΠΊΠ½ΠΈΠ³Π° Pro Git, написанная Π‘ΠΊΠΎΡ‚Ρ‚ΠΎΠΌ Π§Π°ΠΊΠΎΠ½ΠΎΠΌ ΠΈ Π‘Π΅Π½ΠΎΠΌ Π¨Ρ‚Ρ€Π°ΡƒΠ±ΠΎΠΌ ΠΈ опубликованная Apress, доступна здСсь. ВсС содСрТимоС находится ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Creative Commons Attribution Non Commercial Share Alike 3.0. ΠŸΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ вСрсии ΠΊΠ½ΠΈΠ³ΠΈ доступны Π½Π° Amazon.com.>

    1. 1.1
      О систСмС контроля вСрсий
    2. 1.2
      ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Git
    3. 1.3
      ΠžΡΠ½ΠΎΠ²Ρ‹ Git
    4. 1.4
      Командная строка
    5. 1.5
      Установка Git
    6. 1.6
      ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка Git
    7. 1.7
      Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ?
    8. 1,8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 2.1
      Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Git-рСпозитория
    2. 2.2
      Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    3. 2.3
      ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
    4. 2.4
      ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹
    5. 2,5
      Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ рСпозиториями
    6. 2,6
      Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ
    7. 2,7
      ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ Π² Git
    8. 2,8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 3.1
      О Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡƒΡ… словах
    2. 3.2

.

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

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