CINXE.COM
Git - Pagpipili ng Rebisyon
<!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 - Pagpipili ng Rebisyon</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-Revision-Selection">English</a>. </p> <p> Full translation available in <table> <tr><td><a href="/book/az/v2/Git-Al%c9%99tl%c9%99ri-Reviziya-Se%c3%a7imi">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-Git-%d0%ba%d0%b0%d1%82%d0%be-%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82">български език</a>,</td></tr> <tr><td><a href="/book/de/v2/Git-Tools-Revisions-Auswahl">Deutsch</a>,</td></tr> <tr><td><a href="/book/es/v2/Herramientas-de-Git-Revisi%c3%b3n-por-selecci%c3%b3n">Español</a>,</td></tr> <tr><td><a href="/book/fr/v2/Utilitaires-Git-S%c3%a9lection-des-versions">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-%e3%83%aa%e3%83%93%e3%82%b8%e3%83%a7%e3%83%b3%e3%81%ae%e9%81%b8%e6%8a%9e">日本語</a>,</td></tr> <tr><td><a href="/book/ko/v2/Git-%eb%8f%84%ea%b5%ac-%eb%a6%ac%eb%b9%84%ec%a0%84-%ec%a1%b0%ed%9a%8c%ed%95%98%ea%b8%b0">한국어</a>,</td></tr> <tr><td><a href="/book/nl/v2/Git-Tools-Revisie-Selectie">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%92%d1%8b%d0%b1%d0%be%d1%80-%d1%80%d0%b5%d0%b2%d0%b8%d0%b7%d0%b8%d0%b8">Русский</a>,</td></tr> <tr><td><a href="/book/sl/v2/Orodja-Git-Izbira-revizije">Slovenščina</a>,</td></tr> <tr><td><a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Pagpipili-ng-Rebisyon">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%92%d0%b8%d0%b1%d1%96%d1%80-%d1%80%d0%b5%d0%b2%d1%96%d0%b7%d1%96%d0%b9">Українська</a></td></tr> <tr><td><a href="/book/zh/v2/Git-%e5%b7%a5%e5%85%b7-%e9%80%89%e6%8b%a9%e4%bf%ae%e8%ae%a2%e7%89%88%e6%9c%ac">简体中文</a>,</td></tr> </table> </p> <p> Partial translations available in <table> <tr><td><a href="/book/cs/v2/Git-Tools-Revision-Selection">Č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-Revision-Selection">Македонски</a>,</td></tr> <tr><td><a href="/book/pl/v2/Narz%c4%99dzia-Gita-Wskazywanie-rewizji">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%98%d0%b7%d0%b1%d0%be%d1%80-%d1%80%d0%b5%d0%b2%d0%b8%d0%b7%d0%b8%d1%98%d0%b0">Српски</a>,</td></tr> <tr><td><a href="/book/uz/v2/Git-Tools-Revision-Selection">Ўзбекча</a>,</td></tr> <tr><td><a href="/book/zh-tw/v2/Git-%e5%b7%a5%e5%85%b7-Revision-Selection">繁體中文</a>,</td></tr> </table> </p> <p> Translations started for <table> <tr><td><a href="/book/be/v2/Git-Tools-Revision-Selection">Беларуская</a>,</td></tr> <tr><td><a href="/book/fa/v2/Git-Tools-Revision-Selection" dir="rtl">فارسی</a>,</td></tr> <tr><td><a href="/book/id/v2/Git-Tools-Revision-Selection">Indonesian</a>,</td></tr> <tr><td><a href="/book/it/v2/Git-Tools-Revision-Selection">Italiano</a>,</td></tr> <tr><td><a href="/book/ms/v2/Git-Tools-Revision-Selection">Bahasa Melayu</a>,</td></tr> <tr><td><a href="/book/pt-br/v2/Git-Tools-Revision-Selection">Português (Brasil)</a>,</td></tr> <tr><td><a href="/book/pt-pt/v2/Ferramentas-do-Git-Revision-Selection">Português (Portugal)</a>,</td></tr> <tr><td><a href="/book/sv/v2/Git-Tools-Revision-Selection">Svenska</a>,</td></tr> <tr><td><a href="/book/tr/v2/Git-Ara%c3%a7lar%c4%b1-D%c3%bczeltme-Se%c3%a7imi">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" class="active">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">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.1 Mga Git na Kasangkapan - Pagpipili ng Rebisyon</h1> <div> <p>Sa ngayon, natutunan mo ang karamihan ng pang-araw-araw na mga utos at mga workflow na kailangan mong pamahalaan o pangalagaan ang Git na repositoryo para sa kontrol ng iyong source code. Nagawa mo na ang mga pangunahing gawain ng pagsubaybay at pag-commit ng mga file, at napakinabangan mo ang kapayarihan sa staging na lawak at magaan na paksa na pag-branch at pag-merge.</p><p>Ngayon ikaw ay magsiyasat ng bilang sa sobrang makapangyarihan na bagay na magagawa ng Git na maaaring hindi mo na kinakailangang gamitin sa pang-araw-araw ngunit maaaring kailangan mo sa isang punto.</p> <h2 id="_revision_selection">Pagpipili ng Rebisyon</h2> <div class="paragraph"> <p>Ang Git ay nagpapahintulot sa iyo upang sumangguni sa isang itinakdang mga commit o isang lawak ng mga commit sa maraming mga paraan. Hindi nila kinakailangan na halata ngunit nakakatulong upang malaman.</p> </div> <div class="sect3"> <h3 id="_solong_mga_rebisyon">Solong mga Rebisyon</h3> <div class="paragraph"> <p>Maaari mong malinaw na i-refer ang anumang solong commit sa buong ito, 40-karakter na SHA-1 hash, ngunit may mga higit pa na pantaong-palakaibigan na mga paraan upang sumangguni rin sa mga commit. Ang seksyon na ito ng mga outline ng iba’t ibang mga paraan na maaari mong isangguni sa anumang commit.</p> </div> </div> <div class="sect3"> <h3 id="_ang_maikling_sha_1">Ang Maikling SHA-1</h3> <div class="paragraph"> <p>Ang Git ay sapat na matalino upang malaman kung anong commit ang iyong nare-refer na kung bigyan mo ang mga unang ilang mga karakter ng SHA-1 hash, hangga’t ang bahagyang hash ay hindi bababa sa apat na mga karakter ang haba at hindi malabo; yan ay, walang ibang bagay sa database ng bagay na maaaring magkakaroon ng hash na nagmumula ng parehong prefix.</p> </div> <div class="paragraph"> <p>Halimbawa, upang suriin ang tiyak na commit na kung saan ka kilala mo ang dinagdag na ilang mga pag-andar, maaari mong patakbuhin muna ang <code>git log</code> na utos upang hanapin ang commit:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log commit 734713bc047d87bf7eac9674765ae793478c50d3 Author: Scott Chacon <schacon@gmail.com> Date: Fri Jan 2 18:32:33 2009 -0800 fixed refs handling, added gc auto, updated tests commit d921970aadf03b3cf0e71becdaab3147ba71cdef Merge: 1c002dd... 35cfb2b... Author: Scott Chacon <schacon@gmail.com> Date: Thu Dec 11 15:08:43 2008 -0800 Merge commit 'phedders/rdocs' commit 1c002dd4b536e7479fe34593e72e6c6c1819e53b Author: Scott Chacon <schacon@gmail.com> Date: Thu Dec 11 14:58:32 2008 -0800 added some blame and merge stuff</code></pre> </div> </div> <div class="paragraph"> <p>Sa kasong ito, sabihin mong interesado ka sa commit na kanino ang hash nagsisimula ng <code>1c002dd...</code>. Maaari mong siyasatin ang commit na may anumang sumusunod na mga pagkakaiba-iba sa <code>git show</code> (ipagpalagay na mas maikling mga bersyon ay hindi malabo):</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git show 1c002dd4b536e7479fe34593e72e6c6c1819e53b $ git show 1c002dd4b536e7479f $ git show 1c002d</code></pre> </div> </div> <div class="paragraph"> <p>Maaaring malaman ng Git ang isang maikli, natatanging pagpapaiklipara sa iyong SHA-1 na mga halaga. Kung ikaw ay nagpasa ng <code>--abbrev-commit</code> sa <code>git log</code> na utos, ang output ay gumamit ng mas maikling halaga ngunit panatilihin sila na katangi-tangi; ito ay mga default sa paggamit ng pitong mga karakter ngunit ginagawa nila ito na mas matagal kung kinakailangan upang mapanatiling hindi malinaw ang SHA-1:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log --abbrev-commit --pretty=oneline ca82a6d changed the version number 085bb3b removed unnecessary test code a11bef0 first commit</code></pre> </div> </div> <div class="paragraph"> <p>Sa pangkalahatan, walo sa sampung mga karakter ay higit pa sa sapat upang maging natatanging sa loob ng isang proyekto. Halimbawa, sa Oktubre 2017, ang Linux na kernel (na kung saan ay isang medyo malaki na proyekto) ay may higit sa 700,000 na mga commit at halos anim na milyong na mga bagay, na may walang dalang mga bagay na magkatulad ang mga SHA-1 ay magkapareho sa unang 11 na mga karakter.</p> </div> <div class="exampleblock"> <div class="title">Example 10. ISANG MAIKLING PAALALA TUNGKOL SA SHA-1</div> <div class="content"> <div class="paragraph"> <p>Maraming tao ay magiging nababahala sa isang punto na sila ay, sa pamamagitan ng sapalaran na pagkakataon, mayroong dalawang magkakaibang bagay sa kanilang repositoryo na ang hash ay pareho sa SHA-1 na halaga. Ano ngayon?</p> </div> <div class="paragraph"> <p>Kung mangyari na ikaw ay mag-commit sa isang bagay na nag-hash sa parehong SHA-1 na halaga bilang isang nakaraang <em>ibang</em> bagay sa iyong repositoryo, Ang Git ay makakita ng nakaraan na bagay na nasa iyong Git na database, ipagpalagay na ito ay nakasulat na at muli lang gamitin ito. Kung subukan mong tingnan ang bagay na iyon muli sa isang punto, ikaw ay makakakuha lagi ng datos sa unang bagay.</p> </div> <div class="paragraph"> <p>Gayunpaman, dapat mong malaman kung gaano katawa ang pagkawala sa sitwasyon na ito. Ang SHA-1 na digest ay 20 bytes o 160 bits. Ang bilang ng random na naka-hash na mga bagay na kinakailangan siguraduhin ang 50% na posibilidad ng isang banggaan ay mga 2<sup>80</sup> (ang formula para sa pagtukoy ng posibilidad ng banggaan ay <code>p = (n(n-1)/2) * (1/2^160))</code>. 2<sup>80</sup> ay 1.2 x 10<sup>24</sup> o 1 milyon bilyon bilyon. Iyon ay 1,200 na beses ang bilang ng mga butil ng buhagin sa lupa.</p> </div> <div class="paragraph"> <p>Narito ang isang halibawa na magbibigay sa iyo ng ideya kung ano ang kukuha nitong SHA-1 na banggaan Kung lahat sa 6.5 na bilyon na mga tayo sa Lupa ay nag-program, sa bawat segundo, sa bawat isa ay gumagawa ng code na katumbas sa buong Linux na kernel na kasaysayan(3.6 na milyong Git na mga bagay) at itinutulak into sa isang napakalaking Git na repositoryo, ito ay kukuha ng halos dalawang taon hanggang ang repositoryong ito ay maglalaman ng sapat na mga bagay upang magkaroon ng 50% na posibilidad sa isang SHA-1 na bagay na banggaan. Kaya naman, ang SHA-1 na banggaan ay mas malamang kaysa sa bawat miyembro sa iyong programming na koponan na inatake o napatay ng mga lobo sa hindi nauugnay na insidente sa parehong gabi.</p> </div> </div> </div> </div> <div class="sect3"> <h3 id="_branch_references">Mga Reperensiya ng Branch</h3> <div class="paragraph"> <p>Isang tapat na paraan upang i-refer ang isang partikular na commit na kung itong commit na nasa tuktok na isang branch; sa ganitong kaso, maaari mo lamang gamitin ang pangalan ng branch sa anumang Git na utos na inaasahan ng isang reperensiya sa isang commit. Halimbawa, kung gusto mong suriin ang huling commit sa bagay sa branch, ang sumusunod na mga utos ay katumbas, ipagpalagay na ang <code>topic1</code> na branch ay tumuturo sa commit sa <code>ca82a6d...</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git show ca82a6dff817ec66f44342007202690a93763949 $ git show topic1</code></pre> </div> </div> <div class="paragraph"> <p>Kung gusto mong makita kung saang tiyak na SHA-1 na branch tumuturo ito, o kung gusto mong makita ang kung anumang mga halimbawang ito na bumababa sa termino ng SHA-1s, maaari kang gumamit ng Git plumbing na kasangkapan na tinatawag na <code>rev-parse</code>. You can see <a href="/book/tl/v2/ch00/_git_internals">Mga Panloob ng GIT</a> for more information about plumbing tools; basically, <code>rev-parse</code> exists for lower-level operations and isn’t designed to be used in day-to-day operations. Gayunpaman, maaari itong makakatulong kung minsan kapag ikaw ay nangangailangan upang makita kung ano talaga ang nangyayari. Dito maaari kang magpatakbo ng <code>rev-parse</code> sa iyong branch.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git rev-parse topic1 ca82a6dff817ec66f44342007202690a93763949</code></pre> </div> </div> </div> <div class="sect3"> <h3 id="_git_reflog">Mga Shortname ng RefLog</h3> <div class="paragraph"> <p>Isa sa mga bagay ng Git ay gumawa ng background habang ikaw ay nagtratrabaho ng malayo ay magtago ng “reflog” — isang log na kung saan ang iyong HEAD at branch na mga reperensiya ay para sa huling ilang mga buwan.</p> </div> <div class="paragraph"> <p>Maaari mong makita ang iyong reflog sa pamamagitan ng paggamit ng <code>git reflog</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git reflog 734713b HEAD@{0}: commit: fixed refs handling, added gc auto, updated d921970 HEAD@{1}: merge phedders/rdocs: Merge made by the 'recursive' stategy. 1c002dd HEAD@{2}: commit: added some blame and merge stuff 1c36188 HEAD@{3}: rebase -i (squash): updating HEAD 95df984 HEAD@{4}: commit: # This is a combination of two commits. 1c36188 HEAD@{5}: rebase -i (squash): updating HEAD 7e05da5 HEAD@{6}: rebase -i (pick): updating HEAD</code></pre> </div> </div> <div class="paragraph"> <p>Sa tuwing iyong branch tip ay na-update sa anumang rason, ang Git ay nag-iimbak ng impormasyon para sa iyong temporaryong kasaysayan. Maaari mong gamitin ang iyong reflog na datos upang i-refer din ang mga lumang mga commit. Halimbawa, kung ikaw ay gustong makakita ng panglimang bago ang halaga sa HEAD ng iyong repositoryo, maaari mong gamitin ang <code>@{5}</code> na reperensiya na nakikita mo sa reflog output:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git show HEAD@{5}</code></pre> </div> </div> <div class="paragraph"> <p>Maaari mo ding gamitin ang syntax na ito upang makita kung saan ang branch ay ilang dami ng oras ang nakalipas. Halimbawa, para makita kung saan ang iyong <code>master</code> na branch kahapon, maaari kang mag-type ng</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git show master@{yesterday}</code></pre> </div> </div> <div class="paragraph"> <p>Iyon ay magpapakita sa iyo kung saan ang tip ng iyong <code>master</code> na branch kahapon. Ang pamamaraan na ito ay gumagana lamang para sa datos na nasa iyong reflog pa, kaya ikaw ay hindi makagamit nito ng mga commit na mas luma pa sa ilang mga buwan.</p> </div> <div class="paragraph"> <p>Upang makita ang reflog na impormasyon na naka-format tulad ng <code>git log</code> na output, maaari kang magpatakbo ng <code>git log -g</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log -g master commit 734713bc047d87bf7eac9674765ae793478c50d3 Reflog: master@{0} (Scott Chacon <schacon@gmail.com>) Reflog message: commit: fixed refs handling, added gc auto, updated Author: Scott Chacon <schacon@gmail.com> Date: Fri Jan 2 18:32:33 2009 -0800 fixed refs handling, added gc auto, updated tests commit d921970aadf03b3cf0e71becdaab3147ba71cdef Reflog: master@{1} (Scott Chacon <schacon@gmail.com>) Reflog message: merge phedders/rdocs: Merge made by recursive. Author: Scott Chacon <schacon@gmail.com> Date: Thu Dec 11 15:08:43 2008 -0800 Merge commit 'phedders/rdocs'</code></pre> </div> </div> <div class="paragraph"> <p>Mahalagang tandaan na ang reflog na impormasyon ay mahigpit na lokal — ito ay isang log lamang kung ano <em>ang iyong</em> nagawa sa <em>iyong</em> repositoryo. Ang mga reperensiya ay hindi pareho sa ibang kopya ng repositoryo; saka, pagkatapos ka mag-clone ng repositoryo, ikaw ay magkakarooon ng walang laman na reflog, na bilang walang aktibidad na naganap pa sa iyong repositoryo. Pagtatakbo ng <code>git show HEAD@{2.months.ago}</code> ay ipapakita sa iyo ang pagtutugma ng commit lamang kung ikaw ay nag-clone ng proyekto na hindi bababa sa dalawang buwan na nakalipas — kung na-clone mo itong mas kamakailan pa kaysa sa iyon, makikita mo lamang ang iyong unang lokal na commit.</p> </div> <div class="admonitionblock tip"> <table> <tr> <td class="icon"> <div class="title">Tip</div> </td> <td class="content"> <div class="title">Isipin ang reflog bilang bersyon ng Git sa kasaysayan ng shell</div> <div class="paragraph"> <p>Kung ikaw ay mayroong UNIX o Linux na karanasan, maaari mong isipin na ang iyong reflog bilang bersyon ng Git sa kasaysayan ng shell, na nagpapahiwatig na kung ano ang naroroon ay malinaw na may kaugnayan lamang para sa iyo at iyong “sesyon”, at walang kinalaman sa sinuman na maaaring nagtratrabaho sa parehong makina.</p> </div> </td> </tr> </table> </div> </div> <div class="sect3"> <h3 id="_mga_reperensiya_ng_kanunu_nunuan">Mga Reperensiya ng Kanunu-nunuan</h3> <div class="paragraph"> <p>Ang iba pang pangunahing paraan upang tiyakin ang commit ay dumaan sa kanang kanunu-nunuan. Kung ikaw ay maglagay ng <code>^</code> (caret) sa katupusan ng reperensiya, ang Git ay naglulutas nito upang mangahulugang magulang sa commit na iyon. Ipagpalagay na tumugin ka sa kasaysayan ng iyong proyekto:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log --pretty=format:'%h %s' --graph * 734713b fixed refs handling, added gc auto, updated tests * d921970 Merge commit 'phedders/rdocs' |\ | * 35cfb2b Some rdoc changes * | 1c002dd added some blame and merge stuff |/ * 1c36188 ignore *.gem * 9b29157 add open3_detach to gemspec file list</code></pre> </div> </div> <div class="paragraph"> <p>Pagkatapos, maaari mong makita ang nakaraaang commit sa pamamagitan sa pagtiyak ng <code>HEAD^</code>, na ibig sabihin ay “ang magulang ng HEAD”:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git show HEAD^ commit d921970aadf03b3cf0e71becdaab3147ba71cdef Merge: 1c002dd... 35cfb2b... Author: Scott Chacon <schacon@gmail.com> Date: Thu Dec 11 15:08:43 2008 -0800 Merge commit 'phedders/rdocs'</code></pre> </div> </div> <div class="admonitionblock note"> <table> <tr> <td class="icon"> <div class="title">Note</div> </td> <td class="content"> <div class="title">Pag-alis ng caret sa Windows</div> <div class="paragraph"> <p>Sa Windows sa <code>cmd.exe</code>, <code>^</code> ay isang espesyal na karakter at nangangailangan upang tratuhin ng naiiba. Maaari mong doblehin ito o maglagay ng commit na reperensiya sa mga quote:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git show HEAD^ # will NOT work on Windows $ git show HEAD^^ # OK $ git show "HEAD^" # OK</code></pre> </div> </div> </td> </tr> </table> </div> <div class="paragraph"> <p>Maaari mo ring tukuyin ang bilang pagkatapos ng <code>^</code> – halimbawa, ang <code>d921970^2</code> ay ibig sabihin “ang ikalawang magulang sa d921970.” Ang syntax na ito ay kapaki-pakinabang lamang kung ang merge na mga commit, na may higit pa sa isang magulang. Ang unang magulang ay isang branch na ikaw ay nandoon noong ikaw ay nag-merge, at ang pangalawa ay ang commit na na-merge sa:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git show d921970^ commit 1c002dd4b536e7479fe34593e72e6c6c1819e53b Author: Scott Chacon <schacon@gmail.com> Date: Thu Dec 11 14:58:32 2008 -0800 added some blame and merge stuff $ git show d921970^2 commit 35cfb2b795a55793d7cc56a6cc2060b4bb732548 Author: Paul Hedderly <paul+git@mjr.org> Date: Wed Dec 10 22:22:03 2008 +0000 Some rdoc changes</code></pre> </div> </div> <div class="paragraph"> <p>Ang iba pang pangunahing kanunu-nunuan na pagtutukoy sa <code>~</code> (tilde). Ito rin ang tumutukoy sa unang magulang, kaya ang <code>HEAD~</code> at <code>HEAD^</code> ay magkatumbas. Ang pagkakaiba ay nagiging maliwanag kapag ikaw ang tumukoy ng isang numero. Ang <code>HEAD~2</code> ay nangangahulugang “ang unang magulang sa unang magulang,” o “ang lolo o lola” — ito ay dumadaan sa unang mga magulang sa bilang sa maraming naitukoy. Halimbawa, sa kasaysayan na nakalista na mas maaga, ang <code>HEAD~3</code> maaaring maging</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git show HEAD~3 commit 1c3618887afb5fbcbea25b7c013f4e2114448b8d Author: Tom Preston-Werner <tom@mojombo.com> Date: Fri Nov 7 13:47:59 2008 -0500 ignore *.gem</code></pre> </div> </div> <div class="paragraph"> <p>Maaari itong maisulat na <code>HEAD^^^</code>, na muli ang unang magulang sa unang magulang sa unang magulang:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git show HEAD^^^ commit 1c3618887afb5fbcbea25b7c013f4e2114448b8d Author: Tom Preston-Werner <tom@mojombo.com> Date: Fri Nov 7 13:47:59 2008 -0500 ignore *.gem</code></pre> </div> </div> <div class="paragraph"> <p>Maaari mo ring pagsamahin ang mga syntax na ito — maaari kang makakuha ng pangalawang magulang sa nakaraang reperensiya (ipagpapalagay na ito ay na-merge commit) sa pamamagitan ng paggamit ng <code>HEAD~3^2</code>, at iba pa.</p> </div> </div> <div class="sect3"> <h3 id="_commit_ranges">Mga Lawak ng Commit</h3> <div class="paragraph"> <p>Ngayon na magagawa mo na ang pagtukoy sa indibidwal na mga commit, tingnan natin kung paano magtukoy ng mga lawak sa mga commit. Ito ay partikular na kapaki-pakinabang para sa pagmamahala ng iyong mga branch — kung mayroon kang maraming mga branch, maaari mong gamitin ang lawak ng pagtutukoy upang sagutin ang mga tanong tulad ng, “Anong trabaho ang nasa branch na ito na hindi ko pa nai-merge sa aking pangunahing branch?”</p> </div> <div class="sect4"> <h4 id="_dobleng_dot">Dobleng Dot</h4> <div class="paragraph"> <p>Ang pinaka-karaniwang na lawak na pagtutukoy ay ang doubleng-dot na syntax. Ito talaga ay nagtatanong sa Git na malutas ang lawak ng mga commit na mapupuntahan mula sa isang commit ngunit hindi maabot mula sa kabila. Halimbawa, sabihin na mayroon kang isang kasaysayan ng Git na mukhang ganito <a href="/book/tl/v2/ch00/double_dot">Halimbawa ng kasaysayan sa lawak ng pagpipilian.</a>.</p> </div> <div id="double_dot" class="imageblock"> <div class="content"> <img src="/book/tl/v2/images/double-dot.png" alt="Halimbawa sa kasaysayan para sa lawak ng pagpipilian."> </div> <div class="title">Figure 137. Halimbawa ng kasaysayan sa lawak ng pagpipilian.</div> </div> <div class="paragraph"> <p>Sabihin na gusto mong makita ang kung ano ang nasa iyong <code>eksperimento</code> na branch na hindi pa pinagsama sa iyong <code>master</code> na branch. Maaari kang magtanong sa Git upang ipakita sa iyo ang log ng mga commit na may <code>master..experiment</code> — ibig sabihin “ang lahat ng mga commit ay mapupuntahan mula sa eksperimento na hindi pa naabot mula sa master.” Para sa kapakanan ng kaiklian at kalinawan sa mga halimbawang ito, ang mga letra sa commit na mga bagay mula sa dayagram ay ginagamit sa lugar sa aktwal na log output sa pagkakasunod-sunod na sila ay magpakita:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log master..experiment D C</code></pre> </div> </div> <div class="paragraph"> <p>Kung, sa kabila, ikaw ay gustong makita ang kabaligtaran — lahat ng mga commit sa <code>master</code> na wala sa <code>experiment</code> — maaari mong baligtarin ang mga pangalan ng branch. Ang <code>experiment..master</code> ay nagpapakita sa iyo ng lahat sa <code>master</code> na hindi maabot mula sa <code>experiment</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log experiment..master F E</code></pre> </div> </div> <div class="paragraph"> <p>Ito ay kapaki-pakinabang kung ikaw ay gustong magtago ng <code>experiment</code> branch na napapanahon at prebiyu sa kung ano ang nai-merge. Isa pang madalas gamitin sa syntax na ito ay tingnan kung ano ang iyong itutulak sa isang remote:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log origin/master..HEAD</code></pre> </div> </div> <div class="paragraph"> <p>Ang utos na ito ay nagpapakita sa iyo sa anumang mga commit sa iyong kasalukuyang branch na wala pa sa <code>master</code> na branch sa iyong <code>origin</code> na remote. Kung ikaw ay magpatakbo ng <code>git push</code> ang iyong kasalukuyang branch ay nag-track sa <code>origin/master</code>, ang mga commit ay nailista sa pamamagitan ng <code>git log origin/master..HEAD</code> ay ang mga commit na iliipat sa server. Maaari mo ring iwanan ang isang bahagi ng syntax para magkaroon ng Git assume sa <code>HEAD</code>. Halimbawa, Maaari kang makakuha ng parehong mga resulta tulad ng sa nakaraang halimbawa sa pamamagitan nang pag-type ng <code>git log origin/master..</code> — Git substitutes <code>HEAD</code> kung nawala ang isang panig.</p> </div> </div> <div class="sect4"> <h4 id="_maramihang_mga_punto">Maramihang mga Punto</h4> <div class="paragraph"> <p>Ang dobleng-dot na syntax ay kapaki-pakinabang bilang isang shorthand, ngunit marahil gusto mong magtukoy ng higit pa sa dalawang mga branch upang ipahiwatig ang mga rebisyon, tulad ng nakikita kung ano ang mga commit na nasa ilang mga branch na wala sa branch na kasalukyang nasa iyo. Git allows you to do this by using either the <code>^</code> character or <code>--not</code> before any reference from which you don’t want to see reachable commits. Kaya naman, ang mga sumusunod na tatlong mga utos ay katumbas:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log refA..refB $ git log ^refA refB $ git log refB --not refA</code></pre> </div> </div> <div class="paragraph"> <p>Ito ay maganda dahil kasama ang syntax na ito ay maaari kang magtukoy ng higit dalawang mga reperensiya sa iyong query, na kung saan ikaw ay hindi makagawa gamit ang dobleng-dot na syntax. Halimbawa, kung gusto mong makita ang lahat ng mga commit na maaaring mapuntahan mula sa <code>refA</code> o <code>refB</code> ngunit hindi mula sa <code>refC</code>, maaari mong gamitin ang alinman sa:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log refA refB ^refC $ git log refA refB --not refC</code></pre> </div> </div> <div class="paragraph"> <p>Ginagawa ito para sa isang napakamakapangyarihan na rebisyong query na sistema na dapat makatulong sa iyo na para malaman kung ano ang nasa iyong mga branch.</p> </div> </div> <div class="sect4"> <h4 id="_triple_dot">Triple na Dot</h4> <div class="paragraph"> <p>Ang huling pangunahing na pagpili ng hanay na syntax ay ang tripleng-dot na syntax, na tumutukoy sa lahat ng mga commit na maaaring abutin sa <em>alinman</em> sa dalawang mga reperensiya ngunit hindi sa pamamagitan ng dalawang magkapareho. Tingnan uli ang halimbawa sa commit na kasaysayan sa <a href="/book/tl/v2/ch00/double_dot">Halimbawa ng kasaysayan sa lawak ng pagpipilian.</a>. Kung gusto mong makita kung ano ang nasa <code>master</code> o <code>experiment</code> ngunit wala sa anumang karaniwang mga reperensiya, maaari kang magpatakbo ng:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log master...experiment F E D C</code></pre> </div> </div> <div class="paragraph"> <p>Muli, ito ay nagbibigay sa iyo ng normal na <code>log</code> na output ngunit nagpapakita lamang sa commit na impormasyon para sa apat na mga commit, lumilitaw sa tradisyonal na commit na petsa ng pagkasunod-sunod.</p> </div> <div class="paragraph"> <p>Isang karaniwang switch na gumagamit ng <code>log</code> na utos sa kasong ito ay <code>--left-right</code>, na kung saan ay nagpapakita kung saan na panig sa lawak ng bawat commit na nasa loob. Ito ay nakakatulong na makagawa ng output na mas kapaki-pakinabang:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git log --left-right master...experiment < F < E > D > C</code></pre> </div> </div> <div class="paragraph"> <p>Gamit ang mga kasangkapan, maaari mong mas madali maipaalam ni Get kung ano ang commit o mga commit na gusto mong siyasatin.</p> </div> </div> </div> <div id="nav"><a href="/book/tl/v2/GitHub-Buod">prev</a> | <a href="/book/tl/v2/Mga-Git-na-Kasangkapan-Staging-na-Interactive">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>