CINXE.COM
Git - Data Assurance
<!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript"> const currentTheme = localStorage.getItem("theme") if (currentTheme) { const prefersDarkScheme = window.matchMedia("(prefers-color-scheme: dark)").matches if ((prefersDarkScheme && currentTheme === "light") || (!prefersDarkScheme && currentTheme === "dark")) { document.documentElement.dataset.theme = currentTheme } } </script> <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 - Data Assurance</title> <link href="/favicon.ico" rel='shortcut icon' type='image/x-icon'> <link rel="stylesheet" href="/application.min.css"> </head> <body id="about"> <div class="inner"> <header> <a id="logo" href="/"><img src="/images/logo@2x.png" width="110" height="46" alt="Git" class="no-filter" /></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> <div id="search-container"> <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> </div> <img src="/images/dark-mode.svg" id="dark-mode-button" /> </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" class="active">About</a> <ul class="expanded"> <li> <a href="/about/branching-and-merging">Branching and Merging</a> </li> <li> <a href="/about/small-and-fast">Small and Fast</a> </li> <li> <a href="/about/distributed">Distributed</a> </li> <li> <a href="/about/data-assurance" class="active">Data Assurance</a> </li> <li> <a href="/about/staging-area">Staging Area</a> </li> <li> <a href="/about/free-and-open-source">Free and Open Source</a> </li> <li> <a href="/about/trademark">Trademark</a> </li> </ul> </li> <li> <a href="/doc">Documentation</a> <ul > <li> <a href="/docs">Reference</a> </li> <li> <a href="/book">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"> <div class="callout"> <p>The entire <strong><a href="/book">Pro Git book</a></strong> written by Scott Chacon and Ben Straub is available to <a href="/book">read online for free</a>. Dead tree versions are available on <a href="https://www.amazon.com/Pro-Git-Scott-Chacon/dp/1484200772?ie=UTF8&camp=1789&creative=9325&creativeASIN=1430218339&linkCode=as2&tag=git-sfconservancy-20">Amazon.com</a>. </p> </div> </nav> </aside> <div id="content" data-pagefind-filter="category:about" data-pagefind-weight="0.05" data-pagefind-body> <div id="main"> <h1 data-pagefind-meta="title">About - Data Assurance</h1> <ol id="about-nav"> <li> <a href="/about/branching-and-merging" class="three-line">Branching and Merging</a> </li> <li> <a href="/about/small-and-fast" class="two-line">Small and Fast</a> </li> <li> <a href="/about/distributed" class="one-line">Distributed</a> </li> <li> <a href="/about/data-assurance" class="two-line current">Data Assurance</a> </li> <li> <a href="/about/staging-area" class="two-line">Staging Area</a> </li> <li> <a href="/about/free-and-open-source" class="three-line">Free and Open Source</a> </li> <li> <a href="/about/trademark" class="one-line">Trademark</a> </li> </ol> <section class="about" id="data-assurance"> <h2>Data Assurance</h2> <p> The data model that Git uses ensures the cryptographic integrity of every bit of your project. Every file and commit is checksummed and retrieved by its checksum when checked back out. It's impossible to get anything out of Git other than the <strong>exact bits you put in</strong>. </p> <img class="no-filter" height="522" src="/images/assurance@2x.png" width="628"> <p> It is also impossible to change any file, date, commit message, or any other data in a Git repository without changing the IDs of everything after it. This means that if you have a commit ID, you can be assured not only that your project is exactly the same as when it was committed, but that nothing in its history was changed. </p> <p> Most centralized version control systems provide no such integrity by default. </p> <div class="bottom-nav" style="display: block;"> <a href="/about/distributed" class="previous" data-section-id="distributed">← Distributed</a> <a href="/about/staging-area" class="next" data-section-id="staging-area">Staging Area →</a> </div> </section> </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/modernizr.js"></script> <script src="/js/modernize.js"></script> <script src="/js/application.min.js"></script> </div> </body> </html>