CINXE.COM
Git - Протоколите
<!DOCTYPE html> <html lang="mk"> <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 - Протоколите</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-on-the-Server-The-Protocols">English</a>. </p> <p> Full translation available in <table> <tr><td><a href="/book/az/v2/Server%e2%80%99d%c9%99-Git-Protokollar">azərbaycan dili</a>,</td></tr> <tr><td><a href="/book/bg/v2/GitHub-%d0%a1%d1%8a%d0%b7%d0%b4%d0%b0%d0%b2%d0%b0%d0%bd%d0%b5-%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%bd%d0%b0-%d0%b0%d0%ba%d0%b0%d1%83%d0%bd%d1%82">български език</a>,</td></tr> <tr><td><a href="/book/de/v2/Git-auf-dem-Server-Die-Protokolle">Deutsch</a>,</td></tr> <tr><td><a href="/book/es/v2/Git-en-el-Servidor-Los-Protocolos">Español</a>,</td></tr> <tr><td><a href="/book/fr/v2/Git-sur-le-serveur-Protocoles">Français</a>,</td></tr> <tr><td><a href="/book/gr">Ελληνικά</a>,</td></tr> <tr><td><a href="/book/ja/v2/Git%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc-%e3%83%97%e3%83%ad%e3%83%88%e3%82%b3%e3%83%ab">日本語</a>,</td></tr> <tr><td><a href="/book/ko/v2/Git-%ec%84%9c%eb%b2%84-%ed%94%84%eb%a1%9c%ed%86%a0%ec%bd%9c">한국어</a>,</td></tr> <tr><td><a href="/book/nl/v2/Git-op-de-server-De-protocollen">Nederlands</a>,</td></tr> <tr><td><a href="/book/ru/v2/Git-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-%d0%9f%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d1%8b">Русский</a>,</td></tr> <tr><td><a href="/book/sl/v2/Git-na-stre%c5%beniku-Protokoli">Slovenščina</a>,</td></tr> <tr><td><a href="/book/tl/v2/Git-sa-Server-Ang-Mga-Protokol">Tagalog</a>,</td></tr> <tr><td><a href="/book/uk/v2/Git-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d1%96-%d0%9f%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d0%b8">Українська</a></td></tr> <tr><td><a href="/book/zh/v2/%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e7%9a%84-Git-%e5%8d%8f%e8%ae%ae">简体中文</a>,</td></tr> </table> </p> <p> Partial translations available in <table> <tr><td><a href="/book/cs/v2/Git-na-serveru-Protokoly">Čeština</a>,</td></tr> <tr><td><a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%9f%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d1%82%d0%b5">Македонски</a>,</td></tr> <tr><td><a href="/book/pl/v2/Git-na-serwerze-Protoko%c5%82y">Polski</a>,</td></tr> <tr><td><a href="/book/sr/v2/%d0%93%d0%b8%d1%82-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d1%83-%d0%9f%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d0%b8">Српски</a>,</td></tr> <tr><td><a href="/book/uz/v2/Git-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b4%d0%b0-The-Protocols">Ўзбекча</a>,</td></tr> <tr><td><a href="/book/zh-tw/v2/%e4%bc%ba%e6%9c%8d%e5%99%a8%e4%b8%8a%e7%9a%84-Git-%e9%80%9a%e8%a8%8a%e5%8d%94%e5%ae%9a">繁體中文</a>,</td></tr> </table> </p> <p> Translations started for <table> <tr><td><a href="/book/be/v2/Git-on-the-Server-The-Protocols">Беларуская</a>,</td></tr> <tr><td><a href="/book/fa/v2/%da%af%db%8c%d8%aa-%d8%b1%d9%88%db%8c-%d8%b3%d8%b1%d9%88%d8%b1-%d9%be%d8%b1%d9%88%d8%aa%da%a9%d9%84%e2%80%8c%d9%87%d8%a7" dir="rtl">فارسی</a>,</td></tr> <tr><td><a href="/book/id/v2/Git-di-Server-Protokol">Indonesian</a>,</td></tr> <tr><td><a href="/book/it/v2/Git-on-the-Server-The-Protocols">Italiano</a>,</td></tr> <tr><td><a href="/book/ms/v2/Git-on-the-Server-The-Protocols">Bahasa Melayu</a>,</td></tr> <tr><td><a href="/book/pt-br/v2/Git-no-servidor-Os-Protocolos">Português (Brasil)</a>,</td></tr> <tr><td><a href="/book/pt-pt/v2/Git-no-Servidor-The-Protocols">Português (Portugal)</a>,</td></tr> <tr><td><a href="/book/sv/v2/Git-p%c3%a5-servern-Protokollen">Svenska</a>,</td></tr> <tr><td><a href="/book/tr/v2/Bir-Sunucuda-Git-Kurma-%c4%b0leti%c5%9fim-Kurallar%c4%b1-Protocols">Türkçe</a>.</td></tr> </table> </p> <hr class="sidebar"/> <p> The source of this book is <a href="https://github.com/progit2-mk/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/mk/v2/%d0%9f%d0%be%d1%87%d0%b5%d1%82%d0%be%d0%ba-%d0%97%d0%b0-%d0%b2%d0%b5%d1%80%d0%b7%d0%b8%d1%81%d0%ba%d0%b0-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d0%b0">Почеток</a></h2> <ol> <li> 1.1 <a href="/book/mk/v2/%d0%9f%d0%be%d1%87%d0%b5%d1%82%d0%be%d0%ba-%d0%97%d0%b0-%d0%b2%d0%b5%d1%80%d0%b7%d0%b8%d1%81%d0%ba%d0%b0-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d0%b0">За верзиска контрола</a> </li> <li> 1.2 <a href="/book/mk/v2/%d0%9f%d0%be%d1%87%d0%b5%d1%82%d0%be%d0%ba-%d0%9a%d1%80%d0%b0%d1%82%d0%ba%d0%b0-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d1%98%d0%b0-%d0%bd%d0%b0-Git">Кратка историја на Git</a> </li> <li> 1.3 <a href="/book/mk/v2/%d0%9f%d0%be%d1%87%d0%b5%d1%82%d0%be%d0%ba-%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-%d0%93%d0%b8%d1%82">Основи на Гит</a> </li> <li> 1.4 <a href="/book/mk/v2/%d0%9f%d0%be%d1%87%d0%b5%d1%82%d0%be%d0%ba-%d0%9a%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%bd%d0%b0%d1%82%d0%b0-%d0%bb%d0%b8%d0%bd%d0%b8%d1%98%d0%b0">Командната линија</a> </li> <li> 1.5 <a href="/book/mk/v2/%d0%9f%d0%be%d1%87%d0%b5%d1%82%d0%be%d0%ba-%d0%98%d0%bd%d1%81%d1%82%d0%b0%d0%bb%d0%b8%d1%80%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-Git">Инсталирање на Git</a> </li> <li> 1.6 <a href="/book/mk/v2/%d0%9f%d0%be%d1%87%d0%b5%d1%82%d0%be%d0%ba-First-Time-Git-Setup">First-Time Git Setup</a> </li> <li> 1.7 <a href="/book/mk/v2/%d0%9f%d0%be%d1%87%d0%b5%d1%82%d0%be%d0%ba-Getting-Help">Getting Help</a> </li> <li> 1.8 <a href="/book/mk/v2/%d0%9f%d0%be%d1%87%d0%b5%d1%82%d0%be%d0%ba-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> <li class='chapter'> <h2>2. <a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-%d0%94%d0%be%d0%b1%d0%b8%d0%b2%d0%b0%d1%9a%d0%b5-%d1%81%d0%ba%d0%bb%d0%b0%d0%b4%d0%b8%d1%88%d1%82%d0%b5-%d0%b7%d0%b0-Git">Основите на Git</a></h2> <ol> <li> 2.1 <a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-%d0%94%d0%be%d0%b1%d0%b8%d0%b2%d0%b0%d1%9a%d0%b5-%d1%81%d0%ba%d0%bb%d0%b0%d0%b4%d0%b8%d1%88%d1%82%d0%b5-%d0%b7%d0%b0-Git">Добивање складиште за Git</a> </li> <li> 2.2 <a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-%d0%a1%d0%bd%d0%b8%d0%bc%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%bc%d0%b5%d0%bd%d0%b8-%d0%b2%d0%be-%d1%81%d0%ba%d0%bb%d0%b0%d0%b4%d0%b8%d1%88%d1%82%d0%b5%d1%82%d0%be">Снимање на промени во складиштето</a> </li> <li> 2.3 <a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-%d0%9f%d1%80%d0%b8%d0%ba%d0%b0%d0%b6%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d1%98%d0%b0%d1%82%d0%b0-%d0%bd%d0%b0-%d0%b8%d0%b7%d0%b2%d1%80%d1%88%d1%83%d0%b2%d0%b0%d1%9a%d0%b5">Прикажување на историјата на извршување</a> </li> <li> 2.4 <a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-%d0%9f%d0%be%d0%bd%d0%b8%d1%88%d1%82%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-%d0%bd%d0%b5%d1%88%d1%82%d0%b0%d1%82%d0%b0">Поништување на нештата</a> </li> <li> 2.5 <a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-Working-with-Remotes">Working with Remotes</a> </li> <li> 2.6 <a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-Tagging">Tagging</a> </li> <li> 2.7 <a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-Git-%d0%90%d0%bb%d0%b8%d1%98%d0%b0%d1%81%d0%b8">Git Алијаси</a> </li> <li> 2.8 <a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> <li class='chapter'> <h2>3. <a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%be%d0%b1%d1%98%d0%b0%d1%81%d0%bd%d0%b5%d1%82%d0%be">Гранење во Git</a></h2> <ol> <li> 3.1 <a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%be%d0%b1%d1%98%d0%b0%d1%81%d0%bd%d0%b5%d1%82%d0%be">Гранење објаснето</a> </li> <li> 3.2 <a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d0%be-%d1%80%d0%b0%d0%b7%d0%b3%d1%80%d0%b0%d0%bd%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%b8-%d1%81%d0%bf%d0%be%d1%98%d1%83%d0%b2%d0%b0%d1%9a%d0%b5">Основно разгранување и спојување</a> </li> <li> 3.3 <a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-Branch-Management">Branch Management</a> </li> <li> 3.4 <a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-%d0%a0%d0%b0%d0%b1%d0%be%d1%82%d0%bd%d0%b8-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d0%b8">Работни процеси</a> </li> <li> 3.5 <a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-%d0%94%d0%b0%d0%bb%d0%b5%d1%87%d0%b8%d0%bd%d1%81%d0%ba%d0%b8-%d0%b3%d1%80%d0%b0%d0%bd%d0%ba%d0%b8">Далечински гранки</a> </li> <li> 3.6 <a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-%d0%a0%d0%b5%d0%b1%d0%b0%d0%b7%d0%b0">Ребаза</a> </li> <li> 3.7 <a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> <li class='chapter'> <h2>4. <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%9f%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d1%82%d0%b5">Git на Сервер</a></h2> <ol> <li> 4.1 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%9f%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d1%82%d0%b5" class="active">Протоколите</a> </li> <li> 4.2 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%94%d0%be%d0%b1%d0%b8%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-Git-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80">Добивање на Git на сервер</a> </li> <li> 4.3 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%93%d0%b5%d0%bd%d0%b5%d1%80%d0%b8%d1%80%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-%d0%b2%d0%b0%d1%88%d0%b8%d0%be%d1%82-SSH-%d1%98%d0%b0%d0%b2%d0%b5%d0%bd-%d0%ba%d0%bb%d1%83%d1%87">Генерирање на вашиот SSH јавен клуч</a> </li> <li> 4.4 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%9f%d0%be%d1%81%d1%82%d0%b0%d0%b2%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%be%d1%82">Поставување на серверот</a> </li> <li> 4.5 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%93%d0%b8%d1%82-%d0%b4%d0%b5%d0%bc%d0%be%d0%bd">Гит демон</a> </li> <li> 4.6 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-Smart-HTTP">Smart HTTP</a> </li> <li> 4.7 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-GitWeb">GitWeb</a> </li> <li> 4.8 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-GitLab">GitLab</a> </li> <li> 4.9 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%9e%d0%bf%d1%86%d0%b8%d0%b8-%d0%b7%d0%b0-%d0%b4%d0%be%d0%bc%d0%b0%d1%9c%d0%b8%d0%bd%d0%b8-%d0%bd%d0%b0-%d1%82%d1%80%d0%b5%d1%82%d0%b8-%d0%bb%d0%b8%d1%86%d0%b0">Опции за домаќини на трети лица</a> </li> <li> 4.10 <a href="/book/mk/v2/Git-%d0%bd%d0%b0-%d0%a1%d0%b5%d1%80%d0%b2%d0%b5%d1%80-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> <li class='chapter'> <h2>5. <a href="/book/mk/v2/%d0%94%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d0%b8%d1%80%d0%b0%d0%bd-Git-%d0%94%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d0%b8%d1%80%d0%b0%d0%bd%d0%b8-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%bd%d0%b8-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d0%b8">Дистрибуиран Git</a></h2> <ol> <li> 5.1 <a href="/book/mk/v2/%d0%94%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d0%b8%d1%80%d0%b0%d0%bd-Git-%d0%94%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d0%b8%d1%80%d0%b0%d0%bd%d0%b8-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%bd%d0%b8-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d0%b8">Дистрибуирани работни процеси</a> </li> <li> 5.2 <a href="/book/mk/v2/%d0%94%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d0%b8%d1%80%d0%b0%d0%bd-Git-%d0%9f%d1%80%d0%b8%d0%b4%d0%be%d0%bd%d0%b5%d1%81-%d0%ba%d0%be%d0%bd-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82">Придонес кон проект</a> </li> <li> 5.3 <a href="/book/mk/v2/%d0%94%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d0%b8%d1%80%d0%b0%d0%bd-Git-%d0%9f%d1%80%d0%b8%d0%b2%d0%b0%d1%82%d0%b5%d0%bd-%d0%bc%d0%b0%d0%bb-%d1%82%d0%b8%d0%bc">Приватен мал тим</a> </li> <li> 5.4 <a href="/book/mk/v2/%d0%94%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d0%b8%d1%80%d0%b0%d0%bd-Git-%d0%9e%d0%b4%d1%80%d0%b6%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82">Одржување на проект</a> </li> <li> 5.5 <a href="/book/mk/v2/%d0%94%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d0%b8%d1%80%d0%b0%d0%bd-Git-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> </ol> </div> <div class='column-middle'> <ol class='book-toc'> <li class='chapter'> <h2>6. <a href="/book/mk/v2/GitHub-%d0%9f%d0%be%d1%81%d1%82%d0%b0%d0%b2%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d1%81%d0%bc%d0%b5%d1%82%d0%ba%d0%b0-%d0%b8-%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d1%83%d1%80%d0%b0%d1%86%d0%b8%d1%98%d0%b0">GitHub</a></h2> <ol> <li> 6.1 <a href="/book/mk/v2/GitHub-%d0%9f%d0%be%d1%81%d1%82%d0%b0%d0%b2%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d1%81%d0%bc%d0%b5%d1%82%d0%ba%d0%b0-%d0%b8-%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d1%83%d1%80%d0%b0%d1%86%d0%b8%d1%98%d0%b0">Поставување сметка и конфигурација</a> </li> <li> 6.2 <a href="/book/mk/v2/GitHub-%d0%9f%d1%80%d0%b8%d0%b4%d0%be%d0%bd%d0%b5%d1%81-%d0%ba%d0%be%d0%bd-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82">Придонес кон проект</a> </li> <li> 6.3 <a href="/book/mk/v2/GitHub-%d0%9e%d0%b4%d1%80%d0%b6%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82">Одржување на проект</a> </li> <li> 6.4 <a href="/book/mk/v2/GitHub-%d0%a1%d0%bf%d0%b5%d1%86%d0%b8%d1%98%d0%b0%d0%bb%d0%bd%d0%b8-%d0%b4%d0%b0%d1%82%d0%be%d1%82%d0%b5%d0%ba%d0%b8">Специјални датотеки</a> </li> <li> 6.5 <a href="/book/mk/v2/GitHub-%d0%a3%d0%bf%d1%80%d0%b0%d0%b2%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d1%81%d0%be-%d0%be%d1%80%d0%b3%d0%b0%d0%bd%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%98%d0%b0">Управување со организација</a> </li> <li> 6.6 <a href="/book/mk/v2/GitHub-%d0%a1%d0%ba%d1%80%d0%b8%d0%bf%d1%82%d0%b8%d1%80%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-GitHub">Скриптирање на GitHub</a> </li> <li> 6.7 <a href="/book/mk/v2/GitHub-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> <li class='chapter'> <h2>7. <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Revision-Selection">Git Алатки</a></h2> <ol> <li> 7.1 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Revision-Selection">Revision Selection</a> </li> <li> 7.2 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-%d0%98%d0%bd%d1%82%d0%b5%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d0%be-%d1%81%d1%82%d0%b0%d0%b6%d0%b8%d1%80%d0%b0%d1%9a%d0%b5">Интерактивно стажирање</a> </li> <li> 7.3 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Stashing-and-Cleaning">Stashing and Cleaning</a> </li> <li> 7.4 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Signing-Your-Work">Signing Your Work</a> </li> <li> 7.5 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Searching">Searching</a> </li> <li> 7.6 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Rewriting-History">Rewriting History</a> </li> <li> 7.7 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Reset-Demystified">Reset Demystified</a> </li> <li> 7.8 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-%d0%9d%d0%b0%d0%bf%d1%80%d0%b5%d0%b4%d0%bd%d0%be-%d1%81%d0%bf%d0%be%d1%98%d1%83%d0%b2%d0%b0%d1%9a%d0%b5">Напредно спојување</a> </li> <li> 7.9 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Rerere">Rerere</a> </li> <li> 7.10 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-%d0%94%d0%b5%d0%b1%d0%b0%d0%b3%d0%b8%d1%80%d0%b0%d1%9a%d0%b5-%d1%81%d0%be-Git">Дебагирање со Git</a> </li> <li> 7.11 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-Submodules">Submodules</a> </li> <li> 7.12 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-%d0%97%d0%b1%d0%b8%d0%b2%d0%b0%d1%9a%d0%b5">Збивање</a> </li> <li> 7.13 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-%d0%97%d0%b0%d0%bc%d0%b5%d0%bd%d1%83%d0%b2%d0%b0%d1%9a%d0%b5">Заменување</a> </li> <li> 7.14 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-%d0%a1%d0%ba%d0%bb%d0%b0%d0%b4%d0%b8%d1%80%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-%d0%b8%d0%bd%d0%b3%d0%b5%d1%80%d0%b5%d0%bd%d1%86%d0%b8%d0%b8">Складирање на ингеренции</a> </li> <li> 7.15 <a href="/book/mk/v2/Git-%d0%90%d0%bb%d0%b0%d1%82%d0%ba%d0%b8-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> <li class='chapter'> <h2>8. <a href="/book/mk/v2/%d0%9f%d0%b5%d1%80%d1%81%d0%be%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%98%d0%b0-%d0%bd%d0%b0-Git-Git-Configuration">Персонализација на Git</a></h2> <ol> <li> 8.1 <a href="/book/mk/v2/%d0%9f%d0%b5%d1%80%d1%81%d0%be%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%98%d0%b0-%d0%bd%d0%b0-Git-Git-Configuration">Git Configuration</a> </li> <li> 8.2 <a href="/book/mk/v2/%d0%9f%d0%b5%d1%80%d1%81%d0%be%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%98%d0%b0-%d0%bd%d0%b0-Git-Git-%d0%90%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82%d0%b8">Git Атрибути</a> </li> <li> 8.3 <a href="/book/mk/v2/%d0%9f%d0%b5%d1%80%d1%81%d0%be%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%98%d0%b0-%d0%bd%d0%b0-Git-Git-Hooks">Git Hooks</a> </li> <li> 8.4 <a href="/book/mk/v2/%d0%9f%d0%b5%d1%80%d1%81%d0%be%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%98%d0%b0-%d0%bd%d0%b0-Git-An-Example-Git-Enforced-Policy">An Example Git-Enforced Policy</a> </li> <li> 8.5 <a href="/book/mk/v2/%d0%9f%d0%b5%d1%80%d1%81%d0%be%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%98%d0%b0-%d0%bd%d0%b0-Git-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> <li class='chapter'> <h2>9. <a href="/book/mk/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%d0%ba%d0%be-%d0%9a%d0%bb%d0%b8%d0%b5%d0%bd%d1%82">Git и други системи</a></h2> <ol> <li> 9.1 <a href="/book/mk/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%d0%ba%d0%be-%d0%9a%d0%bb%d0%b8%d0%b5%d0%bd%d1%82">Git како Клиент</a> </li> <li> 9.2 <a href="/book/mk/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%9c%d0%b8%d0%b3%d1%80%d0%b8%d1%80%d0%b0%d1%9a%d0%b5-%d0%ba%d0%be%d0%bd-Git">Мигрирање кон Git</a> </li> <li> 9.3 <a href="/book/mk/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%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> <li class='chapter'> <h2>10. <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-Plumbing-and-Porcelain">Внатрешноста на Git</a></h2> <ol> <li> 10.1 <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-Plumbing-and-Porcelain">Plumbing and Porcelain</a> </li> <li> 10.2 <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-Git-Objects">Git Objects</a> </li> <li> 10.3 <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-Git-References">Git References</a> </li> <li> 10.4 <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-Packfiles">Packfiles</a> </li> <li> 10.5 <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-The-Refspec">The Refspec</a> </li> <li> 10.6 <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-Transfer-Protocols">Transfer Protocols</a> </li> <li> 10.7 <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">Maintenance and Data Recovery</a> </li> <li> 10.8 <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-Environment-Variables">Environment Variables</a> </li> <li> 10.9 <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-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> </ol> </div> <div class='column-right'> <ol class='book-toc'> <li class='chapter'> <h2>A1. <a href="/book/mk/v2/Appendix-A:-Git-%d0%b2%d0%be-%d0%b4%d1%80%d1%83%d0%b3%d0%b8-%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d0%bd%d0%b8-Graphical-Interfaces">Appendix A: Git во други околини</a></h2> <ol> <li> A1.1 <a href="/book/mk/v2/Appendix-A:-Git-%d0%b2%d0%be-%d0%b4%d1%80%d1%83%d0%b3%d0%b8-%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d0%bd%d0%b8-Graphical-Interfaces">Graphical Interfaces</a> </li> <li> A1.2 <a href="/book/mk/v2/Appendix-A:-Git-%d0%b2%d0%be-%d0%b4%d1%80%d1%83%d0%b3%d0%b8-%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d0%bd%d0%b8-Git-in-Visual-Studio">Git in Visual Studio</a> </li> <li> A1.3 <a href="/book/mk/v2/Appendix-A:-Git-%d0%b2%d0%be-%d0%b4%d1%80%d1%83%d0%b3%d0%b8-%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d0%bd%d0%b8-Git-in-Eclipse">Git in Eclipse</a> </li> <li> A1.4 <a href="/book/mk/v2/Appendix-A:-Git-%d0%b2%d0%be-%d0%b4%d1%80%d1%83%d0%b3%d0%b8-%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d0%bd%d0%b8-Git-in-Bash">Git in Bash</a> </li> <li> A1.5 <a href="/book/mk/v2/Appendix-A:-Git-%d0%b2%d0%be-%d0%b4%d1%80%d1%83%d0%b3%d0%b8-%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d0%bd%d0%b8-Git-in-Zsh">Git in Zsh</a> </li> <li> A1.6 <a href="/book/mk/v2/Appendix-A:-Git-%d0%b2%d0%be-%d0%b4%d1%80%d1%83%d0%b3%d0%b8-%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d0%bd%d0%b8-Git-in-Powershell">Git in Powershell</a> </li> <li> A1.7 <a href="/book/mk/v2/Appendix-A:-Git-%d0%b2%d0%be-%d0%b4%d1%80%d1%83%d0%b3%d0%b8-%d0%be%d0%ba%d0%be%d0%bb%d0%b8%d0%bd%d0%b8-%d0%97%d0%b0%d0%ba%d0%bb%d1%83%d1%87%d0%be%d0%ba">Заклучок</a> </li> </ol> </li> <li class='chapter'> <h2>A2. <a href="/book/mk/v2/Appendix-B:-%d0%92%d0%bc%d0%b5%d1%82%d0%bd%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-Git-%d0%b2%d0%be-%d0%b2%d0%b0%d1%88%d0%b8%d1%82%d0%b5-%d0%b0%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-Command-line-Git">Appendix B: Вметнување на Git во вашите апликации</a></h2> <ol> <li> A2.1 <a href="/book/mk/v2/Appendix-B:-%d0%92%d0%bc%d0%b5%d1%82%d0%bd%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-Git-%d0%b2%d0%be-%d0%b2%d0%b0%d1%88%d0%b8%d1%82%d0%b5-%d0%b0%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-Command-line-Git">Command-line Git</a> </li> <li> A2.2 <a href="/book/mk/v2/Appendix-B:-%d0%92%d0%bc%d0%b5%d1%82%d0%bd%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-Git-%d0%b2%d0%be-%d0%b2%d0%b0%d1%88%d0%b8%d1%82%d0%b5-%d0%b0%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-Libgit2">Libgit2</a> </li> <li> A2.3 <a href="/book/mk/v2/Appendix-B:-%d0%92%d0%bc%d0%b5%d1%82%d0%bd%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-Git-%d0%b2%d0%be-%d0%b2%d0%b0%d1%88%d0%b8%d1%82%d0%b5-%d0%b0%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-JGit">JGit</a> </li> <li> A2.4 <a href="/book/mk/v2/Appendix-B:-%d0%92%d0%bc%d0%b5%d1%82%d0%bd%d1%83%d0%b2%d0%b0%d1%9a%d0%b5-%d0%bd%d0%b0-Git-%d0%b2%d0%be-%d0%b2%d0%b0%d1%88%d0%b8%d1%82%d0%b5-%d0%b0%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-go-git">go-git</a> </li> </ol> </li> <li class='chapter'> <h2>A3. <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Setup-and-Config">Appendix C: Git команди</a></h2> <ol> <li> A3.1 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Setup-and-Config">Setup and Config</a> </li> <li> A3.2 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Getting-and-Creating-Projects">Getting and Creating Projects</a> </li> <li> A3.3 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Basic-Snapshotting">Basic Snapshotting</a> </li> <li> A3.4 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Branching-and-Merging">Branching and Merging</a> </li> <li> A3.5 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Sharing-and-Updating-Projects">Sharing and Updating Projects</a> </li> <li> A3.6 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Inspection-and-Comparison">Inspection and Comparison</a> </li> <li> A3.7 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Debugging">Debugging</a> </li> <li> A3.8 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Patching">Patching</a> </li> <li> A3.9 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Email">Email</a> </li> <li> A3.10 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-External-Systems">External Systems</a> </li> <li> A3.11 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Administration">Administration</a> </li> <li> A3.12 <a href="/book/mk/v2/Appendix-C:-Git-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b8-Plumbing-Commands">Plumbing Commands</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>4.1 Git на Сервер - Протоколите</h1> <div> <p> Во овој момент, треба да бидете во можност да ги направите повеќето од секојдневните задачи за кои ќе го користите Git. Сепак, за да направите било каква соработка во Git, ќе треба да имате далечинско складиште за Git. Иако технички може да ги притиснете промените и да ги повлечете промените од складиштата на поединци, тоа е обесхрабрено затоа што лесно може да се збуни она што тие го работат ако не сте внимателни. Понатаму, сакате вашите соработници да можат да пристапат до складиштето, дури и ако вашиот компјутер не е присутен - честопати е корисно да има посигурно заедничко складиште. Затоа, преферираниот метод за соработка со некого е да поставите средно складиште на кое и двајцата ќе имате пристап и да притиснете и да се повлечете од тоа.</p><p>Извршувањето на Git серверот е прилично јасна. Прво, ќе одберете кои протоколи сакате вашиот сервер да комуницира. Првиот дел од ова поглавје ќе ги опфати достапните протоколи и предностите и негативностите на секоја од нив. Следните делови ќе објаснат некои типични поставувања со користење на овие протоколи и како да го стартувате вашиот сервер со нив. Последно, ние ќе одиме преку неколку домаќини опции, ако не ви пречи хостинг вашиот код на некој друг сервер и не сакаат да одат преку кавга за поставување и одржување на вашиот сопствен сервер.</p><p>Ако немате интерес да го стартувате вашиот сопствен сервер, можете да го прескокнете до последниот дел од поглавјето за да видите некои опции за поставување на домаќин сметка, а потоа да преминете на следното поглавје, каде што ќе дискутираме за различните индекси и исходи од работењето во дистрибуирана средина за контрола на извори.</p><p>Оддалеченото складиште обично е <em>баре складиште</em> - репозиториум на Git кој нема работен директориум. Бидејќи складиштето се користи само како точка за соработка, нема причина да се провери снимката на дискот; тоа е само податоците на Git. Во наједноставните термини, голиот репозиториум е содржината на директориумот <code>.git</code> на вашиот проект и ништо друго.</p> <h2 id="_протоколите">Протоколите</h2> <div class="paragraph"> <p>Git може да користи четири различни протоколи за пренос на податоци: Local, HTTP, Secure Shell (SSH) и Git. Овде ќе разговараме за она што се и во кои основни околности сакате (или не сакате) да ги користите.</p> </div> <div class="sect3"> <h3 id="_локален_протокол">Локален протокол</h3> <div class="paragraph"> <p> Најосновниот е <em>Local protocol</em>, во кој оддалеченото складиште е во друг директориум на истиот хост. Ова често се користи ако секој од вашиот тим има пристап до заеднички датотечен систем, како што е NFS монтирање, или во помалку веројатно дека сите се најавуваат на ист компјутер. Вторите нема да бидат идеални, бидејќи сите случаи за складиште на код ќе живеат на ист компјутер, што ќе направи многу поголема веројатност за катастрофална загуба.</p> </div> <div class="paragraph"> <p>Ако имате заеднички монтиран датотечен систем, тогаш можете да клонирате, притиснете и повлечете од локално складиште засновано на датотеки. За да го клонирате ова складиште како ова, или да го додадете како далечински во постоечки проект, користете ја патеката до складиштето како URL. На пример, за да клонирате локално складиште, може да стартувате нешто слично:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git clone /srv/git/project.git</code></pre> </div> </div> <div class="paragraph"> <p>Или можете да го направите ова:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git clone file:///srv/git/project.git</code></pre> </div> </div> <div class="paragraph"> <p>Git работи малку поинаку ако експлицитно наведете <code>file: //</code> на почетокот на URL-то. Ако едноставно ја наведете патеката, Git се обидува да користи тврдини или директно да ги копира потребните датотеки. Ако наведете <code>file: //</code>, Git ги активира процесите што вообичаено ги користи за пренос на податоци преку мрежа, што обично е многу помалку ефикасно. Главната причина да го наведете префиксот <code>file: //</code> е ако сакате чиста копија од складиштето со надворешни референци или предмети изоставени - обично по увоз од друг VCS или нешто слично (види << ch10-git-internals >> за задачи за одржување). Ние ќе го користиме нормалниот пат тука, бидејќи тоа е скоро секогаш побрзо.</p> </div> <div class="paragraph"> <p>За да додадете локално складиште во постоечки проект Git, може да стартувате нешто слично:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote add local_proj /srv/git/project.git</code></pre> </div> </div> <div class="paragraph"> <p>Потоа, можете да притиснете и да се повлечете од тој далечински управувач преку новото далечно име <code>local_proj</code>, како да го правите тоа преку мрежа.</p> </div> <div class="sect4"> <h4 id="_the_pros">The Pros</h4> <div class="paragraph"> <p>Предностите на архивите базирани на датотеки се дека тие се едноставни и тие ги користат постоечките дозволи за датотеки и мрежен пристап. Ако веќе имате заеднички датотечен систем на кој целиот свој тим има пристап, поставувањето на складиштето е многу лесно. Вие ставате копија на голиот складиште некаде каде што сите имаат пристап до и ги поставуваат дозволите за читање / запишување како и за било кој друг споделен именик. Ќе разговараме за тоа како да извезете копија за горенаведеното складиште за оваа намена во << _getting_git_on_a_server >>.</p> </div> <div class="paragraph"> <p>Ова е исто така убава опција за брзо грабање работа од нечиј работен складиште. Ако вие и соработник работите на истиот проект и тие сакаат да проверите нешто надвор, извршувањето команда како што е <code>git pull / home / john / project</code> често е полесно отколку што се притискаат на оддалечен сервер, а вие потоа добивате од него.</p> </div> </div> <div class="sect4"> <h4 id="_конс">Конс</h4> <div class="paragraph"> <p>Маските на овој метод се дека заедничкиот пристап е генерално потешко да се постави и да се достигне од повеќе локации од основниот мрежен пристап. Ако сакате да притиснете од вашиот лаптоп кога сте дома, треба да го монтирате далечинскиот диск, кој може да биде тежок и бавен во споредба со мрежниот пристап.</p> </div> <div class="paragraph"> <p>Важно е да се напомене дека ова не е нужно најбрза опција ако користите некоја заедничка планина. Локалното складиште е брзо само ако имате брз пристап до податоците. Репозиториумот за NFS често е побавен од складиштето над SSH на истиот сервер, овозможувајќи Git да ги исклучува локалните дискови на секој систем.</p> </div> <div class="paragraph"> <p>Конечно, овој протокол не го заштитува складиштето од случајна штета. Секој корисник има целосен пристап до школка до "далечинскиот" директориум, и нема ништо што ги спречува да ги менуваат или отстрануваат внатрешните Git датотеки и го оштетуваат складиштето.</p> </div> </div> </div> <div class="sect3"> <h3 id="_http_протоколите">HTTP протоколите</h3> <div class="paragraph"> <p>Git може да комуницира преку HTTP користејќи два различни режими. Пред Git 1.6.6, постоеше само еден начин што можеше да го стори тоа што беше многу едноставно и главно само за читање. Во верзијата 1.6.6 беше воведен нов, попаметен протокол кој вклучуваше Git да може интелигентно да преговара за пренос на податоци на начин сличен на тоа како го прави преку SSH. Во последните неколку години, овој нов HTTP протокол стана многу популарен бидејќи е поедноставен за корисникот и попаметно за тоа како комуницира. Поновите верзии често се нарекуваат протокол <em>Smart</em> HTTP и постариот начин како <em>Dumb</em> HTTP. Прво ќе го покриеме новиот Smart HTTP протокол.</p> </div> <div class="sect4"> <h4 id="_smart_http">Smart HTTP</h4> <div class="paragraph"> <p> Smart HTTP работи многу слично на SSH или Git протоколите, но работи преку стандардни HTTPS порти и може да користи разни механизми за HTTP автентикација, што значи дека е често полесно за корисникот отколку нешто како SSH, бидејќи можете да ги користите нештата како идентификација на корисничко име / лозинка, наместо за да поставите SSH клучеви.</p> </div> <div class="paragraph"> <p>Веројатно стана најпопуларен начин да се користи Git сега, бидејќи може да се постави за да служат како анонимно како протокол <code>git: //</code>, а исто така може да се турка со автентикација и енкрипција како SSH протоколот. Наместо да поставите различни URL адреси за овие работи, сега можете да користите еден URL за двете. Ако се обидете да притиснете и за складиштето потребно е автентикација (што вообичаено треба да биде), серверот може да побара корисничко име и лозинка. Истото важи и за пристап за читање.</p> </div> <div class="paragraph"> <p>Всушност, за услуги како GitHub, URL-то што го користите за да го видите складиштето преку интернет (на пример, <a href="https://github.com/schacon/simplegit" class="bare">https://github.com/schacon/simplegit</a> []) е истиот URL кој можете да го користите за клонирање и, ако имате пристап , притисни.</p> </div> </div> <div class="sect4"> <h4 id="_глупо_http">Глупо HTTP</h4> <div class="paragraph"> <p> Доколку серверот не реагира со паметна услуга Git HTTP, клиентот Git ќе се обиде да се врати на поедноставниот <em>Dumb</em> HTTP протокол. Глуповиот протокол очекува дека голиот репозиториум на Git ќе се служи како нормални датотеки од веб серверот. Убавината на Глупо HTTP е едноставноста на поставување. Во суштина, се што треба да направите е да го ставите готното складиште на Git под root HTTP документот и да поставите специфична кука за пост-ажурирање и да завршите (види << _git_hooks >>). Во тој момент, секој што може да пристапи на веб-серверот под кој го ставате складиштето, исто така, може да клонира вашето складиште. За да дозволите читање пристап до вашето складиште преку HTTP, направете нешто слично:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ cd /var/www/htdocs/ $ git clone --bare /path/to/git_project gitproject.git $ cd gitproject.git $ mv hooks/post-update.sample hooks/post-update $ chmod a+x hooks/post-update</code></pre> </div> </div> <div class="paragraph"> <p>Тоа е сè. Куката "по ажурирање" која потекнува со Git стандардно ја извршува соодветната команда (<code>git update-server-info</code>) за правилно преземање и клонирање на HTTP. Оваа команда се извршува кога ќе притиснете на ова складиште (можеби преку SSH); тогаш, други луѓе можат да клонираат преку нешто слично</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git clone https://example.com/gitproject.git</code></pre> </div> </div> <div class="paragraph"> <p>Во овој конкретен случај, ние ја користиме патеката <code>/ var / www / htdocs</code> која е честа за поставувањата на Apache, но можете да користите било кој статичен веб сервер - само ставете го голиот репозиториум на патеката. Податоците на Git се служат како основни статички датотеки (видете го поглавјето << ch10-git-internals >> за детали околу тоа како точно се служи).</p> </div> <div class="paragraph"> <p>Општо земено, вие би можеле да одберете да извршите читање / запишување на Smart HTTP сервер или едноставно да ги имате пристапните датотеки како само за читање на глупавиот начин. Ретко е да се води мешавина од двете услуги.</p> </div> </div> <div class="sect4"> <h4 id="_the_pros_2">The Pros</h4> <div class="paragraph"> <p>Ќе се концентрираме на предностите на Smart верзија на HTTP протоколот.</p> </div> <div class="paragraph"> <p>Едноставноста да се има единствен УРЛ за сите типови на пристап и да има потсетник на серверот само кога е потребна проверка на автентичност, ги прави работите многу лесни за крајниот корисник. Да се биде во можност да се идентификувате со корисничко име и лозинка исто така е голема предност над SSH, бидејќи корисниците не мора локално да генерираат SSH клучеви и да го стават својот јавен клуч на серверот пред да можат да комуницираат со него. За помалку софистицирани корисници или корисници на системи каде SSH е поретко, ова е голема предност во употребливоста. Исто така, тоа е многу брз и ефикасен протокол, сличен на SSH.</p> </div> <div class="paragraph"> <p>Можете исто така да ги сервисирате вашите складишта само за читање преку HTTPS, што значи дека можете да го криптирате преносот на содржини; или можете да одите толку далеку што ќе ги направите клиентите да користат специфични потпишани SSL сертификати.</p> </div> <div class="paragraph"> <p>Уште една убава работа е дека HTTPS се такви најчесто користени протоколи дека корпоративните firewalls често се поставуваат за да овозможат сообраќај преку овие порти.</p> </div> </div> <div class="sect4"> <h4 id="_конс_2">Конс</h4> <div class="paragraph"> <p>Git преку HTTPS може да биде малку потешко да се постави во споредба со SSH на некои сервери. Освен тоа, има многу малку предност што другите протоколи имаат над Smart HTTP за сервирање на Git содржина.</p> </div> <div class="paragraph"> <p>Ако користите HTTP за автентично притискање, обезбедувањето на вашите ингеренции понекогаш е покомплицирано од користење на копчињата преку SSH. Меѓутоа, постојат неколку алатки за кеширање кои можете да ги користите, вклучувајќи го пристапот на Keychain во MacOS и Credential Manager во Windows, за да го направите ова прилично безболно. Прочитајте << _credential_caching >> за да видите како да поставите безбедно кеширање на HTTP лозинка на вашиот систем.</p> </div> </div> </div> <div class="sect3"> <h3 id="_протокол_за_ssh">протокол за SSH</h3> <div class="paragraph"> <p> Заеднички протокол за транспорт за Git кога само-хостинг е над SSH. Тоа е затоа што SSH пристапот до сервери е веќе поставена на повеќето места - и ако не е, тоа е лесно да се направи. SSH е, исто така, автентичен мрежен протокол и, бидејќи е сеприсутен, обично е лесно да се постави и да се користи.</p> </div> <div class="paragraph"> <p>За да го клонирате репозиториумот Git преку SSH, можете да наведете <code>ssh: //</code> URL вака:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git clone ssh://[user@]server/project.git</code></pre> </div> </div> <div class="paragraph"> <p>Или можете да ја користите пократката SCP како синтакса за SSH протоколот:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git clone [user@]server:project.git</code></pre> </div> </div> <div class="paragraph"> <p>Во двата случаи погоре, ако не го наведете општото корисничко име, Git го презема корисникот на кој сте моментално најавени.</p> </div> <div class="sect4"> <h4 id="_the_pros_3">The Pros</h4> <div class="paragraph"> <p>Предностите на користење на SSH се многу. Прво, SSH е релативно лесно да се постави - SSH демоните се вообичаени, многу мрежни администратори имаат искуство со нив, и многу дистрибуции на ОС се поставени со нив или имаат алатки за да управуваат со нив. Следно, пристапот до SSH е безбеден - целиот пренос на податоци е шифриран и автентичен. Последно, како и HTTPS, Git и локалните протоколи, SSH е ефикасна, правејќи ги податоците колку што е можно компактни пред да ја префрлат.</p> </div> </div> <div class="sect4"> <h4 id="_конс_3">Конс</h4> <div class="paragraph"> <p>Негативниот аспект на SSH е тоа што не поддржува анонимни пристап до вашиот Git репозиториум. Ако користите SSH, луѓето <em>must</em> имаат SSH пристап до вашата машина, дури и со капацитет за читање, што не го прави SSH погоден за проекти со отворен код за кои луѓето едноставно би сакале да го клонираат вашето складиште за да го испитаат. Ако го користите само во вашата корпоративна мрежа, SSH може да биде единствениот протокол со кој треба да се справите. Ако сакате да дозволите анонимни пристап само за читање на вашите проекти, а исто така сакате да користите SSH, ќе треба да поставите SSH за да можете да ги пренасочите, но нешто друго за другите да дојдат од.</p> </div> </div> </div> <div class="sect3"> <h3 id="_the_git_protocol">The Git Protocol</h3> <div class="paragraph"> <p> Next is the Git protocol. Ова е посебен демон кој доаѓа спакуван со Git; слуша на посветена порта (9418) која обезбедува услуга слична на SSH протоколот, но со апсолутно никаква автентикација. За да може складиштето да се сервира преку протоколот Git, мора да креирате датотека <code>git-daemon-export-ok</code> - демон не ќе му служи на складиштето без таа датотека во неа - но освен тоа постои нема безбедност. Или репозиториумот Git е достапен за сите да клонираат, или не. Ова значи дека генерално нема туркање над овој протокол. Можете да овозможите пристап до притискање, но, со оглед на недостатокот на автентикација, секој на интернет кој го наоѓа URL-то на вашиот проект може да изврши притисок врз тој проект. Доволно е да се каже дека ова е ретко.</p> </div> <div class="sect4"> <h4 id="_the_pros_4">The Pros</h4> <div class="paragraph"> <p>Протоколот Git е најбрз протокол за мрежен пренос. Ако сервирате многу сообраќај за јавен проект или служат многу голем проект кој не бара идентификација на корисникот за пристап за читање, веројатно е дека ќе сакате да поставите демон Git за да му служат на вашиот проект. Таа го користи истиот механизам за пренос на податоци како протокол за SSH, но без енкрипција и автентикација над глава.</p> </div> </div> <div class="sect4"> <h4 id="_конс_4">Конс</h4> <div class="paragraph"> <p>Недостатоци на протоколот Git е недостатокот на автентикација. Тоа е генерално непожелно за протоколот Git да биде единствениот пристап до вашиот проект. Општо земено, ќе го спарите со SSH или HTTPS пристап за неколку програмери кои имаат притисни (запишување) пристап и сите други ги користат "git: //" за пристап за читање. Исто така, веројатно е најтешкиот протокол за поставување. Мора да го води својот сопствен демон, кој бара <code>xinetd</code> конфигурација или слично, што не е секогаш прошетка во паркот. Таа, исто така, бара пристап до огнениот ѕид до портата 9418, што не е стандардна порта која корпоративните firewalls секогаш дозволуваат. Зад големите корпоративни заштитни ѕидови, ова прикриено пристаниште најчесто е блокирано.</p> </div> </div> </div> <div id="nav"><a href="/book/mk/v2/Гранење-во-Git-Заклучок">prev</a> | <a href="/book/mk/v2/Git-на-Сервер-Добивање-на-Git-на-сервер">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>