Files
school-of-sre/level101/git/branches/index.html
2024-08-13 02:23:28 +00:00

6191 lines
116 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://linkedin.github.io/school-of-sre/level101/git/branches/">
<link rel="prev" href="../git-basics/">
<link rel="next" href="../github-hooks/">
<link rel="icon" href="../../../img/favicon.ico">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.12">
<title>Working With Branches - School Of SRE</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.7e359304.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../../stylesheets/custom.css">
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#working-with-branches" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<script async defer data-domain="linkedin.github.io" src="https://tracking.eskratch.com/js/plausible.js"></script>
<script>document.addEventListener("DOMContentLoaded", function() {
if (document.getElementById("nav-2").checked!=true && document.getElementById("nav-3").checked!=true && window.innerWidth>1220){
document.getElementById("nav-2").checked=true;
document.getElementById("nav-3").checked=true;
}
});</script>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="header.title">
<a href="https://linkedin.github.io/school-of-sre/" title="School Of SRE" class="md-header__button md-logo" aria-label="School Of SRE">
<img src="../../../img/sos.png" alt="logo">
</a>
<!-- Button to open drawer -->
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<span class="md-header__topic md-ellipsis">
<a href="https://linkedin.github.io/school-of-sre/" title="School Of SRE" >
School Of SRE
</a>
</span>
<span class="md-header__topic md-ellipsis">
Working With Branches
</span>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<!-- Determine classes -->
<!-- Navigation -->
<nav
class="md-nav md-nav--primary"
aria-label="Navigation"
data-md-level="0"
>
<!-- Repository information -->
<!-- Navigation list -->
<ul class="md-nav__list" data-md-scrollfix>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Home
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2"
checked
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2"
id="__nav_2_label"
tabindex=""
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Level 101
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="1"
aria-labelledby="__nav_2_label"
aria-expanded="true"
>
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Level 101
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_1"
checked
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_1"
id="__nav_2_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Fundamentals Series
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_1_label"
aria-expanded="true"
>
<label class="md-nav__title" for="__nav_2_1">
<span class="md-nav__icon md-icon"></span>
Fundamentals Series
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_1_1"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_1_1"
id="__nav_2_1_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Linux Basics
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_1_1_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_1_1">
<span class="md-nav__icon md-icon"></span>
Linux Basics
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_basics/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_basics/command_line_basics/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Command Line Basics
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_basics/linux_server_administration/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Server Administration
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_basics/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_1_2"
checked
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_1_2"
id="__nav_2_1_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Git
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_1_2_label"
aria-expanded="true"
>
<label class="md-nav__title" for="__nav_2_1_2">
<span class="md-nav__icon md-icon"></span>
Git
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../git-basics/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Git Basics
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item md-nav__item--active">
<!-- State toggle -->
<input
class="md-nav__toggle md-toggle"
type="checkbox"
id="__toc"
/>
<!-- Hack: see partials/toc.html for more information -->
<!-- Navigation link to table of contents -->
<label class="md-nav__link md-nav__link--active" for="__toc">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Working With Branches
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<a
href="./"
class="md-nav__link md-nav__link--active"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Working With Branches
</span>
<!-- Navigation link status -->
</a>
<!-- Table of contents -->
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#merges" class="md-nav__link">
<span class="md-ellipsis">
Merges
</span>
</a>
</li>
</ul>
</nav>
</li>
<!-- Navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../github-hooks/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Github and Hooks
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_1_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_1_3"
id="__nav_2_1_3_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Linux Networking
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_1_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_1_3">
<span class="md-nav__icon md-icon"></span>
Linux Networking
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/dns/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
DNS
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/udp/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
UDP
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/http/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
HTTP
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/tcp/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
TCP
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/ipr/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Routing
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../linux_networking/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_2"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_2"
id="__nav_2_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Python and Web
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_2_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_2">
<span class="md-nav__icon md-icon"></span>
Python and Web
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../python_web/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../python_web/python-concepts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Some Python Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../python_web/python-web-flask/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Python, Web and Flask
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../python_web/url-shorten-app/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
The URL Shortening App
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../python_web/sre-conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3"
id="__nav_2_3_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Data
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3">
<span class="md-nav__icon md-icon"></span>
Data
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3_1"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3_1"
id="__nav_2_3_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Relational Databases
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_3_1_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3_1">
<span class="md-nav__icon md-icon"></span>
Relational Databases
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/concepts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Key Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/mysql/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
MySQL
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/innodb/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
InnoDB
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/backup_recovery/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Backup and Recovery
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/replication/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
MySQL Replication
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/operations/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Operational Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/select_query/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Select Query
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/query_performance/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Query Performance
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/lab/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Lab
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_sql/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3_2"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3_2"
id="__nav_2_3_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
NoSQL
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_3_2_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3_2">
<span class="md-nav__icon md-icon"></span>
NoSQL
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_nosql/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_nosql/key_concepts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Key Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../databases_nosql/further_reading/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3_3"
id="__nav_2_3_3_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Message Queue
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_3_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3_3">
<span class="md-nav__icon md-icon"></span>
Message Queue
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../messagequeue/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../messagequeue/key_concepts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Key Concepts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../messagequeue/further_reading/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_3_4"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_3_4"
id="__nav_2_3_4_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Big Data
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_2_3_4_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_3_4">
<span class="md-nav__icon md-icon"></span>
Big Data
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../big_data/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../big_data/evolution/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Evolution and Architecture of Hadoop
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../big_data/tasks/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_4"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_4"
id="__nav_2_4_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Systems Design
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_4_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_4">
<span class="md-nav__icon md-icon"></span>
Systems Design
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/scalability/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Scalability
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/availability/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Availability
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/fault-tolerance/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Fault Tolerance
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../systems_design/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_5"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_5"
id="__nav_2_5_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Metrics and Monitoring
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_5_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_5">
<span class="md-nav__icon md-icon"></span>
Metrics and Monitoring
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/command-line_tools/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Command-line Tools
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/third-party_monitoring/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Third-party Monitoring
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/alerts/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Proactive Monitoring with Alerts
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/best_practices/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Best Practices for Monitoring
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/observability/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Observability
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../metrics_and_monitoring/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_2_6"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_2_6"
id="__nav_2_6_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Security
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_2_6_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_2_6">
<span class="md-nav__icon md-icon"></span>
Security
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/fundamentals/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Fundamentals of Security
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/network_security/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Network Security
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/threats_attacks_defences/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Threat, Attacks & Defences
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/writing_secure_code/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Writing Secure code
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../security/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3"
id="__nav_3_label"
tabindex=""
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Level 102
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="1"
aria-labelledby="__nav_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Level 102
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_1"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_1"
id="__nav_3_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Linux Intermediate
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_1_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_1">
<span class="md-nav__icon md-icon"></span>
Linux Intermediate
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/package_management/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Package Management
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/storage_media/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Storage Media
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/archiving_backup/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Archiving and Backup
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/introvim/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction to Vim
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/bashscripting/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Bash Scripting
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/linux_intermediate/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_2"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_2"
id="__nav_3_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Linux Advanced
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_2_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_2">
<span class="md-nav__icon md-icon"></span>
Linux Advanced
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_2_1"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_2_1"
id="__nav_3_2_1_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Containerization And Orchestration
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_3_2_1_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_2_1">
<span class="md-nav__icon md-icon"></span>
Containerization And Orchestration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/intro_to_containers/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction To Containers
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/containerization_with_docker/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Containerization With Docker
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/orchestration_with_kubernetes/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Orchestration With Kubernetes
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/containerization_and_orchestration/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_2_2"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_2_2"
id="__nav_3_2_2_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
System Calls and Signals
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="3"
aria-labelledby="__nav_3_2_2_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_2_2">
<span class="md-nav__icon md-icon"></span>
System Calls and Signals
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_calls_and_signals/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_calls_and_signals/signals/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Signals
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_calls_and_signals/system_calls/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
System Calls
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_calls_and_signals/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_3"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_3"
id="__nav_3_3_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Networking
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_3_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_3">
<span class="md-nav__icon md-icon"></span>
Networking
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/security/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Security
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/scale/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Scale
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/rtt/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
RTT
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/infrastructure-features/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Infrastructure Services
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/networking/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_4"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_4"
id="__nav_3_4_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
System Design
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_4_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_4">
<span class="md-nav__icon md-icon"></span>
System Design
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/intro/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/large-system-design/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Large System Design
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/scaling/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Scaling
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/scaling-beyond-the-datacenter/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Scaling Beyond the Data Center
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/resiliency/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Resiliency
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_design/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_5"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_5"
id="__nav_3_5_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
System Troubleshooting and Performance Improvements
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_5_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_5">
<span class="md-nav__icon md-icon"></span>
System Troubleshooting and Performance Improvements
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/troubleshooting/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Troubleshooting
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/important-tools/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Important Tools
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/performance-improvements/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Performance Improvements
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/troubleshooting-example/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Troubleshooting Example
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/system_troubleshooting_and_performance/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<!-- Determine all nested items that are index pages -->
<!-- Navigation tabs -->
<!-- Render 1st level items with nested items as sections -->
<!-- Navigation pruning -->
<!-- Nested navigation item -->
<li class="md-nav__item md-nav__item--nested">
<!-- Determine checked and indeterminate state -->
<!-- Active checkbox expands items contained within nested section -->
<input
class="md-nav__toggle md-toggle "
type="checkbox"
id="__nav_3_6"
/>
<!-- Toggle to expand nested items -->
<label
class="md-nav__link"
for="__nav_3_6"
id="__nav_3_6_label"
tabindex="0"
>
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Continuous Integration and Continuous Delivery
</span>
<!-- Navigation link status -->
<span class="md-nav__icon md-icon"></span>
</label>
<!-- Toggle to expand nested items with link to index page -->
<!-- Nested navigation -->
<nav
class="md-nav"
data-md-level="2"
aria-labelledby="__nav_3_6_label"
aria-expanded="false"
>
<label class="md-nav__title" for="__nav_3_6">
<span class="md-nav__icon md-icon"></span>
Continuous Integration and Continuous Delivery
</label>
<ul class="md-nav__list" data-md-scrollfix>
<!-- Nested navigation item -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/introduction/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Introduction
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/introduction_to_cicd/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
What is CI/CD?
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/cicd_brief_history/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Brief History
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/continuous_integration_build_pipeline/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Continuous Integration
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/continuous_delivery_release_pipeline/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Continuous Delivery and Deployment
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/jenkins_cicd_pipeline_hands_on_lab/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
CI/CD Pipeline - Hands-on
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../level102/continuous_integration_and_continuous_delivery/conclusion/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Conclusion
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
</ul>
</nav>
<!-- Pruned navigation item -->
</li>
<!-- Currently active page -->
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../CONTRIBUTING/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Contribute
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../CODE_OF_CONDUCT/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
Code of Conduct
</span>
<!-- Navigation link status -->
</a>
</li>
<!-- Determine classes -->
<!-- Determine active page for paginated views -->
<!-- Navigation item with nested items -->
<li class="md-nav__item">
<a href="../../../sre_community/" class="md-nav__link">
<!-- Navigation link icon -->
<!-- Navigation link title -->
<span class="md-ellipsis">
SRE Community
</span>
<!-- Navigation link status -->
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#merges" class="md-nav__link">
<span class="md-ellipsis">
Merges
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="working-with-branches">Working With Branches</h1>
<p>Coming back to our local repo which has two commits. So far, what we have is a single line of history. Commits are chained in a single line. But sometimes you may have a need to work on two different features in parallel in the same repo. Now one option here could be making a new folder/repo with the same code and use that for another feature development. But there's a better way. Use <em>branches</em>. Since git follows tree-like structure for commits, we can use branches to work on different sets of features. From a commit, two or more branches can be created and branches can also be merged.</p>
<p>Using branches, there can exist multiple lines of histories and we can checkout to any of them and work on it. Checking out, as we discussed earlier, would simply mean replacing contents of the directory (repo) with the snapshot at the checked out version.</p>
<p>Let's create a branch and see how it looks like:</p>
<pre><code class="language-bash">$ git branch b1
$ git log --oneline --graph
* 7f3b00e (HEAD -&gt; master, b1) adding file 2
* df2fb7a adding file 1
</code></pre>
<p>We create a branch called <code>b1</code>. Git log tells us that <code>b1</code> also points to the last commit (<code>7f3b00e</code>) but the <code>HEAD</code> is still pointing to <code>master</code>. If you remember, <code>HEAD</code> points to the commit/reference wherever you are checkout to. So if we checkout to <code>b1</code>, <code>HEAD</code> should point to that. Let's confirm:</p>
<pre><code class="language-bash">$ git checkout b1
Switched to branch 'b1'
$ git log --oneline --graph
* 7f3b00e (HEAD -&gt; b1, master) adding file 2
* df2fb7a adding file 1
</code></pre>
<p><code>b1</code> still points to the same commit but <code>HEAD</code> now points to <code>b1</code>. Since we create a branch at commit <code>7f3b00e</code>, there will be two lines of histories starting this commit. Depending on which branch you are checked out on, the line of history will progress.</p>
<p>At this moment, we are checked out on branch <code>b1</code>, so making a new commit will advance branch reference <code>b1</code> to that commit and current <code>b1</code> commit will become its parent. Let's do that.</p>
<pre><code class="language-bash"># Creating a file and making a commit
$ echo &quot;I am a file in b1 branch&quot; &gt; b1.txt
$ git add b1.txt
$ git commit -m &quot;adding b1 file&quot;
[b1 872a38f] adding b1 file
1 file changed, 1 insertion(+)
create mode 100644 b1.txt
# The new line of history
$ git log --oneline --graph
* 872a38f (HEAD -&gt; b1) adding b1 file
* 7f3b00e (master) adding file 2
* df2fb7a adding file 1
$
</code></pre>
<p>Do note that master is still pointing to the old commit it was pointing to. We can now checkout to <code>master</code> branch and make commits there. This will result in another line of history starting from commit <code>7f3b00e</code>.</p>
<pre><code class="language-bash"># checkout to master branch
$ git checkout master
Switched to branch 'master'
# Creating a new commit on master branch
$ echo &quot;new file in master branch&quot; &gt; master.txt
$ git add master.txt
$ git commit -m &quot;adding master.txt file&quot;
[master 60dc441] adding master.txt file
1 file changed, 1 insertion(+)
create mode 100644 master.txt
# The history line
$ git log --oneline --graph
* 60dc441 (HEAD -&gt; master) adding master.txt file
* 7f3b00e adding file 2
* df2fb7a adding file 1
</code></pre>
<p>Notice how branch <code>b1</code> is not visible here since we are on the <code>master</code>. Let's try to visualize both to get the whole picture:</p>
<pre><code class="language-bash">$ git log --oneline --graph --all
* 60dc441 (HEAD -&gt; master) adding master.txt file
| * 872a38f (b1) adding b1 file
|/
* 7f3b00e adding file 2
* df2fb7a adding file 1
</code></pre>
<p>Above tree structure should make things clear. Notice a clear branch/fork on commit <code>7f3b00e</code>. This is how we create branches. Now they both are two separate lines of history on which feature development can be done independently.</p>
<p><strong>To reiterate, internally, git is just a tree of commits. Branch names (human readable) are pointers to those commits in the tree. We use various git commands to work with the tree structure and references. Git accordingly modifies contents of our repo.</strong></p>
<h2 id="merges">Merges</h2>
<p>Now say the feature you were working on branch <code>b1</code> is complete and you need to merge it on <code>master</code> branch, where all the final version of code goes. So first, you will <code>checkout</code> to branch <code>master</code> and then you <code>pull</code> the latest code from <code>upstream</code> (eg: GitHub). Then you need to merge your code from <code>b1</code> into <code>master</code>. There could be two ways this can be done.</p>
<p>Here is the current history:</p>
<pre><code class="language-bash">$ git log --oneline --graph --all
* 60dc441 (HEAD -&gt; master) adding master.txt file
| * 872a38f (b1) adding b1 file
|/
* 7f3b00e adding file 2
* df2fb7a adding file 1
</code></pre>
<p><strong>Option 1: Directly merge the branch.</strong> Merging the branch <code>b1</code> into <code>master</code> will result in a new merge commit. This will merge changes from two different lines of history and create a new commit of the result.</p>
<pre><code class="language-bash">$ git merge b1
Merge made by the 'recursive' strategy.
b1.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 b1.txt
$ git log --oneline --graph --all
* 8fc28f9 (HEAD -&gt; master) Merge branch 'b1'
|\
| * 872a38f (b1) adding b1 file
* | 60dc441 adding master.txt file
|/
* 7f3b00e adding file 2
* df2fb7a adding file 1
</code></pre>
<p>You can see a new merge commit created (<code>8fc28f9</code>). You will be prompted for the commit message. If there are a lot of branches in the repo, this result will end-up with a lot of merge commits. Which looks ugly compared to a single line of history of development. So let's look at an alternative approach.</p>
<p>First, let's <a href="https://git-scm.com/docs/git-reset">reset</a> our last merge and go to the previous state.</p>
<pre><code class="language-bash">$ git reset --hard 60dc441
HEAD is now at 60dc441 adding master.txt file
$ git log --oneline --graph --all
* 60dc441 (HEAD -&gt; master) adding master.txt file
| * 872a38f (b1) adding b1 file
|/
* 7f3b00e adding file 2
* df2fb7a adding file 1
</code></pre>
<p><strong>Option 2: Rebase.</strong> Now, instead of merging two branches which has a similar base (commit: <code>7f3b00e</code>), let us rebase branch <code>b1</code> on to current master. <strong>What this means is take branch <code>b1</code> (from commit <code>7f3b00e</code> to commit <code>872a38f</code>) and rebase (put them on top of) master (<code>60dc441</code>).</strong></p>
<pre><code class="language-bash"># Switch to b1
$ git checkout b1
Switched to branch 'b1'
# Rebase (b1 which is current branch) on master
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: adding b1 file
# The result
$ git log --oneline --graph --all
* 5372c8f (HEAD -&gt; b1) adding b1 file
* 60dc441 (master) adding master.txt file
* 7f3b00e adding file 2
* df2fb7a adding file 1
</code></pre>
<p>You can see <code>b1</code> which had 1 commit. That commit's parent was <code>7f3b00e</code>. But since we rebase it on master (<code>60dc441</code>). That becomes the parent now. As a side effect, you also see it has become a single line of history. Now if we were to merge <code>b1</code> into <code>master</code>, it would simply mean change <code>master</code> to point to <code>5372c8f</code> which is <code>b1</code>. Let's try it:</p>
<pre><code class="language-bash"># checkout to master since we want to merge code into master
$ git checkout master
Switched to branch 'master'
# the current history, where b1 is based on master
$ git log --oneline --graph --all
* 5372c8f (b1) adding b1 file
* 60dc441 (HEAD -&gt; master) adding master.txt file
* 7f3b00e adding file 2
* df2fb7a adding file 1
# Performing the merge, notice the &quot;fast-forward&quot; message
$ git merge b1
Updating 60dc441..5372c8f
Fast-forward
b1.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 b1.txt
# The Result
$ git log --oneline --graph --all
* 5372c8f (HEAD -&gt; master, b1) adding b1 file
* 60dc441 adding master.txt file
* 7f3b00e adding file 2
* df2fb7a adding file 1
</code></pre>
<p>Now you see both <code>b1</code> and <code>master</code> are pointing to the same commit. Your code has been merged to the master branch and it can be pushed. Also we have clean line of history! :D</p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright 2020 LinkedIn Corporation. All Rights Reserved. Licensed under the Creative Commons Attribution 4.0 International Public License
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://github.com/linkedin/school-of-sre" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.sections"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../../assets/javascripts/bundle.c8d2eff1.min.js"></script>
</body>
</html>