CINXE.COM

Git - Vzdrževanje in obnovitev podatkov

<!DOCTYPE html> <html lang="sl"> <head> <meta charset='utf-8'> <meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Git - Vzdrževanje in obnovitev podatkov</title> <link href="/favicon.ico" rel='shortcut icon' type='image/x-icon'> <link rel="stylesheet" href="/application.min.css"> <script src="/js/modernizr.js"></script> <script src="/js/modernize.js"></script> </head> <body id="documentation"> <div class="inner"> <header> <a href="/"><img src="/images/logo@2x.png" width="110" height="46" alt="Git" /></a> <span id="tagline"></span> <script type="text/javascript"> const taglines = [ "fast-version-control", "everything-is-local", "distributed-even-if-your-workflow-isnt", "local-branching-on-the-cheap", "distributed-is-the-new-centralized" ]; var tagline = taglines[Math.floor(Math.random() * taglines.length)]; document.getElementById('tagline').innerHTML = '--' + tagline; </script> <form id="search" action="/search/results"> <input id="search-text" name="search" placeholder="Type / to search entire site…" autocomplete="off" type="text" /> </form> <div id="search-results"></div> </header> </div> <div class="inner"> <div id="content-wrapper"> <div tabindex="1" class="sidebar-btn"></div> <aside class="sidebar" id="sidebar"> <nav> <ul> <li> <a href="/about">About</a> <ul> </ul> </li> <li> <a href="/doc" class="active">Documentation</a> <ul class="expanded"> <li> <a href="/docs">Reference</a> </li> <li> <a href="/book" class="active">Book</a> </li> <li> <a href="/videos">Videos</a> </li> <li> <a href="/doc/ext">External Links</a> </li> </ul> </li> <li> <a href="/downloads">Downloads</a> <ul > <li> <a href="/downloads/guis">GUI Clients</a> </li> <li> <a href="/downloads/logos">Logos</a> </li> </ul> </li> <li> <a href="/community">Community</a> </li> </ul> <hr class="sidebar"> <p> This book is available in <a href="/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery">English</a>. </p> <p> Full translation available in <table> <tr><td><a href="/book/az/v2/Git%e2%80%99in-Daxili-%c4%b0%c5%9fl%c9%99ri-Maintenance-v%c9%99-M%c9%99lumatlar%c4%b1n-B%c9%99rpas%c4%b1">azərbaycan dili</a>,</td></tr> <tr><td><a href="/book/bg">български език</a>,</td></tr> <tr><td><a href="/book/de/v2/Git-Interna-Wartung-und-Datenwiederherstellung">Deutsch</a>,</td></tr> <tr><td><a href="/book/es/v2/Los-entresijos-internos-de-Git-Mantenimiento-y-recuperaci%c3%b3n-de-datos">Español</a>,</td></tr> <tr><td><a href="/book/fr/v2/Les-tripes-de-Git-Maintenance-et-r%c3%a9cup%c3%a9ration-de-donn%c3%a9es">Français</a>,</td></tr> <tr><td><a href="/book/gr">Ελληνικά</a>,</td></tr> <tr><td><a href="/book/ja/v2/Git%e3%81%ae%e5%86%85%e5%81%b4-%e3%83%a1%e3%83%b3%e3%83%86%e3%83%8a%e3%83%b3%e3%82%b9%e3%81%a8%e3%83%87%e3%83%bc%e3%82%bf%e3%83%aa%e3%82%ab%e3%83%90%e3%83%aa">日本語</a>,</td></tr> <tr><td><a href="/book/ko/v2/Git%ec%9d%98-%eb%82%b4%eb%b6%80-%ec%9a%b4%ec%98%81-%eb%b0%8f-%eb%8d%b0%ec%9d%b4%ed%84%b0-%eb%b3%b5%ea%b5%ac">한국어</a>,</td></tr> <tr><td><a href="/book/nl/v2/Git-Binnenwerk-Onderhoud-en-gegevensherstel">Nederlands</a>,</td></tr> <tr><td><a href="/book/ru/v2/Git-%d0%b8%d0%b7%d0%bd%d1%83%d1%82%d1%80%d0%b8-%d0%9e%d0%b1%d1%81%d0%bb%d1%83%d0%b6%d0%b8%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%80%d0%b5%d0%bf%d0%be%d0%b7%d0%b8%d1%82%d0%be%d1%80%d0%b8%d1%8f-%d0%b8-%d0%b2%d0%be%d1%81%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85">Русский</a>,</td></tr> <tr><td><a href="/book/sl/v2/Notranjost-Gita-Vzdr%c5%beevanje-in-obnovitev-podatkov">Slovenščina</a>,</td></tr> <tr><td><a href="/book/tl/v2/Mga-Panloob-ng-GIT-Pagpapanatili-At-Pagbalik-ng-Datos">Tagalog</a>,</td></tr> <tr><td><a href="/book/uk/v2/Git-%d0%b7%d1%81%d0%b5%d1%80%d0%b5%d0%b4%d0%b8%d0%bd%d0%b8-%d0%a1%d1%83%d0%bf%d1%80%d0%be%d0%b2%d0%be%d0%b4%d0%b6%d0%b5%d0%bd%d0%bd%d1%8f-%d1%82%d0%b0-%d0%b2%d1%96%d0%b4%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%bd%d1%8f-%d0%b4%d0%b0%d0%bd%d0%b8%d1%85">Українська</a></td></tr> <tr><td><a href="/book/zh/v2/Git-%e5%86%85%e9%83%a8%e5%8e%9f%e7%90%86-%e7%bb%b4%e6%8a%a4%e4%b8%8e%e6%95%b0%e6%8d%ae%e6%81%a2%e5%a4%8d">简体中文</a>,</td></tr> </table> </p> <p> Partial translations available in <table> <tr><td><a href="/book/cs/v2/Git-Internals-Spr%c3%a1va-a-obnova-dat">Čeština</a>,</td></tr> <tr><td><a href="/book/mk/v2/%d0%92%d0%bd%d0%b0%d1%82%d1%80%d0%b5%d1%88%d0%bd%d0%be%d1%81%d1%82%d0%b0-%d0%bd%d0%b0-Git-Maintenance-and-Data-Recovery">Македонски</a>,</td></tr> <tr><td><a href="/book/pl/v2/Mechanizmy-wewn%c4%99trzne-w-Git-Konserwacja-i-odzyskiwanie-danych">Polski</a>,</td></tr> <tr><td><a href="/book/sr/v2/%d0%93%d0%b8%d1%82-%d0%b8%d0%b7%d0%bd%d1%83%d1%82%d1%80%d0%b0-%d0%9e%d0%b4%d1%80%d0%b6%d0%b0%d0%b2%d0%b0%d1%9a%d0%b5-%d0%b8-%d0%be%d0%bf%d0%be%d1%80%d0%b0%d0%b2%d0%b0%d0%ba-%d0%bf%d0%be%d0%b4%d0%b0%d1%82%d0%b0%d0%ba">Српски</a>,</td></tr> <tr><td><a href="/book/uz/v2/Git-Internals-Maintenance-and-Data-Recovery">Ўзбекча</a>,</td></tr> <tr><td><a href="/book/zh-tw/v2/Git-Internals-Maintenance-and-Data-Recovery">繁體中文</a>,</td></tr> </table> </p> <p> Translations started for <table> <tr><td><a href="/book/be/v2/Git-Internals-Maintenance-and-Data-Recovery">Беларуская</a>,</td></tr> <tr><td><a href="/book/fa/v2/Git-Internals-Maintenance-and-Data-Recovery" dir="rtl">فارسی</a>,</td></tr> <tr><td><a href="/book/id/v2/Git-Internals-Maintenance-and-Data-Recovery">Indonesian</a>,</td></tr> <tr><td><a href="/book/it/v2/Git-Internals-Maintenance-and-Data-Recovery">Italiano</a>,</td></tr> <tr><td><a href="/book/ms/v2/Git-Internals-Maintenance-and-Data-Recovery">Bahasa Melayu</a>,</td></tr> <tr><td><a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Maintenance-and-Data-Recovery">Português (Brasil)</a>,</td></tr> <tr><td><a href="/book/pt-pt/v2/Internos-do-Git-Maintenance-and-Data-Recovery">Português (Portugal)</a>,</td></tr> <tr><td><a href="/book/sv/v2/Git-Internals-Maintenance-and-Data-Recovery">Svenska</a>,</td></tr> <tr><td><a href="/book/tr/v2/Dahili-Git-%c3%96geleri-Bak%c4%b1m-ve-Veri-Kurtarma">Türkçe</a>.</td></tr> </table> </p> <hr class="sidebar"/> <p> The source of this book is <a href="https://github.com/progit/progit2-sl">hosted on GitHub.</a></br> Patches, suggestions and comments are welcome. </p> </nav> </aside> <div id="content"> <div id="book-chapters"> <a class="dropdown-trigger" id="book-chapters-trigger" data-panel-id="chapters-dropdown" href="#">Chapters ▾</a> <div class='dropdown-panel' id='chapters-dropdown'> <div class='three-column'> <div class="column-left"> <ol class='book-toc'> <li class='chapter'> <h2>1. <a href="/book/sl/v2/Za%c4%8detek-O-nadzoru-razli%c4%8dic">Začetek</a></h2> <ol> <li> 1.1 <a href="/book/sl/v2/Za%c4%8detek-O-nadzoru-razli%c4%8dic">O nadzoru različic</a> </li> <li> 1.2 <a href="/book/sl/v2/Za%c4%8detek-Kratka-zgodovina-Gita">Kratka zgodovina Gita</a> </li> <li> 1.3 <a href="/book/sl/v2/Za%c4%8detek-Kaj-je-Git%3F">Kaj je Git?</a> </li> <li> 1.4 <a href="/book/sl/v2/Za%c4%8detek-Ukazna-vrstica">Ukazna vrstica</a> </li> <li> 1.5 <a href="/book/sl/v2/Za%c4%8detek-Namestitev-Gita">Namestitev Gita</a> </li> <li> 1.6 <a href="/book/sl/v2/Za%c4%8detek-Prva-nastavitev-Gita">Prva nastavitev Gita</a> </li> <li> 1.7 <a href="/book/sl/v2/Za%c4%8detek-Pridobivanje-pomo%c4%8di">Pridobivanje pomoči</a> </li> <li> 1.8 <a href="/book/sl/v2/Za%c4%8detek-Povzetek">Povzetek</a> </li> </ol> </li> <li class='chapter'> <h2>2. <a href="/book/sl/v2/Osnove-Git-Pridobivanje-repozitorija-Git">Osnove Git</a></h2> <ol> <li> 2.1 <a href="/book/sl/v2/Osnove-Git-Pridobivanje-repozitorija-Git">Pridobivanje repozitorija Git</a> </li> <li> 2.2 <a href="/book/sl/v2/Osnove-Git-Snemanje-sprememb-v-repozitorij">Snemanje sprememb v repozitorij</a> </li> <li> 2.3 <a href="/book/sl/v2/Osnove-Git-Pregled-zgodovine-potrditev">Pregled zgodovine potrditev</a> </li> <li> 2.4 <a href="/book/sl/v2/Osnove-Git-Razveljavljanje-stvari">Razveljavljanje stvari</a> </li> <li> 2.5 <a href="/book/sl/v2/Osnove-Git-Delo-z-daljavami">Delo z daljavami</a> </li> <li> 2.6 <a href="/book/sl/v2/Osnove-Git-Ozna%c4%8devanje">Označevanje</a> </li> <li> 2.7 <a href="/book/sl/v2/Osnove-Git-Aliasi-Git">Aliasi Git</a> </li> <li> 2.8 <a href="/book/sl/v2/Osnove-Git-Povzetek">Povzetek</a> </li> </ol> </li> <li class='chapter'> <h2>3. <a href="/book/sl/v2/Veje-Git-Veje-na-kratko">Veje Git</a></h2> <ol> <li> 3.1 <a href="/book/sl/v2/Veje-Git-Veje-na-kratko">Veje na kratko</a> </li> <li> 3.2 <a href="/book/sl/v2/Veje-Git-Osnove-vej-in-zdru%c5%beevanja">Osnove vej in združevanja</a> </li> <li> 3.3 <a href="/book/sl/v2/Veje-Git-Upravljanje-vej">Upravljanje vej</a> </li> <li> 3.4 <a href="/book/sl/v2/Veje-Git-Poteki-dela-z-vejami">Poteki dela z vejami</a> </li> <li> 3.5 <a href="/book/sl/v2/Veje-Git-Oddaljene-veje">Oddaljene veje</a> </li> <li> 3.6 <a href="/book/sl/v2/Veje-Git-Ponovno-baziranje">Ponovno baziranje</a> </li> <li> 3.7 <a href="/book/sl/v2/Veje-Git-Povzetek">Povzetek</a> </li> </ol> </li> <li class='chapter'> <h2>4. <a href="/book/sl/v2/Git-na-stre%c5%beniku-Protokoli">Git na strežniku</a></h2> <ol> <li> 4.1 <a href="/book/sl/v2/Git-na-stre%c5%beniku-Protokoli">Protokoli</a> </li> <li> 4.2 <a href="/book/sl/v2/Git-na-stre%c5%beniku-Pridobitev-Gita-na-stre%c5%beniku">Pridobitev Gita na strežniku</a> </li> <li> 4.3 <a href="/book/sl/v2/Git-na-stre%c5%beniku-Generiranje-va%c5%a1ih-javnih-klju%c4%8dev-SSH">Generiranje vaših javnih ključev SSH</a> </li> <li> 4.4 <a href="/book/sl/v2/Git-na-stre%c5%beniku-Nastavitev-stre%c5%benika">Nastavitev strežnika</a> </li> <li> 4.5 <a href="/book/sl/v2/Git-na-stre%c5%beniku-Prikriti-proces-Git">Prikriti proces Git</a> </li> <li> 4.6 <a href="/book/sl/v2/Git-na-stre%c5%beniku-Pametni-HTTP">Pametni HTTP</a> </li> <li> 4.7 <a href="/book/sl/v2/Git-na-stre%c5%beniku-GitWeb">GitWeb</a> </li> <li> 4.8 <a href="/book/sl/v2/Git-na-stre%c5%beniku-GitLab">GitLab</a> </li> <li> 4.9 <a href="/book/sl/v2/Git-na-stre%c5%beniku-Mo%c5%benosti-gostovanja-pri-tretjih-ponudnikih">Možnosti gostovanja pri tretjih ponudnikih</a> </li> <li> 4.10 <a href="/book/sl/v2/Git-na-stre%c5%beniku-Povzetek">Povzetek</a> </li> </ol> </li> <li class='chapter'> <h2>5. <a href="/book/sl/v2/Porazdeljeni-Git-Porazdeljeni-poteki-dela">Porazdeljeni Git</a></h2> <ol> <li> 5.1 <a href="/book/sl/v2/Porazdeljeni-Git-Porazdeljeni-poteki-dela">Porazdeljeni poteki dela</a> </li> <li> 5.2 <a href="/book/sl/v2/Porazdeljeni-Git-Prispevek-k-projektu">Prispevek k projektu</a> </li> <li> 5.3 <a href="/book/sl/v2/Porazdeljeni-Git-Vzdr%c5%beevanje-projekta">Vzdrževanje projekta</a> </li> <li> 5.4 <a href="/book/sl/v2/Porazdeljeni-Git-Povzetek">Povzetek</a> </li> </ol> </li> </ol> </div> <div class='column-middle'> <ol class='book-toc'> <li class='chapter'> <h2>6. <a href="/book/sl/v2/GitHub-Namestitev-in-konfiguracija-ra%c4%8duna">GitHub</a></h2> <ol> <li> 6.1 <a href="/book/sl/v2/GitHub-Namestitev-in-konfiguracija-ra%c4%8duna">Namestitev in konfiguracija računa</a> </li> <li> 6.2 <a href="/book/sl/v2/GitHub-Prispevek-k-projektu">Prispevek k projektu</a> </li> <li> 6.3 <a href="/book/sl/v2/GitHub-Vzdr%c5%beevanje-projekta">Vzdrževanje projekta</a> </li> <li> 6.4 <a href="/book/sl/v2/GitHub-Upravljanje-organizacije">Upravljanje organizacije</a> </li> <li> 6.5 <a href="/book/sl/v2/GitHub-Skriptni-GitHub">Skriptni GitHub</a> </li> <li> 6.6 <a href="/book/sl/v2/GitHub-Povzetek">Povzetek</a> </li> </ol> </li> <li class='chapter'> <h2>7. <a href="/book/sl/v2/Orodja-Git-Izbira-revizije">Orodja Git</a></h2> <ol> <li> 7.1 <a href="/book/sl/v2/Orodja-Git-Izbira-revizije">Izbira revizije</a> </li> <li> 7.2 <a href="/book/sl/v2/Orodja-Git-Interaktivno-pripravljanje">Interaktivno pripravljanje</a> </li> <li> 7.3 <a href="/book/sl/v2/Orodja-Git-Shranjevanje-na-varno-angl-stashing-in-%c4%8di%c5%a1%c4%8denje">Shranjevanje na varno (angl. stashing) in čiščenje</a> </li> <li> 7.4 <a href="/book/sl/v2/Orodja-Git-Podpisovanje-va%c5%a1ega-dela">Podpisovanje vašega dela</a> </li> <li> 7.5 <a href="/book/sl/v2/Orodja-Git-Iskanje">Iskanje</a> </li> <li> 7.6 <a href="/book/sl/v2/Orodja-Git-Prepisovanje-zgodovine">Prepisovanje zgodovine</a> </li> <li> 7.7 <a href="/book/sl/v2/Orodja-Git-Demistifikacija-ponastavitve">Demistifikacija ponastavitve</a> </li> <li> 7.8 <a href="/book/sl/v2/Orodja-Git-Napredno-zdru%c5%beevanje">Napredno združevanje</a> </li> <li> 7.9 <a href="/book/sl/v2/Orodja-Git-Rerere">Rerere</a> </li> <li> 7.10 <a href="/book/sl/v2/Orodja-Git-Razhro%c5%a1%c4%8devanje-z-Gitom">Razhroščevanje z Gitom</a> </li> <li> 7.11 <a href="/book/sl/v2/Orodja-Git-Podmoduli">Podmoduli</a> </li> <li> 7.12 <a href="/book/sl/v2/Orodja-Git-Povezovanje-v-pakete">Povezovanje v pakete</a> </li> <li> 7.13 <a href="/book/sl/v2/Orodja-Git-Zamenjava">Zamenjava</a> </li> <li> 7.14 <a href="/book/sl/v2/Orodja-Git-Shramba-poverilnic">Shramba poverilnic</a> </li> <li> 7.15 <a href="/book/sl/v2/Orodja-Git-Povzetek">Povzetek</a> </li> </ol> </li> <li class='chapter'> <h2>8. <a href="/book/sl/v2/Prilagoditev-Gita-Konfiguracija-Git">Prilagoditev Gita</a></h2> <ol> <li> 8.1 <a href="/book/sl/v2/Prilagoditev-Gita-Konfiguracija-Git">Konfiguracija Git</a> </li> <li> 8.2 <a href="/book/sl/v2/Prilagoditev-Gita-Atributi-Git">Atributi Git</a> </li> <li> 8.3 <a href="/book/sl/v2/Prilagoditev-Gita-Kljuke-Git">Kljuke Git</a> </li> <li> 8.4 <a href="/book/sl/v2/Prilagoditev-Gita-Primer-pravilnika,-ki-ga-uveljavlja-Git">Primer pravilnika, ki ga uveljavlja Git</a> </li> <li> 8.5 <a href="/book/sl/v2/Prilagoditev-Gita-Povzetek">Povzetek</a> </li> </ol> </li> <li class='chapter'> <h2>9. <a href="/book/sl/v2/Git-in-ostali-sistemi-Git-kot-odjemalec">Git in ostali sistemi</a></h2> <ol> <li> 9.1 <a href="/book/sl/v2/Git-in-ostali-sistemi-Git-kot-odjemalec">Git kot odjemalec</a> </li> <li> 9.2 <a href="/book/sl/v2/Git-in-ostali-sistemi-Migracija-na-Git">Migracija na Git</a> </li> <li> 9.3 <a href="/book/sl/v2/Git-in-ostali-sistemi-Povzetek">Povzetek</a> </li> </ol> </li> <li class='chapter'> <h2>10. <a href="/book/sl/v2/Notranjost-Gita-Napeljava-in-keramika">Notranjost Gita</a></h2> <ol> <li> 10.1 <a href="/book/sl/v2/Notranjost-Gita-Napeljava-in-keramika">Napeljava in keramika</a> </li> <li> 10.2 <a href="/book/sl/v2/Notranjost-Gita-Objekti-Git">Objekti Git</a> </li> <li> 10.3 <a href="/book/sl/v2/Notranjost-Gita-Reference-Git">Reference Git</a> </li> <li> 10.4 <a href="/book/sl/v2/Notranjost-Gita-Packfiles-datoteke-zmanj%c5%a1anih-podatkov">Packfiles (datoteke zmanjšanih podatkov)</a> </li> <li> 10.5 <a href="/book/sl/v2/Notranjost-Gita-Refspec">Refspec</a> </li> <li> 10.6 <a href="/book/sl/v2/Notranjost-Gita-Protokoli-prenosa">Protokoli prenosa</a> </li> <li> 10.7 <a href="/book/sl/v2/Notranjost-Gita-Vzdr%c5%beevanje-in-obnovitev-podatkov" class="active">Vzdrževanje in obnovitev podatkov</a> </li> <li> 10.8 <a href="/book/sl/v2/Notranjost-Gita-Spremenljivke-okolja">Spremenljivke okolja</a> </li> <li> 10.9 <a href="/book/sl/v2/Notranjost-Gita-Povzetek">Povzetek</a> </li> </ol> </li> </ol> </div> <div class='column-right'> <ol class='book-toc'> <li class='chapter'> <h2>A1. <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Grafi%c4%8dni-vmesniki">Dodatek A: Git v drugih okoljih</a></h2> <ol> <li> A1.1 <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Grafi%c4%8dni-vmesniki">Grafični vmesniki</a> </li> <li> A1.2 <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Git-v-Visual-Studio">Git v Visual Studio</a> </li> <li> A1.3 <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Git-v-Visual-Studio-Code">Git v Visual Studio Code</a> </li> <li> A1.4 <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Git-v-IntelliJ-/-PyCharm-/-WebStorm-/-PhpStorm-/-RubyMine">Git v IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine</a> </li> <li> A1.5 <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Git-v-Sublime-Text">Git v Sublime Text</a> </li> <li> A1.6 <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Git-v-Bashu">Git v Bashu</a> </li> <li> A1.7 <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Git-v-Zsh">Git v Zsh</a> </li> <li> A1.8 <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Git-v-Powershellu">Git v Powershellu</a> </li> <li> A1.9 <a href="/book/sl/v2/Dodatek-A:-Git-v-drugih-okoljih-Povzetek">Povzetek</a> </li> </ol> </li> <li class='chapter'> <h2>A2. <a href="/book/sl/v2/Dodatek-B:-Vdelava-Gita-v-va%c5%a1o-aplikacijo-Git-v-ukazni-vrstici">Dodatek B: Vdelava Gita v vašo aplikacijo</a></h2> <ol> <li> A2.1 <a href="/book/sl/v2/Dodatek-B:-Vdelava-Gita-v-va%c5%a1o-aplikacijo-Git-v-ukazni-vrstici">Git v ukazni vrstici</a> </li> <li> A2.2 <a href="/book/sl/v2/Dodatek-B:-Vdelava-Gita-v-va%c5%a1o-aplikacijo-Libgit2">Libgit2</a> </li> <li> A2.3 <a href="/book/sl/v2/Dodatek-B:-Vdelava-Gita-v-va%c5%a1o-aplikacijo-JGit">JGit</a> </li> <li> A2.4 <a href="/book/sl/v2/Dodatek-B:-Vdelava-Gita-v-va%c5%a1o-aplikacijo-go-git">go-git</a> </li> <li> A2.5 <a href="/book/sl/v2/Dodatek-B:-Vdelava-Gita-v-va%c5%a1o-aplikacijo-Dulwich">Dulwich</a> </li> </ol> </li> <li class='chapter'> <h2>A3. <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Nastavitev-in-konfiguracija">Dodatek C: Ukazi Git</a></h2> <ol> <li> A3.1 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Nastavitev-in-konfiguracija">Nastavitev in konfiguracija</a> </li> <li> A3.2 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Pridobivanje-in-ustvarjanje-projektov">Pridobivanje in ustvarjanje projektov</a> </li> <li> A3.3 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Osnove-posnetkov">Osnove posnetkov</a> </li> <li> A3.4 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Veje-in-zdru%c5%beevanje">Veje in združevanje</a> </li> <li> A3.5 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Deljenje-in-posodabljanje-projektov">Deljenje in posodabljanje projektov</a> </li> <li> A3.6 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Pregled-in-primerjava">Pregled in primerjava</a> </li> <li> A3.7 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Razhro%c5%a1%c4%8devanje">Razhroščevanje</a> </li> <li> A3.8 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Popravljanje">Popravljanje</a> </li> <li> A3.9 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-E-po%c5%a1ta">E-pošta</a> </li> <li> A3.10 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Zunanji-sistemi">Zunanji sistemi</a> </li> <li> A3.11 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Administracija">Administracija</a> </li> <li> A3.12 <a href="/book/sl/v2/Dodatek-C:-Ukazi-Git-Orodja-za-sisteme-napeljave">Orodja za sisteme napeljave</a> </li> </ol> </li> </ol> </div> </div> </div> <span class="light" id="edition"> 2nd Edition </span> </div> <div id="main" data-pagefind-filter="category:book" data-pagefind-meta="category:Book" data-pagefind-weight="0.05" data-pagefind-body class="book edition2"> <h1>10.7 Notranjost Gita - Vzdrževanje in obnovitev podatkov</h1> <div> <h2 id="_vzdrževanje_in_obnovitev_podatkov">Vzdrževanje in obnovitev podatkov</h2> <div class="paragraph"> <p>Včasih se lahko pojavi potreba po čiščenju repozitorija — ga narediti bolj kompaktnega, očistiti uvoženi repozitorij ali pa obnoviti izgubljeno delo. Ta razdelek bo pokril nekatere od teh scenarijev.</p> </div> <div class="sect3"> <h3 id="_git_gc">Vzdrževanje</h3> <div class="paragraph"> <p>Včasih Git samodejno zažene ukaz, imenovan »auto gc«. Večino časa ta ukaz ne naredi ničesar. Vendar pa, če je preveč šibkih objektov (objektov, ki niso v paketni datoteki) ali preveč paketnih datotek, Git zažene pravi ukaz <code>git gc</code>. »gc« pomeni sproščanje pomnilnika (angl. <em>garbage collect</em>), ukaz pa naredi nekaj stvari: zbere vse šibke objekte in jih postavi v paketne datoteke, konsolidira paketne datoteke v eno veliko paketno datoteko in odstrani objekte, do katerih ni mogoče dostopati iz nobene potrditve in so stari nekaj mesecev.</p> </div> <div class="paragraph"> <p>Ukaz <code>auto gc</code> lahko zaženete ročno na naslednji način:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git gc --auto</code></pre> </div> </div> <div class="paragraph"> <p>Ponovno, to običajno ne naredi ničesar. Morate imeti okoli 7000 šibkih objektov ali več kot 50 paketnih datotek za zagon pravega ukaza <code>gc</code>. Te omejitve lahko spremenite z nastavitvami konfiguracije <code>gc.auto</code> in <code>gc.autopacklimit</code>.</p> </div> <div class="paragraph"> <p>Druga stvar, ki jo bo <code>gc</code> naredil, je združiti vaše reference v eno datoteko. Predpostavimo, da vaš repozitorij vsebuje naslednje veje in oznake:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ find .git/refs -type f .git/refs/heads/experiment .git/refs/heads/master .git/refs/tags/v1.0 .git/refs/tags/v1.1</code></pre> </div> </div> <div class="paragraph"> <p>Če zaženete <code>git gc</code>, teh datotek več ne boste imeli v mapi <code>refs</code>. Git jih bo zaradi učinkovitosti premaknil v datoteko imenovano <code>.git/packed-refs</code>, ki bo videti takole:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ cat .git/packed-refs # pack-refs with: peeled fully-peeled cac0cab538b970a37ea1e769cbbde608743bc96d refs/heads/experiment ab1afef80fac8e34258ff41fc1b867c702daa24b refs/heads/master cac0cab538b970a37ea1e769cbbde608743bc96d refs/tags/v1.0 9585191f37f7b0fb9444f35a9bf50de191beadc2 refs/tags/v1.1 ^1a410efbd13591db07496601ebc7a059dd55cfe9</code></pre> </div> </div> <div class="paragraph"> <p>Če posodobite referenco, Git tega datotečnega sistema ne spreminja, ampak namesto tega ustvari novo datoteko v mapi <code>refs/heads</code>. Za ustrezni SHA-1 glede na dano referenco, Git najprej preveri, če obstaja ta referenca v mapi <code>refs</code>, nato pa, kot rezervno možnost, preveri datoteko <code>packed-refs</code>. Če torej ne morete najti reference v mapi <code>refs</code>, se verjetno nahaja v vaši datoteki <code>packed-refs</code>.</p> </div> <div class="paragraph"> <p>Pomembno je opaziti zadnjo vrstico datoteke, ki se začne s <code>^</code>. To pomeni, da je oznaka nad to vrstico opisna oznaka in da je ta vrstica potrditev, na katero ta oznaka kaže.</p> </div> </div> <div class="sect3"> <h3 id="_data_recovery">Obnovitev podatkov</h3> <div class="paragraph"> <p>V neki točki vašega potovanja z Gitom se vam lahko zgodi, da izgubite potrditev. Navadno se to zgodi, ko prisilno izbrišete vejo, ki ima delo na sebi, in se izkaže, da ste vejo vseeno želeli obdržati, ali pa trdo ponastavite vejo, s čimer opustite potrditve, od katerih ste nekaj želeli. Kaj storiti, če se to zgodi in kako lahko dobite nazaj svoje potrditve?</p> </div> <div class="paragraph"> <p>Tu je primer, ki trdo ponastavi vejo <code>master</code> v vašem preskusnem repozitoriju na starejšo potrditev in nato obnovi izgubljene potrditve. Najprej poglejmo, kje je vaš repozitorij v tem trenutku:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log --pretty=oneline ab1afef80fac8e34258ff41fc1b867c702daa24b Modify repo.rb a bit 484a59275031909e19aadb7c92262719cfcdf19a Create repo.rb 1a410efbd13591db07496601ebc7a059dd55cfe9 Third commit cac0cab538b970a37ea1e769cbbde608743bc96d Second commit fdf4fc3344e67ab068f836878b6c4951e3b15f3d First commit</code></pre> </div> </div> <div class="paragraph"> <p>Sedaj premaknite vejo <code>master</code> nazaj na sredinsko potrditev:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git reset --hard 1a410efbd13591db07496601ebc7a059dd55cfe9 HEAD is now at 1a410ef Third commit $ git log --pretty=oneline 1a410efbd13591db07496601ebc7a059dd55cfe9 Third commit cac0cab538b970a37ea1e769cbbde608743bc96d Second commit fdf4fc3344e67ab068f836878b6c4951e3b15f3d First commit</code></pre> </div> </div> <div class="paragraph"> <p>Dejansko ste izgubili zgornji dve potrditvi — nimate veje, iz katere bi bili dosegljivi. Morali boste najti zadnjo SHA-1 potrditve in dodati vejo, ki kaže nanjo. Trik se skriva v iskanju tega najnovejšega SHA-1 — saj si ga niste zapomnili, kajne?</p> </div> <div class="paragraph"> <p>Pogosto najhitrejši način je uporaba orodja, imenovanega <code>git reflog</code>. Kot delo sodelavcem Git tiho beleži, kje je vaš HEAD vsakič, ko ga spremenite. Vsakič, ko potrdite, ali spremenite veje, se posodobi reflog. Reflog se posodablja tudi z ukazom <code>git update-ref</code>, kar je še en razlog, da ga uporabite namesto da bi vrednosti SHA-1 zapisovali neposredno v vaše datoteke ref, kot smo opisali v <a href="/book/sl/v2/ch00/_git_refs">Reference Git</a>. Kjer ste bili kadarkoli, si lahko ogledate tako, da poženete <code>git reflog</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git reflog 1a410ef HEAD@{0}: reset: moving to 1a410ef ab1afef HEAD@{1}: commit: Modify repo.rb a bit 484a592 HEAD@{2}: commit: Create repo.rb</code></pre> </div> </div> <div class="paragraph"> <p>Tukaj lahko vidimo dve potrditvi, ki smo ju imeli izvlečeni, vendar tu ni veliko informacij. Če želite videti iste informacije na veliko bolj uporaben način, lahko zaženete <code>git log -g</code>, kar vam bo dalo običajen dnevniški izpis za vaš reflog.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log -g commit 1a410efbd13591db07496601ebc7a059dd55cfe9 Reflog: HEAD@{0} (Scott Chacon &lt;schacon@gmail.com&gt;) Reflog message: updating HEAD Author: Scott Chacon &lt;schacon@gmail.com&gt; Date: Fri May 22 18:22:37 2009 -0700 Third commit commit ab1afef80fac8e34258ff41fc1b867c702daa24b Reflog: HEAD@{1} (Scott Chacon &lt;schacon@gmail.com&gt;) Reflog message: updating HEAD Author: Scott Chacon &lt;schacon@gmail.com&gt; Date: Fri May 22 18:15:24 2009 -0700 Modify repo.rb a bit</code></pre> </div> </div> <div class="paragraph"> <p>Videti je, da je spodnja potrditev tista, ki ste jo izgubili, zato jo lahko obnovite tako, da ustvarite novo vejo na tej potrditvi. Na primer, lahko začnete novo vejo z imenom <code>recover-branch</code> na tej potrditvi (<code>ab1afef</code>):</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git branch recover-branch ab1afef $ git log --pretty=oneline recover-branch ab1afef80fac8e34258ff41fc1b867c702daa24b Modify repo.rb a bit 484a59275031909e19aadb7c92262719cfcdf19a Create repo.rb 1a410efbd13591db07496601ebc7a059dd55cfe9 Third commit cac0cab538b970a37ea1e769cbbde608743bc96d Second commit fdf4fc3344e67ab068f836878b6c4951e3b15f3d First commit</code></pre> </div> </div> <div class="paragraph"> <p>Odlično — zdaj imate vejo z imenom <code>recover-branch</code>, ki je tam, kjer je bila vaša veja <code>master</code>, tako da sta prvi dve potrditvi ponovno dosegljivi. Naslednjič, recimo, da vaša izguba iz nekega razloga ni v reflogu — to lahko simulirate tako, da odstranite <code>recover-branch</code> in izbrišete reflog. Zdaj prvi dve potrditvi nista dosegljivi prek nobene veje:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git branch -D recover-branch $ rm -Rf .git/logs/</code></pre> </div> </div> <div class="paragraph"> <p>Ker so podatki o reflogu shranjeni v mapi <code>.git/logs/</code>, dejansko nimate nobenega refloga. Kako lahko sedaj obnovite to potrditev? En način je uporaba orodja <code>git fsck</code>, ki preveri vašo podatkovno zbirko za integriteto. Če ga zaženete z možnostjo <code>--full</code>, vam pokaže vse objekte, na katere ni usmerjen noben drug objekt:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git fsck --full Checking object directories: 100% (256/256), done. Checking objects: 100% (18/18), done. dangling blob d670460b4b4aece5915caf5c68d12f560a9fe3e4 dangling commit ab1afef80fac8e34258ff41fc1b867c702daa24b dangling tree aea790b9a58f6cf6f2804eeac9f0abbe9631e4c9 dangling blob 7108f7ecb345ee9d0084193f147cdad4d2998293</code></pre> </div> </div> <div class="paragraph"> <p>V tem primeru lahko vidite vašo manjkajočo potrditev za nizom »dangling commit«. Enako jo lahko obnovite tako, da dodate vejo, ki kaže na ta SHA-1.</p> </div> </div> <div class="sect3"> <h3 id="_removing_objects">Odstranjevanje objektov</h3> <div class="paragraph"> <p>Git ima veliko dobrih lastnosti, vendar pa lahko ena lastnost povzroča težave, in sicer ta, da <code>git clone</code> prenese celotno zgodovino projekta, vključno z vsako različico vsake datoteke. To je v redu, če gre za celotno izvorno kodo, saj je Git visoko optimiziran za učinkovito stiskanje teh podatkov. Če pa je nekdo v zgodovini projekta dodal eno ogromno datoteko, bo vsak klon za vse čase prisiljen prenesti to veliko datoteko, tudi če je bila iz projekta odstranjena že v naslednji potrditvi. Ker je dostopna iz zgodovine, bo vedno tam.</p> </div> <div class="paragraph"> <p>To lahko predstavlja velik problem, ko pretvarjate repozitorije Subversion ali Perforce v Git. Ker v teh sistemih ne prenesete celotne zgodovine, ta vrsta dodatka ne povzroča veliko posledic. Če ste uvozili iz drugega sistema ali našli drug način, da je vaš repozitorij veliko večji, kot bi moral biti, vam predstavljamo, kako najti in odstraniti velike objekte.</p> </div> <div class="paragraph"> <p><strong>Opozorilo: ta tehnika lahko uniči vašo zgodovino potrditev.</strong> Prepiše vsak objekt potrditve od najstarejšega drevesa naprej, da odstrani sklice na veliko datoteko. Če to storite takoj po uvozu, preden je kdo začel delati na tej potrditvi, ste v redu — v nasprotnem primeru morate obvestiti vse sodelavce, da morajo svoje delo prenesti na vaše nove potrditve.</p> </div> <div class="paragraph"> <p>Da bi to demonstrirali, boste v testnem repozitoriju dodali veliko datoteko, jo v naslednji potrditvi odstranili, jo našli in trajno odstranili iz repozitorija. Najprej dodajte velik objekt v svojo zgodovino:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ curl -L https://www.kernel.org/pub/software/scm/git/git-2.1.0.tar.gz &gt; git.tgz $ git add git.tgz $ git commit -m 'Add git tarball' [master 7b30847] Add git tarball 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 git.tgz</code></pre> </div> </div> <div class="paragraph"> <p>Ups — niste želeli dodati velike arhivske datoteke tar v svoj projekt. Bolje, da se je znebite:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git rm git.tgz rm 'git.tgz' $ git commit -m 'Oops - remove large tarball' [master dadf725] Oops - remove large tarball 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 git.tgz</code></pre> </div> </div> <div class="paragraph"> <p>Zdaj pa počistite svojo bazo podatkov z ukazom <code>gc</code> in preverite, koliko prostora uporabljate:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git gc Counting objects: 17, done. Delta compression using up to 8 threads. Compressing objects: 100% (13/13), done. Writing objects: 100% (17/17), done. Total 17 (delta 1), reused 10 (delta 0)</code></pre> </div> </div> <div class="paragraph"> <p>Za hitro preverjanje, koliko prostora uporabljate, lahko zaženete ukaz <code>count-objects</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git count-objects -v count: 7 size: 32 in-pack: 17 packs: 1 size-pack: 4868 prune-packable: 0 garbage: 0 size-garbage: 0</code></pre> </div> </div> <div class="paragraph"> <p>Vnos <code>size-pack</code> predstavlja velikost vaših paketnih datotek v kilobajtih, torej uporabljate skoraj 5 MB. Pred zadnjo potrditvijo ste uporabljali manj kot 2 K — očitno odstranjevanje datoteke iz prejšnje potrditve ni odstranilo datoteke iz zgodovine. Vsakič, ko nekdo klonira ta repozitorij, bo moral klonirati vseh 5 MB, da bo dobil ta mali projekt, ker ste slučajno dodali veliko datoteko. Znebimo se ga.</p> </div> <div class="paragraph"> <p>Najprej ga morate najti. V tem primeru že veste, katera datoteka je. Toda predpostavimo, da ne veste; kako bi ugotovili, katera datoteka ali datoteke zavzemajo toliko prostora? Če zaženete <code>git gc</code>, so vsi objekti v paketni datoteki; velike objekte lahko identificirate tako, da zaženete še eno orodje za pomožne dejavnosti z imenom <code>git verify-pack</code> in razvrstite po tretjem polju v izhodu, ki predstavlja velikost datoteke. Lahko ga preusmerite tudi skozi ukaz <code>tail</code>, ker vas zanimajo le zadnje največje datoteke:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git verify-pack -v .git/objects/pack/pack-29…69.idx \ | sort -k 3 -n \ | tail -3 dadf7258d699da2c8d89b09ef6670edb7d5f91b4 commit 229 159 12 033b4468fa6b2a9547a70d88d1bbe8bf3f9ed0d5 blob 22044 5792 4977696 82c99a3e86bb1267b236a4b6eff7868d97489af1 blob 4975916 4976258 1438</code></pre> </div> </div> <div class="paragraph"> <p>Velik objekt se nahaja na dnu: 5 MB. Da ugotovite, katera datoteka je to, boste uporabili ukaz <code>rev-list</code>, ki ste ga uporabili v <a href="/book/sl/v2/ch00/_enforcing_commit_message_format">Uveljavljanje določene oblike sporočila potrditve</a>. Če ukazu <code>rev-list</code> podate <code>--objects</code>, izpiše vse vrednosti SHA-1 potrditev in tudi SHA-1 blobov s potmi datotek, ki so z njimi povezane. To lahko uporabite, da poiščete ime svojega bloba:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git rev-list --objects --all | grep 82c99a3 82c99a3e86bb1267b236a4b6eff7868d97489af1 git.tgz</code></pre> </div> </div> <div class="paragraph"> <p>Zdaj morate odstraniti to datoteko iz vseh dreves v svoji preteklosti. Enostavno lahko vidite, katere potrditve so spremenile to datoteko:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log --oneline --branches -- git.tgz dadf725 Oops - remove large tarball 7b30847 Add git tarball</code></pre> </div> </div> <div class="paragraph"> <p>Prepisati morate vse potrditve navzdol, katere izvirajo iz <code>7b30847</code>, da bi popolnoma odstranili to datoteko iz vaše zgodovine Gita. To storite tako, da uporabite <code>filter-branch</code>, kakor ste storili v <a href="/book/sl/v2/ch00/_rewriting_history">Prepisovanje zgodovine</a>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git filter-branch --index-filter \ 'git rm --ignore-unmatch --cached git.tgz' -- 7b30847^.. Rewrite 7b30847d080183a1ab7d18fb202473b3096e9f34 (1/2)rm 'git.tgz' Rewrite dadf7258d699da2c8d89b09ef6670edb7d5f91b4 (2/2) Ref 'refs/heads/master' was rewritten</code></pre> </div> </div> <div class="paragraph"> <p>Možnost <code>--index-filter</code> je podobna možnosti <code>--tree-filter</code> uporabljeni v <a href="/book/sl/v2/ch00/_rewriting_history">Prepisovanje zgodovine</a>, razlika je v tem, da namesto podajanja ukaza, ki spreminja datoteke izvlečene na disk, vsakič spreminjate svoje področje priprave ali indeks.</p> </div> <div class="paragraph"> <p>Namesto da bi z nečim, kot je <code>rm file</code>, odstranili določeno datoteko, jo morate odstraniti z <code>git rm --cached</code> — morate jo odstraniti iz indeksa, ne z diska. Razlog za to je hitrost — ker Git ne mora preveriti vsake revizije na disku preden zažene vaš filter, lahko postopek poteka veliko, veliko hitreje. Enako nalogo lahko opravite s <code>--tree-filter</code>, če želite. Možnost <code>--ignore-unmatch</code> pove ukazu <code>git rm</code>, naj ne vrne napake, če vzorca, ki ga poskušate odstraniti, ni tam. Nazadnje zahtevate, da <code>filter-branch</code> ponovno napiše vašo zgodovino le od potrditve <code>7b30847</code> naprej, ker veste, da je tam ta problem nastal. Sicer se bo začelo od začetka in bo po nepotrebnem trajalo dlje.</p> </div> <div class="paragraph"> <p>Vaša zgodovina ne vsebuje več sklicevanja na to datoteko. Vendar pa ga vaš reflog in nov nabor referenc, ki jih je Git dodal, ko ste izvedli <code>filter-branch</code> pod <code>.git/refs/original</code>, še vedno vsebujeta, zato jih morate odstraniti in nato ponovno zapakirati bazo podatkov. Pred ponovnim zapakiranjem morate odstraniti karkoli, kar kaže na te stare potrditve:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ rm -Rf .git/refs/original $ rm -Rf .git/logs/ $ git gc Counting objects: 15, done. Delta compression using up to 8 threads. Compressing objects: 100% (11/11), done. Writing objects: 100% (15/15), done. Total 15 (delta 1), reused 12 (delta 0)</code></pre> </div> </div> <div class="paragraph"> <p>Poglejmo, koliko prostora ste prihranili.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git count-objects -v count: 11 size: 4904 in-pack: 15 packs: 1 size-pack: 8 prune-packable: 0 garbage: 0 size-garbage: 0</code></pre> </div> </div> <div class="paragraph"> <p>Velikost zapakiranega repozitorija je zmanjšana na 8 K, kar je veliko boljše kot 5 MB. Vidite lahko iz velikostne vrednosti, da je velik objekt še vedno v vaših šibkih objektih, torej ni izbrisan; vendar se ne bo prenesel pri potiskanju ali kasnejšem kloniranju, kar je pomembno. Če bi res želeli, bi objekt lahko popolnoma odstranili tako, da bi zagnali <code>git prune</code> z možnostjo <code>--expire</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git prune --expire now $ git count-objects -v count: 0 size: 0 in-pack: 15 packs: 1 size-pack: 8 prune-packable: 0 garbage: 0 size-garbage: 0</code></pre> </div> </div> </div> <div id="nav"><a href="/book/sl/v2/Notranjost-Gita-Protokoli-prenosa">prev</a> | <a href="/book/sl/v2/Notranjost-Gita-Spremenljivke-okolja">next</a></div> </div> </div> </div> </div> <footer> <div class="site-source"> <a href="/site">About this site</a><br> Patches, suggestions, and comments are welcome. </div> <div class="sfc-member"> Git is a member of <a href="/sfc">Software Freedom Conservancy</a> </div> </footer> <a href="#top" class="no-js scrollToTop" id="scrollToTop" data-label="Scroll to top"> <img src="/images/icons/chevron-up@2x.png" width="20" height="20" alt="scroll-to-top"/> </a> <script src="/js/jquery-1.7.1.min.js"></script> <script src="/js/jquery-ui-1.8.18.custom.min.js"></script> <script src="/js/jquery.defaultvalue.js"></script> <script src="/js/session.min.js"></script> <script src="/js/application.min.js"></script> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10