πŸ“œ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ свой Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git Clean

Как ΡƒΠ΄Π°Π»ΠΈΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· рСпозитория GIT

by itisgood

Когда ваш Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ заполняСтся Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, самоС врСмя навСсти порядок.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Git Π½Π΅ отслСТиваСт (Π½ΠΎ Π½Π΅ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Git ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ‘.gitignore’), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git clean

Π’ΠΎΡ‚ ΠΈ всС!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Git ΡƒΠ΄Π°Π»ΠΈΡ‚ всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΈ вашС дисковоС пространство снова освободится.

Π­Ρ‚ΠΎ лишь ΠΎΠ΄Π½Π° Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ выполняСт ΠΊΠΎΠΌΠ°Π½Π΄Π° git clean.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ мСста!

Git clean

Команда git clean являСтся ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Git – систСмы контроля вСрсий.

Команда git clean, запущСнная Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²/Ρ„Π»Π°Π³ΠΎΠ², рСкурсивно ΡƒΠ΄Π°Π»ΠΈΡ‚ всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Git Π½Π΅ отслСТиваСт, Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ Ρ„Π°ΠΉΠ»Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ‘.gitignore’.

БущСствуСт нСсколько Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²/Ρ„Π»Π°Π³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с git clean.

Они ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  • -n [ΠΈΠ»ΠΈ] –dry-run : НС ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ/ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано. ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π»Π°Π³ для прСдотвращСния Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ удалСния Ρ„Π°ΠΉΠ»ΠΎΠ².
  • -d : Если ΠΏΡƒΡ‚ΡŒ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Git Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ рСкурсивно ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· любого нСотслСТиваСмого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π­Ρ‚Π° опция ΠΏΠΎΠ»Π΅Π·Π½Π°, Ссли Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ нСотслСТиваСмом Ρ„Π°ΠΉΠ»Π΅, Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹.
  • -i [ΠΈΠ»ΠΈ] –interactive : ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ – ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚ΡŒ ΠΈΡ….
  • -f [ΠΈΠ»ΠΈ] –force : Π’ Git Π΅ΡΡ‚ΡŒ конфигурационная пСрСмСнная clean.requireForce, Ссли ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π΅ Π² false, Git откаТСтся ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ. Π€Π»Π°Π³ -f ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для пСрСопрСдСлСния этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
  • -q [ΠΈΠ»ΠΈ] –quiet : НС Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΊΡ€ΠΎΠΌΠ΅ ошибок.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» ‘README.md’ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ вСрсий Git’Π°, Π½ΠΎ Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»Π° ‘untracked-file’ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ‘untracked-dir’.

$ ls -l1
total 8
-rw-rw-r-- 1 pratham pratham   55 Mar  2 13:56 README.md
drwxrwxr-x 2 pratham pratham 4096 Mar  2 13:57 untracked-dir
-rw-rw-r-- 1 pratham pratham    0 Mar  2 13:57 untracked-file

$ git clean -n
Would remove untracked-file

$ git clean -dn
Would remove untracked-dir/
Would remove untracked-file

$ git clean -f
Removing untracked-file

# touch 'untracked-file' after git deleted it

$ git clean -df
Removing untracked-dir/
Removing untracked-file

Π’ ΠΌΠΎΠ΅ΠΌ Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ элСмСнта.

Π£ мСня Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° ‘README.md’ ΠΈ ‘untracked-file’ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ‘untracked-dir’.

Из этих Ρ‚Ρ€Π΅Ρ… элСмСнтов Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ‘README.md’ отслСТиваСтся Git’ΠΎΠΌ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° я Π³ΠΎΠ²ΠΎΡ€ΡŽ git clean ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π½Ρ‹ΠΉ запуск Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ², я Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ» ‘untracked-file’, Π½ΠΎ Π½Π΅ дирСктория.

Но ΠΊΠΎΠ³Π΄Π° я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ„Π»Π°Π³ -d вмСстС с Ρ„Π»Π°Π³ΠΎΠΌ -n, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ я Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ Git ΡƒΠ΄Π°Π»ΠΈΡ‚ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (ΠΈ Π΅Π³ΠΎ содСрТимоС, Ссли ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ).

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ использованиСм Ρ„Π»Π°Π³Π° -f вмСсто Ρ„Π»Π°Π³Π° -n.

Запуск git clean -f ΡƒΠ΄Π°Π»ΠΈΠ» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ» ‘untracked-file’. (Π― Ρ‚Π°ΠΊΠΆΠ΅ создал Π΅Π³ΠΎ снова с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ touch Ρ€Π°Π΄ΠΈ этого руководства).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ git clean -df, Git Π±ΡƒΠ΄Π΅Ρ‚ рСкурсивно ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Π° нСотслСТиваСмых элСмСнта, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„Π°ΠΉΠ» ‘untracked-file’ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ‘untracked-dir’.

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

Π’ Git Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° git clean, которая удаляСт всС нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ излишнС Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ мСсто Π½Π° вашСм дискС.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git clean для удалСния ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… элСмСнтов.

см. Ρ‚Π°ΠΊΠΆΠ΅:

 

 

You may also like

Leave a Comment