CINXE.COM
Git - Pag-stash at Paglilinis
<!DOCTYPE html> <html lang="tl"> <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 - Pag-stash at Paglilinis</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-Tools-Stashing-and-Cleaning">English</a>. </p> <p> Full translation available in <table> <tr><td><a href="/book/az/v2/Git-Al%c9%99tl%c9%99ri-Stashing-v%c9%99-T%c9%99mizl%c9%99m%c9%99">azərbaycan dili</a>,</td></tr> <tr><td><a href="/book/bg/v2/Git-%d0%b8-%d0%b4%d1%80%d1%83%d0%b3%d0%b8-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%b8-%d0%9e%d0%b1%d0%be%d0%b1%d1%89%d0%b5%d0%bd%d0%b8%d0%b5">български език</a>,</td></tr> <tr><td><a href="/book/de/v2/Git-Tools-Stashen-und-Bereinigen">Deutsch</a>,</td></tr> <tr><td><a href="/book/es/v2/Herramientas-de-Git-Guardado-r%c3%a1pido-y-Limpieza">Español</a>,</td></tr> <tr><td><a href="/book/fr/v2/Utilitaires-Git-Remisage-et-nettoyage">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%e3%81%95%e3%81%be%e3%81%96%e3%81%be%e3%81%aa%e3%83%84%e3%83%bc%e3%83%ab-%e4%bd%9c%e6%a5%ad%e3%81%ae%e9%9a%a0%e3%81%97%e3%81%8b%e3%81%9f%e3%81%a8%e6%b6%88%e3%81%97%e3%81%8b%e3%81%9f">日本語</a>,</td></tr> <tr><td><a href="/book/ko/v2/Git-%eb%8f%84%ea%b5%ac-Stashing%ea%b3%bc-Cleaning">한국어</a>,</td></tr> <tr><td><a href="/book/nl/v2/Git-Tools-Stashen-en-opschonen">Nederlands</a>,</td></tr> <tr><td><a href="/book/ru/v2/%d0%98%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d1%8b-Git-%d0%9f%d1%80%d0%b8%d0%bf%d1%80%d1%8f%d1%82%d1%8b%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b8-%d0%be%d1%87%d0%b8%d1%81%d1%82%d0%ba%d0%b0">Русский</a>,</td></tr> <tr><td><a href="/book/sl/v2/Orodja-Git-Shranjevanje-na-varno-angl-stashing-in-%c4%8di%c5%a1%c4%8denje">Slovenščina</a>,</td></tr> <tr><td><a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pag-stash-at-Paglilinis">Tagalog</a>,</td></tr> <tr><td><a href="/book/uk/v2/%d0%86%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b8-Git-%d0%a5%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d1%8f-%d1%82%d0%b0-%d1%87%d0%b8%d1%89%d0%b5%d0%bd%d0%bd%d1%8f">Українська</a></td></tr> <tr><td><a href="/book/zh/v2/Git-%e5%b7%a5%e5%85%b7-%e8%b4%ae%e8%97%8f%e4%b8%8e%e6%b8%85%e7%90%86">简体中文</a>,</td></tr> </table> </p> <p> Partial translations available in <table> <tr><td><a href="/book/cs/v2/Git-Tools-Stashing-and-Cleaning">Čeština</a>,</td></tr> <tr><td><a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Stashing-and-Cleaning">Македонски</a>,</td></tr> <tr><td><a href="/book/pl/v2/Narz%c4%99dzia-Gita-Schowek-i-czyszczenie">Polski</a>,</td></tr> <tr><td><a href="/book/sr/v2/%d0%93%d0%b8%d1%82-%d0%b0%d0%bb%d0%b0%d1%82%d0%b8-%d0%a1%d0%ba%d1%80%d0%b8%d0%b2%d0%b0%d1%9a%d0%b5-%d0%b8-%d1%87%d0%b8%d1%88%d1%9b%d0%b5%d1%9a%d0%b5">Српски</a>,</td></tr> <tr><td><a href="/book/uz/v2/Git-Tools-Stashing-and-Cleaning">Ўзбекча</a>,</td></tr> <tr><td><a href="/book/zh-tw/v2/Git-%e5%b7%a5%e5%85%b7-Stashing-and-Cleaning">繁體中文</a>,</td></tr> </table> </p> <p> Translations started for <table> <tr><td><a href="/book/be/v2/Git-Tools-Stashing-and-Cleaning">Беларуская</a>,</td></tr> <tr><td><a href="/book/fa/v2/Git-Tools-Stashing-and-Cleaning" dir="rtl">فارسی</a>,</td></tr> <tr><td><a href="/book/id/v2/Git-Tools-Stashing-and-Cleaning">Indonesian</a>,</td></tr> <tr><td><a href="/book/it/v2/Git-Tools-Stashing-and-Cleaning">Italiano</a>,</td></tr> <tr><td><a href="/book/ms/v2/Git-Tools-Stashing-and-Cleaning">Bahasa Melayu</a>,</td></tr> <tr><td><a href="/book/pt-br/v2/Git-Tools-Stashing-and-Cleaning">Português (Brasil)</a>,</td></tr> <tr><td><a href="/book/pt-pt/v2/Ferramentas-do-Git-Stashing-and-Cleaning">Português (Portugal)</a>,</td></tr> <tr><td><a href="/book/sv/v2/Git-Tools-Stashing-and-Cleaning">Svenska</a>,</td></tr> <tr><td><a href="/book/tr/v2/Git-Ara%c3%a7lar%c4%b1-Saklama-ve-Silme">Türkçe</a>.</td></tr> </table> </p> <hr class="sidebar"/> <p> The source of this book is <a href="https://github.com/progit2-tl/progit2">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/tl/v2/Pagsisimula-Tungkol-sa-Bersyon-Kontrol">Pagsisimula</a></h2> <ol> <li> 1.1 <a href="/book/tl/v2/Pagsisimula-Tungkol-sa-Bersyon-Kontrol">Tungkol sa Bersyon Kontrol</a> </li> <li> 1.2 <a href="/book/tl/v2/Pagsisimula-Isang-Maikling-Kasaysayan-ng-Git">Isang Maikling Kasaysayan ng Git</a> </li> <li> 1.3 <a href="/book/tl/v2/Pagsisimula-Pangunahing-Kaalaman-sa-Git">Pangunahing Kaalaman sa Git</a> </li> <li> 1.4 <a href="/book/tl/v2/Pagsisimula-Ang-Command-Line">Ang Command Line</a> </li> <li> 1.5 <a href="/book/tl/v2/Pagsisimula-Pag-install-ng-Git">Pag-install ng Git</a> </li> <li> 1.6 <a href="/book/tl/v2/Pagsisimula-Unang-Beses-na-Pag-Setup-ng-Git">Unang Beses na Pag-Setup ng Git</a> </li> <li> 1.7 <a href="/book/tl/v2/Pagsisimula-Pagkuha-ng-Tulong">Pagkuha ng Tulong</a> </li> <li> 1.8 <a href="/book/tl/v2/Pagsisimula-Buod">Buod</a> </li> </ol> </li> <li class='chapter'> <h2>2. <a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Pagkuha-ng-Repositoryo-ng-Git">Mga Pangunahing Kaalaman sa Git</a></h2> <ol> <li> 2.1 <a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Pagkuha-ng-Repositoryo-ng-Git">Pagkuha ng Repositoryo ng Git</a> </li> <li> 2.2 <a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Pagtatala-ng-mga-Pagbabago-sa-Repositoryo">Pagtatala ng mga Pagbabago sa Repositoryo</a> </li> <li> 2.3 <a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Pagtitingin-sa-Kasaysayan-ng-Commit">Pagtitingin sa Kasaysayan ng Commit</a> </li> <li> 2.4 <a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Pag-Undo-ng-mga-Bagay">Pag-Undo ng mga Bagay</a> </li> <li> 2.5 <a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Paggawa-gamit-ang-mga-Remote">Paggawa gamit ang mga Remote</a> </li> <li> 2.6 <a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Pag-tag">Pag-tag</a> </li> <li> 2.7 <a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Mga-Alyas-sa-Git">Mga Alyas sa Git</a> </li> <li> 2.8 <a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Buod">Buod</a> </li> </ol> </li> <li class='chapter'> <h2>3. <a href="/book/tl/v2/Pag-branch-ng-Git-Mga-Branch-sa-Maikling-Salita">Pag-branch ng Git</a></h2> <ol> <li> 3.1 <a href="/book/tl/v2/Pag-branch-ng-Git-Mga-Branch-sa-Maikling-Salita">Mga Branch sa Maikling Salita</a> </li> <li> 3.2 <a href="/book/tl/v2/Pag-branch-ng-Git-Batayan-ng-Pag-branch-at-Pag-merge">Batayan ng Pag-branch at Pag-merge</a> </li> <li> 3.3 <a href="/book/tl/v2/Pag-branch-ng-Git-Pamamahala-ng-Branch">Pamamahala ng Branch</a> </li> <li> 3.4 <a href="/book/tl/v2/Pag-branch-ng-Git-Mga-Daloy-ng-Trabaho-sa-Pag-branch">Mga Daloy ng Trabaho sa Pag-branch</a> </li> <li> 3.5 <a href="/book/tl/v2/Pag-branch-ng-Git-Remote-na-mga-Branch">Remote na mga Branch</a> </li> <li> 3.6 <a href="/book/tl/v2/Pag-branch-ng-Git-Pag-rebase">Pag-rebase</a> </li> <li> 3.7 <a href="/book/tl/v2/Pag-branch-ng-Git-Buod">Buod</a> </li> </ol> </li> <li class='chapter'> <h2>4. <a href="/book/tl/v2/Git-sa-Server-Ang-Mga-Protokol">Git sa Server</a></h2> <ol> <li> 4.1 <a href="/book/tl/v2/Git-sa-Server-Ang-Mga-Protokol">Ang Mga Protokol</a> </li> <li> 4.2 <a href="/book/tl/v2/Git-sa-Server-Pagkuha-ng-Git-sa-isang-Server">Pagkuha ng Git sa isang Server</a> </li> <li> 4.3 <a href="/book/tl/v2/Git-sa-Server-Ang-paglikha-ng-iyong-Pampublikong-Susi-ng-SSH">Ang paglikha ng iyong Pampublikong Susi ng SSH</a> </li> <li> 4.4 <a href="/book/tl/v2/Git-sa-Server-Pag-Setup-ng-Server">Pag-Setup ng Server</a> </li> <li> 4.5 <a href="/book/tl/v2/Git-sa-Server-Git-Daemon">Git Daemon</a> </li> <li> 4.6 <a href="/book/tl/v2/Git-sa-Server-Smart-HTTP">Smart HTTP</a> </li> <li> 4.7 <a href="/book/tl/v2/Git-sa-Server-GitWeb">GitWeb</a> </li> <li> 4.8 <a href="/book/tl/v2/Git-sa-Server-GitLab">GitLab</a> </li> <li> 4.9 <a href="/book/tl/v2/Git-sa-Server-Mga-Opsyon-ng-Naka-host-sa-Third-Party">Mga Opsyon ng Naka-host sa Third Party</a> </li> <li> 4.10 <a href="/book/tl/v2/Git-sa-Server-Buod">Buod</a> </li> </ol> </li> <li class='chapter'> <h2>5. <a href="/book/tl/v2/Distributed-Git-Distributed-Workflows">Distributed Git</a></h2> <ol> <li> 5.1 <a href="/book/tl/v2/Distributed-Git-Distributed-Workflows">Distributed Workflows</a> </li> <li> 5.2 <a href="/book/tl/v2/Distributed-Git-Contributing-to-a-Project">Contributing to a Project</a> </li> <li> 5.3 <a href="/book/tl/v2/Distributed-Git-Maintaining-a-Project">Maintaining a Project</a> </li> <li> 5.4 <a href="/book/tl/v2/Distributed-Git-Summary">Summary</a> </li> </ol> </li> </ol> </div> <div class='column-middle'> <ol class='book-toc'> <li class='chapter'> <h2>6. <a href="/book/tl/v2/GitHub-Pag-setup-at-pagsasaayos-ng-Account">GitHub</a></h2> <ol> <li> 6.1 <a href="/book/tl/v2/GitHub-Pag-setup-at-pagsasaayos-ng-Account">Pag-setup at pagsasaayos ng Account</a> </li> <li> 6.2 <a href="/book/tl/v2/GitHub-Pag-aambag-sa-isang-Proyekto">Pag-aambag sa isang Proyekto</a> </li> <li> 6.3 <a href="/book/tl/v2/GitHub-Pagpapanatili-ng-isang-Proyekto">Pagpapanatili ng isang Proyekto</a> </li> <li> 6.4 <a href="/book/tl/v2/GitHub-Pamamahala-ng-isang-organisasyon">Pamamahala ng isang organisasyon</a> </li> <li> 6.5 <a href="/book/tl/v2/GitHub-Pag-iiskrip-sa-GitHub">Pag-iiskrip sa GitHub</a> </li> <li> 6.6 <a href="/book/tl/v2/GitHub-Buod">Buod</a> </li> </ol> </li> <li class='chapter'> <h2>7. <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pagpipili-ng-Rebisyon">Mga Git na Kasangkapan</a></h2> <ol> <li> 7.1 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pagpipili-ng-Rebisyon">Pagpipili ng Rebisyon</a> </li> <li> 7.2 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Staging-na-Interactive">Staging na Interactive</a> </li> <li> 7.3 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pag-stash-at-Paglilinis" class="active">Pag-stash at Paglilinis</a> </li> <li> 7.4 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pag-sign-sa-Iyong-Trabaho">Pag-sign sa Iyong Trabaho</a> </li> <li> 7.5 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Paghahanap">Paghahanap</a> </li> <li> 7.6 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pagsulat-muli-ng-Kasaysayan">Pagsulat muli ng Kasaysayan</a> </li> <li> 7.7 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Ang-Reset-Demystified">Ang Reset Demystified</a> </li> <li> 7.8 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Advanced-na-Pag-merge">Advanced na Pag-merge</a> </li> <li> 7.9 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Ang-Rerere">Ang Rerere</a> </li> <li> 7.10 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pagdebug-gamit-ang-Git">Pagdebug gamit ang Git</a> </li> <li> 7.11 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Mga-Submodule">Mga Submodule</a> </li> <li> 7.12 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pagbibigkis">Pagbibigkis</a> </li> <li> 7.13 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pagpapalit">Pagpapalit</a> </li> <li> 7.14 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Kredensyal-na-ImbakanCredential-Storage">Kredensyal na ImbakanCredential Storage</a> </li> <li> 7.15 <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Buod">Buod</a> </li> </ol> </li> <li class='chapter'> <h2>8. <a href="/book/tl/v2/Pag-aangkop-sa-Sariling-Pangangailagan-ng-Git-Kompigurasyon-ng-Git">Pag-aangkop sa Sariling Pangangailagan ng Git</a></h2> <ol> <li> 8.1 <a href="/book/tl/v2/Pag-aangkop-sa-Sariling-Pangangailagan-ng-Git-Kompigurasyon-ng-Git">Kompigurasyon ng Git</a> </li> <li> 8.2 <a href="/book/tl/v2/Pag-aangkop-sa-Sariling-Pangangailagan-ng-Git-Mga-Katangian-ng-Git">Mga Katangian ng Git</a> </li> <li> 8.3 <a href="/book/tl/v2/Pag-aangkop-sa-Sariling-Pangangailagan-ng-Git-Mga-Hook-ng-Git">Mga Hook ng Git</a> </li> <li> 8.4 <a href="/book/tl/v2/Pag-aangkop-sa-Sariling-Pangangailagan-ng-Git-An-Example-Git-Enforced-Policy">An Example Git-Enforced Policy</a> </li> <li> 8.5 <a href="/book/tl/v2/Pag-aangkop-sa-Sariling-Pangangailagan-ng-Git-Buod">Buod</a> </li> </ol> </li> <li class='chapter'> <h2>9. <a href="/book/tl/v2/Ang-Git-at-iba-pang-mga-Sistema-Git-bilang-isang-Kliyente">Ang Git at iba pang mga Sistema</a></h2> <ol> <li> 9.1 <a href="/book/tl/v2/Ang-Git-at-iba-pang-mga-Sistema-Git-bilang-isang-Kliyente">Git bilang isang Kliyente</a> </li> <li> 9.2 <a href="/book/tl/v2/Ang-Git-at-iba-pang-mga-Sistema-Paglilipat-sa-Git">Paglilipat sa Git</a> </li> <li> 9.3 <a href="/book/tl/v2/Ang-Git-at-iba-pang-mga-Sistema-Buod">Buod</a> </li> </ol> </li> <li class='chapter'> <h2>10. <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Plumbing-and-Porcelain">Mga Panloob ng GIT</a></h2> <ol> <li> 10.1 <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Plumbing-and-Porcelain">Plumbing and Porcelain</a> </li> <li> 10.2 <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Git-Objects">Git Objects</a> </li> <li> 10.3 <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Git-References">Git References</a> </li> <li> 10.4 <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Packfiles">Packfiles</a> </li> <li> 10.5 <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Ang-Refspec">Ang Refspec</a> </li> <li> 10.6 <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Transfer-Protocols">Transfer Protocols</a> </li> <li> 10.7 <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Pagpapanatili-At-Pagbalik-ng-Datos">Pagpapanatili At Pagbalik ng Datos</a> </li> <li> 10.8 <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Mga-Variable-sa-Kapaligiran">Mga Variable sa Kapaligiran</a> </li> <li> 10.9 <a href="/book/tl/v2/Mga-Panloob-ng-GIT-Buod">Buod</a> </li> </ol> </li> </ol> </div> <div class='column-right'> <ol class='book-toc'> <li class='chapter'> <h2>A1. <a href="/book/tl/v2/Appendix-A:-Git-in-Other-Environments-Grapikal-Interfaces">Appendix A: Git in Other Environments</a></h2> <ol> <li> A1.1 <a href="/book/tl/v2/Appendix-A:-Git-in-Other-Environments-Grapikal-Interfaces">Grapikal Interfaces</a> </li> <li> A1.2 <a href="/book/tl/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Visual-Studio">Git in Visual Studio</a> </li> <li> A1.3 <a href="/book/tl/v2/Appendix-A:-Git-in-Other-Environments-Git-sa-Eclipse">Git sa Eclipse</a> </li> <li> A1.4 <a href="/book/tl/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Bash">Git in Bash</a> </li> <li> A1.5 <a href="/book/tl/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Zsh">Git in Zsh</a> </li> <li> A1.6 <a href="/book/tl/v2/Appendix-A:-Git-in-Other-Environments-Git-sa-Powershell">Git sa Powershell</a> </li> <li> A1.7 <a href="/book/tl/v2/Appendix-A:-Git-in-Other-Environments-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>A2. <a href="/book/tl/v2/Appendix-B:-Pag-embed-ng-Git-sa-iyong-Mga-Aplikasyon-Command-line-Git">Appendix B: Pag-embed ng Git sa iyong Mga Aplikasyon</a></h2> <ol> <li> A2.1 <a href="/book/tl/v2/Appendix-B:-Pag-embed-ng-Git-sa-iyong-Mga-Aplikasyon-Command-line-Git">Command-line Git</a> </li> <li> A2.2 <a href="/book/tl/v2/Appendix-B:-Pag-embed-ng-Git-sa-iyong-Mga-Aplikasyon-Libgit2">Libgit2</a> </li> <li> A2.3 <a href="/book/tl/v2/Appendix-B:-Pag-embed-ng-Git-sa-iyong-Mga-Aplikasyon-JGit">JGit</a> </li> </ol> </li> <li class='chapter'> <h2>A3. <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Setup-at-Config">Appendix C: Mga Kautusan ng Git</a></h2> <ol> <li> A3.1 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Setup-at-Config">Setup at Config</a> </li> <li> A3.2 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Pagkuha-at-Paglikha-ng-Mga-Proyekto">Pagkuha at Paglikha ng Mga Proyekto</a> </li> <li> A3.3 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Pangunahing-Snapshotting">Pangunahing Snapshotting</a> </li> <li> A3.4 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Branching-at-Merging">Branching at Merging</a> </li> <li> A3.5 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Pagbabahagi-at-Pagbabago-ng-mga-Proyekto">Pagbabahagi at Pagbabago ng mga Proyekto</a> </li> <li> A3.6 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Pagsisiyasat-at-Paghahambing">Pagsisiyasat at Paghahambing</a> </li> <li> A3.7 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Debugging">Debugging</a> </li> <li> A3.8 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Patching">Patching</a> </li> <li> A3.9 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Email">Email</a> </li> <li> A3.10 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-External-Systems">External Systems</a> </li> <li> A3.11 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Administration">Administration</a> </li> <li> A3.12 <a href="/book/tl/v2/Appendix-C:-Mga-Kautusan-ng-Git-Pagtutuberong-mga-Utos">Pagtutuberong mga Utos</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>7.3 Mga Git na Kasangkapan - Pag-stash at Paglilinis</h1> <div> <h2 id="_git_stashing">Pag-stash at Paglilinis</h2> <div class="paragraph"> <p>Kadalasan, kapag nagtatrabaho ka sa bahagi ng iyong proyekto, ang mga bagay ay nasa isang kalat na estado at gusto mong lumipat ng mga branch para sa isang kaunting trabaho upang magtrabaho sa ibang bagay. Ang problema ay, hindi mo gustong gumawa ng isang commit sa kalahating natapos na trabaho para lamang makuha mong bumalik sa punto ito mamaya. Ang sagot sa isyung ito ay ang utos na <code>git stash</code>.</p> </div> <div class="paragraph"> <p>Kumukuha ang pag-stash ng maruming estado ng iyong gumaganang direktoryo — iyon ay, ang iyong binagong sinusubaybayan na mga file at mga naka-stage na mga pagbabago — at i-save ito sa isang stack ng mga hindi natapos ng mga pagbabago na maaari mong muling ilapat sa anumang oras (kahit na sa ibang branch).</p> </div> <div class="exampleblock"> <div class="title">Example 11. Paglilipat sa <code>git stash push</code> </div> <div class="content"> <div class="paragraph"> <p>Sa huling Oktubre 2017, nagkaroon ng malawak na talakayan sa listahan ng pag-mail ng Git, kung saan ang utos na <code>git stash save</code> ay hindi na magagamit na pabor sa umiiral na alternatibong <code>git stash push</code>. Ang pangunahing dahilan para rito ay ang <code>git stash push</code> ay nagpapakilala ng opsyon sa pag-stash ng napiling <em>pathspecs</em>, isang bagay na hindi suportado ng <code>git stash save</code>.</p> </div> <div class="paragraph"> <p>Ang <code>git stash save</code> ay hindi aalis sa anumang oras sa lalong madaling panahon, kaya huwag mag-alala tungkol dito na biglang mawawala. Ngunit maaaring gusto mong simulan ang paglipat sa alternibo na <code>push</code> para sa bagong pag-andar.</p> </div> </div> </div> <div class="sect3"> <h3 id="_pag_stash_ng_iyong_trabaho">Pag-stash ng Iyong Trabaho</h3> <div class="paragraph"> <p>Upang ipakita ang pag-stash, pupunta ka sa iyong proyekto at simulan ang pagtatrabaho sa isang iilang mga file at posibleng i-stage ang isa sa mga pagbabago. Kung papatakbuhin mo ang <code>git status</code>, makikita mo ang iyong maruming estado:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git status Ang mga pagbabagong dapat i-commit: (gumamit ng "git reset HEAD <file>..." upang mag-unstage) nabago: index.html Mga pagbabago na hindi na-stage para sa commit: (gumamit ng "git add <file>..." upang ma-update kung ano ang iko-commit) (gumamit ng "git checkout -- <file>..." upang iwaksi ang mga pagbababago sa iyong tinatrabahong direktoryo) nabago: lib/simplegit.rb</code></pre> </div> </div> <div class="paragraph"> <p>Ngayon nais mong magpalit ng mga branch, ngunit hindi mo pa gusto na i-commit kung ano ang iyong tinatrabaho; kaya i-stash mo ang iyong mga pagbabago. Para mag-push ng isang bagong stash sa iyong stack, patakbuhin ang <code>git stash</code> o <code>git stash save</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git stash Naka-save na gumaganang direktoryo at estado ng indeks \ "WIP sa master: 049d078 idinagdag ang indeks na file" Ang HEAD ngayon ay nasa 049d078 na nagdagdag sa indeks na file (Upang maibalik ang mga ito, magtipa ng "git stash apply")</code></pre> </div> </div> <div class="paragraph"> <p>Maaari mo ng makita na ang iyong gumaganang direktoryo ay malinis:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git status # Sa branch na master walang mai-commit, malinis ang gumaganang direktoryo</code></pre> </div> </div> <div class="paragraph"> <p>Sa puntong ito, maaari kang magpalit ng mga branch at magtrabaho sa ibang lugar; ang iyong mga pagbabago ay naka-imbak sa iyong stack Upang makita kung anong mga stash na iyong inimbak, maaari kang gumamit ng <code>git stash list</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git stash list stash@{0}: WIP sa master: 049d078 idinagdag ang indeks na file stash@{1}: WIP sa master: c264051 Ibalik ang "idinagdag ang file_size" stash@{2}: WIP sa master: 21d80a5 idinagdag ang bilang sa log</code></pre> </div> </div> <div class="paragraph"> <p>Sa kasong ito, dalawang stash ang natapos sa nakaraan, kaya mayroon kang access sa tatlong iba’t-ibang naka-stash na mga trabaho. Maaari mo muling ilapat ang isa na iyong na-stash sa pamamagitan ng paggamit ng utos na ipanapakita sa output ng tulong ng orihinal na utos ng stash: <code>git stash apply</code>. Kung nais mo na ilapat ang isa sa mas lumang mga stash, maaari mong matukoy ito sa pamamagitan ng pagbibigay ng pangalan nito, tulad nito: <code>git stash apply stash@{2}</code>. Kung hindi ka nagtukoy ng isang stash, ipinagpapalagay ng Git ang pinakabago na stash at sinusubukan na ilapat ito:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git stash apply Sa branch master Ang mga pagbabago ay hindi na-stage para sa commit: (gumamit ng "git add <file>..." upang ma-update kung ang mako-commit) (gumamit ng "git checkout -- <file>..." upang iwaksi ang mga pagbabago sa gumaganang direktoryo) nabago: index.html nabago: lib/simplegit.rb walang naidagdag na mga pagbabago sa commit (gumamit ng "git add" at/o "git commit -a")</code></pre> </div> </div> <div class="paragraph"> <p>Maaari mong makita na ang Git ay nagbabago muli ng mga file na iyong ibinalik kapag ikaw ay nag-save ng stash. Sa kasong ito, mayroon kang isang malinis na gumaganang direktoryo kapag sinubukan mo na mag-lapat ng stash, at sinubukan mo na ilapat ito sa parehong branch kung saan mo ito si-nave. Ang pagkakaroon ng isang malinis na gumaganang direktoryo at paglalapat nito sa parehong branch ay hindi kinakailangan upang matagumpay na maglapat ng isang stash. Maaari mo i-save ang isang stash sa isang branch, palitan sa ibang branch mamaya, at subukan na muling ilapat ang mga pagbabago. Maaari mo ka ring magkaroon ng mga file na binago o hindi na-commit sa iyong gumaganang direktoryo kapag ikaw ay naglapat ng isang stash — Binibigyan ka ng Git ng mga kasalungatan sa pag-merge kung hindi na mailalapat nang malinis.</p> </div> <div class="paragraph"> <p>Ang mga pagbabago sa iyong mga file ay muli ng nailapat, ngunit ang file na naka-stage noon ay hindi na muling ma-stage. Upang gawin iyon, dapat mong patakbuhin ang utos na <code>git stash apply</code> na may isang opsyon na <code>--index</code> upang sabihan ang utos na subukan na muling ilapat ang naka-stage na mga pagbabago. Kung sa halip ay napatakbo mo ito , naibalik ka sa iyong orihinal na posisyon:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git stash apply --index Sa branch master Ang mga pagbabago na i-commit: (gumamit ng "git reset HEAD <file>..." para i-unstage) nabago: index.html Ang mga pagbabago na hindi na-stage para sa commit: (gumamit ng "git add <file>..." upang mag-update kung ano ang mako-commit) (gumamit ng "git checkout -- <file>..." upang iwaksi ang mga pagbabago sa gumaganang direktoryo) nabago: lib/simplegit.rb</code></pre> </div> </div> <div class="paragraph"> <p>Ang opsyon na apply ay sinusubukan lamang na maglapat ng naka-stash na trabaho — ituloy mo upang magkaroon ka nito sa iyong stack. Upang matanggal ito, maaari mong patakbuhin ang <code>git stash drop</code> na may pangalan ng stash na tatanggalin:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP sa master: c264051 Ibinalik ang "idinagdag na file_size" stash@{2}: WIP sa master: 21d80a5 idinagdag ang bilang sa log $ git stash drop stash@{0} Alisin ang stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)</code></pre> </div> </div> <div class="paragraph"> <p>Maaari mo ring patakbuhin ang <code>git stash pop</code> upang ilapat ang stash at pagkatapos ay kaagad na alisin ito mula sa iyong stack.</p> </div> </div> <div class="sect3"> <h3 id="_malikhain_na_pag_stash">Malikhain na Pag-stash</h3> <div class="paragraph"> <p>Mayroong ilang ibang stash na maaari ring kapaki-pakinabang. Ang unang opsyon na medyo sikat ay ang opsyon na <code>--keep-index</code> sa utos na <code>stash save</code>. Ito ay nagsasabi sa Git na hindi lamang isali ang lahat ng naka-stage na nilalaman sa stash na nilikha, sabay na iwanan ito sa indeks.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git status -s M index.html M lib/simplegit.rb $ git stash --keep-index Naka-save na gumaganang direktoryo at estado ng indeks WIP sa master: 1b65b17 idinagdag sa indeks na file Ang HEAD ngayon ay nasa 1b65b17 idinagdag sa indeks na file $ git status -s M index.html</code></pre> </div> </div> <div class="paragraph"> <p>Iba pang karaniwan na bagay na gugustuhin mo sa stash ay para i-stash ang hindi sinubaybayan na mga file pati na rin ang sinibaybayan. Bilang default, ang <code>git stash</code> ay mag-stash lamang ng binagong at naka-stage na <em>tracked</em> files. Kung tinutukoy mo ang <code>--include-untracked</code> o <code>-u</code>, isasama ng Git ang mga file na hindi sinubaybayan sa nilikhang stash.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git status -s M index.html M lib/simplegit.rb ?? new-file.txt $ git stash -u Naka-save na gumaganang direktoryo at estado ng indeks WIP sa master: 1b65b17 idinagdag ang indeks na file Ang HEAD ngayon ay nasa 1b65b17 na idinagdag ang indeks na file $ git status -s $</code></pre> </div> </div> <div class="paragraph"> <p>Sa wakas, kung ikaw ay nagtutukoy ng flag na <code>--patch</code>, hindi i-stash ng Git ang lahat na binago ngunit sa halip ay mag-prompt sa iyo kung alin ang mga pagbabago na gusto mong i-stash at kung ano ang gusto mo na panatilihin sa iyong gumaganang direktoryo.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git stash --patch diff --git a/lib/simplegit.rb b/lib/simplegit.rb index 66d332e..8bb5674 100644 --- a/lib/simplegit.rb +++ b/lib/simplegit.rb @@ -16,6 +16,10 @@ class SimpleGit return `#{git_cmd} 2>&1`.chomp end end + + def show(treeish = 'master') + command("git show #{treeish}") + end end test I-stash ang hunk na ito [y,n,q,a,d,/,e,?]? y Naka-save na gumaganang direktoryo at estado ng indeks WIP sa master: 1b65b17 idinagdag ang indeks na file</code></pre> </div> </div> </div> <div class="sect3"> <h3 id="_paglilikha_ng_isang_branch_mula_sa_isang_stash">Paglilikha ng isang Branch mula sa isang Stash</h3> <div class="paragraph"> <p>Kung ikaw ay nag-stash ng ilang trabaho, iwanan ito sa ilang saglit, at magpatuloy sa branch kung saan ikaw nag-stash ng trabaho, maaari kang magkaroon ng isang problema sa muling paglalapat ng trabaho. Kung sinusubukan ng paglalapat na baguhin ang isang file na binago mo na, makakakuha ka ng salungatan sa pagsasama-sama at kakailanganin mong lutasin ito. Kung gusto ang isang mas madaling paraan upang suriing muli ang mga naka-stash na pagbabago, maaari mong patakbuhin ang <code>git stash branch <branch></code>, kung saan ay lumilikha ng isang bagong branch para sa iyong napiling pangalan ng branch, nagsusuri sa iyong commit kapag ikaw ay nag-stash ng iyong trabaho, muling naglalapat sa iyong trabaho doon, at pagkatapos ay naghuhulog sa stash kung ito ay matagumpay na nailalapat:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git stash branch testchanges M index.html M lib/simplegit.rb Nagpalit sa isang bagong branch na 'testchanges' Sa branch na testchanges Mga pagbabago na iko-commit: (gumamit ng "git reset HEAD <file>..." upang mag-unstage) nabago: index.html Mga pagbabago na hindi na-stage para sa commit: (gumamit ng "git add <file>..." upang baguhin kung ano ang iko-commit) (gumamit ng "git checkout -- <file>..." upang iwaksi ang mga pagbabago sa gumaganang direktoryo) nabago: lib/simplegit.rb Inilaglag ang refs/stash@{0} (29d385a81d163dfd45a452a2ce816487a6b8b014)</code></pre> </div> </div> <div class="paragraph"> <p>Ito ay isang magandang shortcut upang madaling maisauli ang naka-stash na trabaho at trabahuin ito sa isang bagong branch.</p> </div> </div> <div class="sect3"> <h3 id="_git_clean">Paglilinis ng iyong Tinatrabahuang Direktoryo</h3> <div class="paragraph"> <p>Sa wakas, maaaring hindi mo nais na i-stash ang ilang trabaho o mga file sa iyong tinatrabahuang direktoryo, ngunit palayain mo lang sila. Ang utos na <code>git clean</code> ang gagawa nito para sa iyo.</p> </div> <div class="paragraph"> <p>Ilan sa mga kariniwang dahilan para rito ay maaaring alisin ang cruft na binuo ng mga merge o mga panlabas na kagamitan o upang alisin ang mga build artifact upang mapatakbo ang isang malinis na build.</p> </div> <div class="paragraph"> <p>Nanaisin mong maging maingat sa kautusan na ito, dahil ito ay idinisenyo upang tanggalin ang mga file mula sa iyong tinatrabahuang direktoryo na hindi sinubaybayan. Kung nagbago ang iyong isipan, madalas na walang pagkukuha ng nilalaman ng mga file na iyon. Isang mas ligtas na opsyon ay ang magpatakbo ng <code>git stash --all</code> upang tanggalin ang lahat ngunit i-save ito sa isang stash.</p> </div> <div class="paragraph"> <p>Ipagpalagay na nais mong magtanggal ng mga cruft na file o maglinis ng iyong tinatrabahuang direktoryo, maaari mo itong gawin gamit ang <code>git clean</code>. Upang alisin ang lahat ng mga hindi sinubaybayan na mga file sa iyong tinatrabahuang direktoryo, maaari mong patakbuhin ang <code>git clean -f -d</code>, na nagtatanggal ng anumang mga file at pati na rin ang anumang mga subdirectory na nagiging walang laman bilang resulta. Ang <code>-f</code> ay nangangahulugan na <em>force</em> o "gawin talaga ito".</p> </div> <div class="paragraph"> <p>Kung gusto mong makita kung ano ang gagawin nito, maaari mong patakbuhin ang utos na may opsyon na <code>-n</code>, na nangangahulugan na “gumawa ng isang dry run at sabihin sa akin kung ano ang iyong inalis”.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git clean -d -n Would remove test.o Would remove tmp/</code></pre> </div> </div> <div class="paragraph"> <p>Bilang default, ang utos na <code>git clean</code> ay tinatanggal lamang ang mga hindi sinubaybayan na mga file na hindi binabalewala. Anumang file na tumutugma sa isang pattern sa iyong <code>.gitignore</code> o ibang hindi pansinin ng mga file ay hindi matatanggal. Kung gusto mo na tanggalin din ang mga file na ito, tulad ng tanggalin lahat ang mga file na <code>.o</code> na binuo mula sa isang build upang makakagawa ka ng buong malinis na build, maaari kang magdagdag ng <code>-x</code> sa clean na utos.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git status -s M lib/simplegit.rb ?? build.TMP ?? tmp/ $ git clean -n -d Magtanggal build.TMP Magtanggal tmp/ $ git clean -n -d -x Magtanggal build.TMP Magtanggal test.o Magtanggal tmp/</code></pre> </div> </div> <div class="paragraph"> <p>Kung hindi mo alam kung ano ang gagawin ng utos na <code>git clean</code>, palaging patakbuhin ito ng may isang` -n` muna upang doubleng suriin bago baguhin ang <code>-n</code> sa isang` -f` at gagawain ito sa totoo. Ang iba pang mga paraan na maaari kang maging maingat tungkol sa proseso ay ang patakbuhin ito sa flag ng <code>-i</code> o “interactive”.</p> </div> <div class="paragraph"> <p>Papatakbuhin nito ang clean na utos sa isang interactive na mode.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git clean -x -i Magtanggal ng mga sumusunod na mga aytem: build.TMP test.o *** Mga kautusan *** 1: clean 2: mag-filter gamit ang pattern 3: pumili ng mga numero 4: tanungin ang bawat isa 5: huminto 6: tulong Ano na></code></pre> </div> </div> <div class="paragraph"> <p>Sa ganitong paraan maaari kang humakbang sa bawat file nang isa-isa o tukuyin ang mga pattern para sa pagtanggal nang interactive.</p> </div> <div class="exampleblock"> <div class="content"> <div class="paragraph"> <p>May isang pambihirang sitwasyon kung saan maaaring kailangan mong labis na malakas sa pagtatanong sa Git upang linisin ang iyong tinatrabahuang direktoryo. Kung ikaw ay nasa isang gumaganang direktoryo kung saan mo kinopya o kopyahin ang iba pang mga repository ng Git (marahil bilang mga submodule), kahit na ang <code>git clean -fd</code> ay tatangging tanggalin ang mga direktoryo na iyon. Sa mga sitwasyong katulad nito, kailangan mong magdagdag ng pangalawang opsyon na <code>-f</code> para sa diin.</p> </div> </div> </div> </div> <div id="nav"><a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Staging-na-Interactive">prev</a> | <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pag-sign-sa-Iyong-Trabaho">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>