CINXE.COM

Removing sensitive data from a repository - GitHub Docs

<!DOCTYPE html><html data-color-mode="auto" data-light-theme="light" data-dark-theme="dark" lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="icon" type="image/png" href="/assets/cb-345/images/site/favicon.png"/><link href="/manifest.json" rel="manifest"/><meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY"/><title>Removing sensitive data from a repository - GitHub Docs</title><meta name="description" content="If you commit sensitive data into a Git repository, you can remove it from the history."/><link rel="alternate" hrefLang="zh-Hans" href="https://docs.github.com/zh/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><link rel="alternate" hrefLang="es" href="https://docs.github.com/es/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><link rel="alternate" hrefLang="pt" href="https://docs.github.com/pt/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><link rel="alternate" hrefLang="ru" href="https://docs.github.com/ru/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><link rel="alternate" hrefLang="ja" href="https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><link rel="alternate" hrefLang="fr" href="https://docs.github.com/fr/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><link rel="alternate" hrefLang="de" href="https://docs.github.com/de/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><link rel="alternate" hrefLang="ko" href="https://docs.github.com/ko/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><meta name="keywords" content="Identity,Access management"/><meta name="path-language" content="en"/><meta name="path-version" content="free-pro-team@latest"/><meta name="path-product" content="authentication"/><meta name="path-article" content="authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><meta name="page-document-type" content="article"/><meta name="status" content="200"/><meta property="og:site_name" content="GitHub Docs"/><meta property="og:title" content="Removing sensitive data from a repository - GitHub Docs"/><meta property="og:type" content="article"/><meta property="og:url" content="https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"/><meta property="og:image" content="https://github.githubassets.com/images/modules/open_graph/github-logo.png"/><meta name="next-head-count" content="27"/><link rel="preload" href="/_next/static/css/87cea936052d1d95.css" as="style"/><link rel="stylesheet" href="/_next/static/css/87cea936052d1d95.css" data-n-g=""/><link rel="preload" href="/_next/static/css/66757a3783028467.css" as="style"/><link rel="stylesheet" href="/_next/static/css/66757a3783028467.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-ec48c0d94b7da59f.js" defer=""></script><script src="/_next/static/chunks/framework-945b357d4a851f4b.js" defer=""></script><script src="/_next/static/chunks/main-c95ae151e287e458.js" defer=""></script><script src="/_next/static/chunks/pages/_app-797fa94dba278176.js" defer=""></script><script src="/_next/static/chunks/727f57db-570e92d04a1cf153.js" defer=""></script><script src="/_next/static/chunks/4432-e0b0889138923fc7.js" defer=""></script><script src="/_next/static/chunks/6066-8d61a14f5f75720a.js" defer=""></script><script src="/_next/static/chunks/5293-274846982f5b82bb.js" defer=""></script><script src="/_next/static/chunks/2689-e7cc4d533fabe066.js" defer=""></script><script src="/_next/static/chunks/9418-89747b124934b544.js" defer=""></script><script src="/_next/static/chunks/5343-0a36d3df57062eb5.js" defer=""></script><script src="/_next/static/chunks/pages/%5BversionId%5D/%5BproductId%5D/%5B...restPage%5D-d93d7776ab1c3347.js" defer=""></script><script src="/_next/static/s6DUzkqIicbHKjzn5sSgX/_buildManifest.js" defer=""></script><script src="/_next/static/s6DUzkqIicbHKjzn5sSgX/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.5">.cEhRXB{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}/*!sc*/ .dmdEgz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;pointer-events:none;}/*!sc*/ .Ywlla{list-style:none;}/*!sc*/ .hROlum{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;min-width:0;}/*!sc*/ .cUxMoC{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}/*!sc*/ .bmseMA{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;font-weight:400;word-break:break-word;}/*!sc*/ .lmYNOb{height:20px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));margin-left:8px;font-weight:initial;}/*!sc*/ [data-variant="danger"]:hover .Box-sc-g0xbh4-0,[data-variant="danger"]:active .lmYNOb{color:var(--fgColor-default,var(--color-fg-default,#1F2328));}/*!sc*/ .enEvIH{padding:0;margin:0;display:block;}/*!sc*/ .enEvIH *{font-size:14px;}/*!sc*/ .ivpQTm{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;font-weight:600;word-break:break-word;}/*!sc*/ .gMkIpo{padding:0;margin:0;display:none;}/*!sc*/ .gMkIpo *{font-size:14px;}/*!sc*/ .eQiQea{grid-area:topper;}/*!sc*/ .ijSsTo{grid-area:intro;}/*!sc*/ .giVcWX{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;grid-area:sidebar;}/*!sc*/ .kohLxz{grid-area:content;}/*!sc*/ data-styled.g3[id="Box-sc-g0xbh4-0"]{content:"cEhRXB,dmdEgz,Ywlla,hROlum,cUxMoC,bmseMA,lmYNOb,enEvIH,ivpQTm,gMkIpo,eQiQea,ijSsTo,giVcWX,kohLxz,"}/*!sc*/ .hXCKEr{border-radius:6px;border:1px solid;border-color:transparent;font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:transparent;box-shadow:none;}/*!sc*/ .hXCKEr:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .hXCKEr:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .hXCKEr:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .hXCKEr[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .hXCKEr[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .hXCKEr:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .hXCKEr:active{-webkit-transition:none;transition:none;}/*!sc*/ .hXCKEr[data-inactive]{cursor:auto;}/*!sc*/ .hXCKEr:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .hXCKEr:disabled [data-component=ButtonCounter],.hXCKEr:disabled [data-component="leadingVisual"],.hXCKEr:disabled [data-component="trailingAction"]{color:inherit;}/*!sc*/ @media (forced-colors:active){.hXCKEr:focus{outline:solid 1px transparent;}}/*!sc*/ .hXCKEr [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .hXCKEr[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .hXCKEr[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .hXCKEr[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .hXCKEr[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .hXCKEr[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .hXCKEr[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .hXCKEr[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .hXCKEr[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .hXCKEr[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .hXCKEr[data-block="block"]{width:100%;}/*!sc*/ .hXCKEr[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .hXCKEr[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .hXCKEr[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .hXCKEr[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .hXCKEr[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .hXCKEr[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .hXCKEr[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .hXCKEr[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .hXCKEr[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .hXCKEr [data-component="leadingVisual"]{grid-area:leadingVisual;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .hXCKEr [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .hXCKEr [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .hXCKEr [data-component="trailingAction"]{margin-right:-4px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .hXCKEr [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .hXCKEr [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .hXCKEr [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .hXCKEr [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .hXCKEr:hover:not([disabled]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .hXCKEr:active:not([disabled]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));}/*!sc*/ .hXCKEr[aria-expanded=true]{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .hXCKEr[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .hXCKEr[data-no-visuals]{color:var(--fgColor-accent,var(--color-accent-fg,#0969da));}/*!sc*/ .hXCKEr:has([data-component="ButtonCounter"]){color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));}/*!sc*/ .hXCKEr:disabled[data-no-visuals]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .hXCKEr:disabled[data-no-visuals] [data-component=ButtonCounter]{color:inherit;}/*!sc*/ .hXCKEr{height:auto;text-align:left;}/*!sc*/ .hXCKEr span:first-child{display:inline;}/*!sc*/ .jOdgLl{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .jOdgLl:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .jOdgLl:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .jOdgLl:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .jOdgLl[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .jOdgLl[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .jOdgLl:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .jOdgLl:active{-webkit-transition:none;transition:none;}/*!sc*/ .jOdgLl[data-inactive]{cursor:auto;}/*!sc*/ .jOdgLl:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .jOdgLl:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.jOdgLl:focus{outline:solid 1px transparent;}}/*!sc*/ .jOdgLl [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .jOdgLl[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .jOdgLl[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .jOdgLl[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .jOdgLl[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .jOdgLl[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .jOdgLl[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .jOdgLl[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .jOdgLl[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .jOdgLl[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .jOdgLl[data-block="block"]{width:100%;}/*!sc*/ .jOdgLl[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .jOdgLl[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .jOdgLl[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .jOdgLl[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .jOdgLl[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .jOdgLl[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .jOdgLl[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .jOdgLl[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .jOdgLl[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .jOdgLl [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .jOdgLl [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .jOdgLl [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .jOdgLl [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .jOdgLl [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .jOdgLl [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .jOdgLl [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .jOdgLl [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .jOdgLl:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .jOdgLl:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .jOdgLl[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .jOdgLl [data-component="leadingVisual"],.jOdgLl [data-component="trailingVisual"],.jOdgLl [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .jOdgLl[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jOdgLl[data-no-visuals]{border-top-left-radius:unset;border-bottom-left-radius:unset;}/*!sc*/ .hmWbvh{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .hmWbvh:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .hmWbvh:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .hmWbvh:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .hmWbvh[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .hmWbvh[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .hmWbvh:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .hmWbvh:active{-webkit-transition:none;transition:none;}/*!sc*/ .hmWbvh[data-inactive]{cursor:auto;}/*!sc*/ .hmWbvh:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .hmWbvh:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.hmWbvh:focus{outline:solid 1px transparent;}}/*!sc*/ .hmWbvh [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .hmWbvh[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .hmWbvh[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .hmWbvh[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .hmWbvh[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .hmWbvh[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .hmWbvh[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .hmWbvh[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .hmWbvh[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .hmWbvh[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .hmWbvh[data-block="block"]{width:100%;}/*!sc*/ .hmWbvh[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .hmWbvh[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .hmWbvh[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .hmWbvh[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .hmWbvh[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .hmWbvh[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .hmWbvh[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .hmWbvh[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .hmWbvh[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .hmWbvh [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .hmWbvh [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .hmWbvh [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .hmWbvh [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .hmWbvh [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .hmWbvh [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .hmWbvh [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .hmWbvh [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .hmWbvh:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .hmWbvh:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .hmWbvh[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .hmWbvh [data-component="leadingVisual"],.hmWbvh [data-component="trailingVisual"],.hmWbvh [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .hmWbvh[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .lkeyoI{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .lkeyoI:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .lkeyoI:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .lkeyoI:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .lkeyoI[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .lkeyoI[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .lkeyoI:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .lkeyoI:active{-webkit-transition:none;transition:none;}/*!sc*/ .lkeyoI[data-inactive]{cursor:auto;}/*!sc*/ .lkeyoI:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .lkeyoI:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.lkeyoI:focus{outline:solid 1px transparent;}}/*!sc*/ .lkeyoI [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .lkeyoI[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .lkeyoI[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .lkeyoI[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .lkeyoI[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .lkeyoI[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .lkeyoI[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .lkeyoI[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .lkeyoI[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .lkeyoI[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .lkeyoI[data-block="block"]{width:100%;}/*!sc*/ .lkeyoI[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .lkeyoI[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .lkeyoI[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .lkeyoI[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .lkeyoI[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .lkeyoI[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .lkeyoI[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .lkeyoI[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .lkeyoI[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .lkeyoI [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .lkeyoI [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .lkeyoI [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .lkeyoI [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .lkeyoI [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .lkeyoI [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .lkeyoI [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .lkeyoI [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .lkeyoI:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .lkeyoI:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .lkeyoI[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .lkeyoI [data-component="leadingVisual"],.lkeyoI [data-component="trailingVisual"],.lkeyoI [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .lkeyoI[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .lkeyoI[data-no-visuals]{display:none;}/*!sc*/ .htZXvk{border-radius:6px;border:1px solid;border-color:var(--button-default-borderColor-rest,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:var(--button-default-bgColor-rest,var(--color-btn-bg,#f6f8fa));box-shadow:var(--button-default-shadow-resting,var(--color-btn-shadow,0 1px 0 rgba(31,35,40,0.04))),var(--button-default-shadow-inset,var(--color-btn-inset-shadow,inset 0 1px 0 rgba(255,255,255,0.25)));}/*!sc*/ .htZXvk:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .htZXvk:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .htZXvk:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .htZXvk[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .htZXvk[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .htZXvk:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .htZXvk:active{-webkit-transition:none;transition:none;}/*!sc*/ .htZXvk[data-inactive]{cursor:auto;}/*!sc*/ .htZXvk:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));border-color:var(--button-default-borderColor-disabled,var(--button-default-borderColor-rest,var(--color-btn-border,rgba(31,35,40,0.15))));background-color:var(--button-default-bgColor-disabled,var(--control-bgColor-disabled,var(--color-input-disabled-bg,rgba(175,184,193,0.2))));}/*!sc*/ .htZXvk:disabled [data-component=ButtonCounter]{color:inherit;}/*!sc*/ @media (forced-colors:active){.htZXvk:focus{outline:solid 1px transparent;}}/*!sc*/ .htZXvk [data-component=ButtonCounter]{font-size:12px;background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg,rgba(31,35,40,0.08)));}/*!sc*/ .htZXvk[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .htZXvk[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .htZXvk[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .htZXvk[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .htZXvk[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .htZXvk[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .htZXvk[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .htZXvk[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .htZXvk[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .htZXvk[data-block="block"]{width:100%;}/*!sc*/ .htZXvk[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .htZXvk[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .htZXvk[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .htZXvk[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .htZXvk[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .htZXvk[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .htZXvk[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .htZXvk[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .htZXvk[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .htZXvk [data-component="leadingVisual"]{grid-area:leadingVisual;}/*!sc*/ .htZXvk [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .htZXvk [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .htZXvk [data-component="trailingAction"]{margin-right:-4px;}/*!sc*/ .htZXvk [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .htZXvk [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .htZXvk [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .htZXvk [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .htZXvk:hover:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-hover,var(--color-btn-hover-bg,#f3f4f6));border-color:var(--button-default-borderColor-hover,var(--button-default-borderColor-hover,var(--color-btn-hover-border,rgba(31,35,40,0.15))));}/*!sc*/ .htZXvk:active:not([disabled]):not([data-inactive]){background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .htZXvk[aria-expanded=true]{background-color:var(--button-default-bgColor-active,var(--color-btn-active-bg,hsla(220,14%,93%,1)));border-color:var(--button-default-borderColor-active,var(--button-default-borderColor-active,var(--color-btn-active-border,rgba(31,35,40,0.15))));}/*!sc*/ .htZXvk [data-component="leadingVisual"],.htZXvk [data-component="trailingVisual"],.htZXvk [data-component="trailingAction"]{color:var(--button-color,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .htZXvk[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .htZXvk[data-no-visuals]{margin-left:16px;}/*!sc*/ @media (min-width:768px){.htZXvk[data-no-visuals]{margin-left:0;}}/*!sc*/ @media (min-width:1012px){.htZXvk[data-no-visuals]{display:none;}}/*!sc*/ .jCopKa{border-radius:6px;border:1px solid;border-color:transparent;font-family:inherit;font-weight:500;font-size:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;height:32px;padding:0 12px;gap:8px;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;-webkit-transition:80ms cubic-bezier(0.65,0,0.35,1);transition:80ms cubic-bezier(0.65,0,0.35,1);-webkit-transition-property:color,fill,background-color,border-color;transition-property:color,fill,background-color,border-color;color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));background-color:transparent;box-shadow:none;}/*!sc*/ .jCopKa:focus:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .jCopKa:focus:not(:disabled):not(:focus-visible){outline:solid 1px transparent;}/*!sc*/ .jCopKa:focus-visible:not(:disabled){box-shadow:none;outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-2px;}/*!sc*/ .jCopKa[href]{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}/*!sc*/ .jCopKa[href]:hover{-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .jCopKa:hover{-webkit-transition-duration:80ms;transition-duration:80ms;}/*!sc*/ .jCopKa:active{-webkit-transition:none;transition:none;}/*!sc*/ .jCopKa[data-inactive]{cursor:auto;}/*!sc*/ .jCopKa:disabled{cursor:not-allowed;box-shadow:none;color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .jCopKa:disabled [data-component=ButtonCounter],.jCopKa:disabled [data-component="leadingVisual"],.jCopKa:disabled [data-component="trailingAction"]{color:inherit;}/*!sc*/ @media (forced-colors:active){.jCopKa:focus{outline:solid 1px transparent;}}/*!sc*/ .jCopKa [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .jCopKa[data-component=IconButton]{display:inline-grid;padding:unset;place-content:center;width:32px;min-width:unset;}/*!sc*/ .jCopKa[data-size="small"]{padding:0 8px;height:28px;gap:4px;font-size:12px;}/*!sc*/ .jCopKa[data-size="small"] [data-component="text"]{line-height:calc(20 / 12);}/*!sc*/ .jCopKa[data-size="small"] [data-component=ButtonCounter]{font-size:12px;}/*!sc*/ .jCopKa[data-size="small"] [data-component="buttonContent"] > :not(:last-child){margin-right:4px;}/*!sc*/ .jCopKa[data-size="small"][data-component=IconButton]{width:28px;padding:unset;}/*!sc*/ .jCopKa[data-size="large"]{padding:0 16px;height:40px;gap:8px;}/*!sc*/ .jCopKa[data-size="large"] [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .jCopKa[data-size="large"][data-component=IconButton]{width:40px;padding:unset;}/*!sc*/ .jCopKa[data-block="block"]{width:100%;}/*!sc*/ .jCopKa[data-label-wrap="true"]{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content;height:unset;min-height:var(--control-medium-size,2rem);}/*!sc*/ .jCopKa[data-label-wrap="true"] [data-component="buttonContent"]{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding-block:calc(var(--control-medium-paddingBlock,0.375rem) - 2px);}/*!sc*/ .jCopKa[data-label-wrap="true"] [data-component="text"]{white-space:unset;word-break:break-word;}/*!sc*/ .jCopKa[data-label-wrap="true"][data-size="small"]{height:unset;min-height:var(--control-small-size,1.75rem);}/*!sc*/ .jCopKa[data-label-wrap="true"][data-size="small"] [data-component="buttonContent"]{padding-block:calc(var(--control-small-paddingBlock,0.25rem) - 2px);}/*!sc*/ .jCopKa[data-label-wrap="true"][data-size="large"]{height:unset;min-height:var(--control-large-size,2.5rem);padding-inline:var(--control-large-paddingInline-spacious,1rem);}/*!sc*/ .jCopKa[data-label-wrap="true"][data-size="large"] [data-component="buttonContent"]{padding-block:calc(var(--control-large-paddingBlock,0.625rem) - 2px);}/*!sc*/ .jCopKa[data-inactive]:not([disabled]){background-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));border-color:var(--button-inactive-bgColor,var(--button-inactive-bgColor-rest,var(--color-btn-inactive-bg,#eaeef2)));color:var(--button-inactive-fgColor,var(--button-inactive-fgColor-rest,var(--color-btn-inactive-text,#57606a)));}/*!sc*/ .jCopKa[data-inactive]:not([disabled]):focus-visible{box-shadow:none;}/*!sc*/ .jCopKa [data-component="leadingVisual"]{grid-area:leadingVisual;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jCopKa [data-component="text"]{grid-area:text;line-height:calc(20/14);white-space:nowrap;}/*!sc*/ .jCopKa [data-component="trailingVisual"]{grid-area:trailingVisual;}/*!sc*/ .jCopKa [data-component="trailingAction"]{margin-right:-4px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jCopKa [data-component="buttonContent"]{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;display:grid;grid-template-areas:"leadingVisual text trailingVisual";grid-template-columns:min-content minmax(0,auto) min-content;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;}/*!sc*/ .jCopKa [data-component="buttonContent"] > :not(:last-child){margin-right:8px;}/*!sc*/ .jCopKa [data-component="loadingSpinner"]{grid-area:text;margin-right:0px !important;place-self:center;}/*!sc*/ .jCopKa [data-component="loadingSpinner"] + [data-component="text"]{visibility:hidden;}/*!sc*/ .jCopKa:hover:not([disabled]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));}/*!sc*/ .jCopKa:active:not([disabled]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));}/*!sc*/ .jCopKa[aria-expanded=true]{background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .jCopKa[data-component="IconButton"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .jCopKa[data-no-visuals]{color:var(--fgColor-accent,var(--color-accent-fg,#0969da));}/*!sc*/ .jCopKa:has([data-component="ButtonCounter"]){color:var(--button-default-fgColor-rest,var(--color-btn-text,#24292f));}/*!sc*/ .jCopKa:disabled[data-no-visuals]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled,#8c959f));}/*!sc*/ .jCopKa:disabled[data-no-visuals] [data-component=ButtonCounter]{color:inherit;}/*!sc*/ data-styled.g4[id="types__StyledButton-sc-ws60qy-0"]{content:"hXCKEr,jOdgLl,hmWbvh,lkeyoI,htZXvk,jCopKa,"}/*!sc*/ .eiGLpS{display:none;}/*!sc*/ .eiGLpS[popover]{position:absolute;padding:0.5em 0.75em;width:-webkit-max-content;width:-moz-max-content;width:max-content;margin:auto;-webkit-clip:auto;clip:auto;white-space:normal;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff));text-align:center;word-wrap:break-word;background:var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f));border-radius:6px;border:0;opacity:0;max-width:250px;inset:auto;overflow:visible;}/*!sc*/ .eiGLpS[popover]:popover-open{display:block;}/*!sc*/ .eiGLpS[popover].\:popover-open{display:block;}/*!sc*/ @media (forced-colors:active){.eiGLpS{outline:1px solid transparent;}}/*!sc*/ .eiGLpS::after{position:absolute;display:block;right:0;left:0;height:var(--overlay-offset,0.25rem);content:'';}/*!sc*/ .eiGLpS[data-direction='n']::after,.eiGLpS[data-direction='ne']::after,.eiGLpS[data-direction='nw']::after{top:100%;}/*!sc*/ .eiGLpS[data-direction='s']::after,.eiGLpS[data-direction='se']::after,.eiGLpS[data-direction='sw']::after{bottom:100%;}/*!sc*/ .eiGLpS[data-direction='w']::after{position:absolute;display:block;height:100%;width:8px;content:'';bottom:0;left:100%;}/*!sc*/ .eiGLpS[data-direction='e']::after{position:absolute;display:block;height:100%;width:8px;content:'';bottom:0;right:100%;margin-left:-8px;}/*!sc*/ @-webkit-keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ @keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ .eiGLpS:popover-open,.eiGLpS:popover-open::before{-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .eiGLpS.\:popover-open,.eiGLpS.\:popover-open::before{-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ data-styled.g8[id="Tooltip__StyledTooltip-sc-e45c7z-0"]{content:"eiGLpS,"}/*!sc*/ .gzcJGA{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);}/*!sc*/ .daAEFx{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}/*!sc*/ data-styled.g11[id="Octicon-sc-9kayk9-0"]{content:"gzcJGA,daAEFx,"}/*!sc*/ .bebFBv{font-weight:600;font-size:32px;margin:0;font-size:14px;}/*!sc*/ @media (min-width:1012px) and (max-width:1400px){.bebFBv{margin-top:2rem;}}/*!sc*/ data-styled.g28[id="Heading__StyledHeading-sc-1c1dgg0-0"]{content:"bebFBv,"}/*!sc*/ .hgjakc{margin:0;padding-inline-start:0;padding-top:8px;padding-bottom:8px;}/*!sc*/ data-styled.g29[id="List__ListBox-sc-1x7olzq-0"]{content:"hgjakc,"}/*!sc*/ .itjSOb{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:8px;padding-right:8px;padding-top:6px;padding-bottom:6px;line-height:20px;min-height:5px;margin-left:8px;margin-right:8px;border-radius:6px;-webkit-transition:background 33.333ms linear;transition:background 33.333ms linear;color:var(--fgColor-default,var(--color-fg-default,#1F2328));cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:unset;border:unset;width:calc(100% - 16px);font-family:unset;text-align:unset;margin-top:unset;margin-bottom:unset;}/*!sc*/ .itjSOb[data-loading]{cursor:default;}/*!sc*/ .itjSOb[aria-disabled],.itjSOb[data-inactive]{cursor:not-allowed;}/*!sc*/ .itjSOb[aria-disabled] [data-component="ActionList.Checkbox"],.itjSOb[data-inactive] [data-component="ActionList.Checkbox"]{cursor:not-allowed;background-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));border-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));}/*!sc*/ @media (forced-colors:active){.itjSOb:focus,.itjSOb:focus-visible,.itjSOb > a.focus-visible{outline:solid 1px transparent !important;}}/*!sc*/ .itjSOb [data-component="ActionList.Item--DividerContainer"]{position:relative;}/*!sc*/ .itjSOb [data-component="ActionList.Item--DividerContainer"]::before{content:" ";display:block;position:absolute;width:100%;top:-7px;border:0 solid;border-top-width:0;border-color:var(--divider-color,transparent);}/*!sc*/ .itjSOb:not(:first-of-type){--divider-color:var(--borderColor-muted,var(--color-action-list-item-inline-divider,rgba(208,215,222,0.48)));}/*!sc*/ [data-component="ActionList.Divider"] + .Item__LiBox-sc-yeql7o-0{--divider-color:transparent !important;}/*!sc*/ .itjSOb:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]),.itjSOb[data-focus-visible-added]:not([aria-disabled]):not([data-inactive]){--divider-color:transparent;}/*!sc*/ .itjSOb:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]) + .Item__LiBox-sc-yeql7o-0,.itjSOb[data-focus-visible-added] + li{--divider-color:transparent;}/*!sc*/ @media (hover:hover) and (pointer:fine){.itjSOb:hover:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));box-shadow:inset 0 0 0 max(1px,0.0625rem) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border,transparent));}.itjSOb:focus-visible,.itjSOb > a.focus-visible,.itjSOb:focus.focus-visible{outline:none;border:2 solid;box-shadow:0 0 0 2px var(--bgColor-accent-emphasis,var(--color-accent-emphasis,#0969da));}.itjSOb:active:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));}}/*!sc*/ .lnYQME{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:0;padding-right:0;font-size:14px;padding-top:0;padding-bottom:0;line-height:20px;min-height:5px;margin-left:8px;margin-right:8px;border-radius:6px;-webkit-transition:background 33.333ms linear;transition:background 33.333ms linear;color:var(--fgColor-default,var(--color-fg-default,#1F2328));cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:unset;border:unset;width:calc(100% - 16px);font-family:unset;text-align:unset;margin-top:unset;margin-bottom:unset;}/*!sc*/ .lnYQME[data-loading]{cursor:default;}/*!sc*/ .lnYQME[aria-disabled],.lnYQME[data-inactive]{cursor:not-allowed;}/*!sc*/ .lnYQME[aria-disabled] [data-component="ActionList.Checkbox"],.lnYQME[data-inactive] [data-component="ActionList.Checkbox"]{cursor:not-allowed;background-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));border-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));}/*!sc*/ @media (forced-colors:active){.lnYQME:focus,.lnYQME:focus-visible,.lnYQME > a.focus-visible{outline:solid 1px transparent !important;}}/*!sc*/ .lnYQME [data-component="ActionList.Item--DividerContainer"]{position:relative;}/*!sc*/ .lnYQME [data-component="ActionList.Item--DividerContainer"]::before{content:" ";display:block;position:absolute;width:100%;top:-7px;border:0 solid;border-top-width:0;border-color:var(--divider-color,transparent);}/*!sc*/ .lnYQME:not(:first-of-type){--divider-color:var(--borderColor-muted,var(--color-action-list-item-inline-divider,rgba(208,215,222,0.48)));}/*!sc*/ [data-component="ActionList.Divider"] + .Item__LiBox-sc-yeql7o-0{--divider-color:transparent !important;}/*!sc*/ .lnYQME:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]),.lnYQME[data-focus-visible-added]:not([aria-disabled]):not([data-inactive]){--divider-color:transparent;}/*!sc*/ .lnYQME:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]) + .Item__LiBox-sc-yeql7o-0,.lnYQME[data-focus-visible-added] + li{--divider-color:transparent;}/*!sc*/ @media (hover:hover) and (pointer:fine){.lnYQME:hover:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));box-shadow:inset 0 0 0 max(1px,0.0625rem) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border,transparent));}.lnYQME:focus-visible,.lnYQME > a.focus-visible,.lnYQME:focus.focus-visible{outline:none;border:2 solid;box-shadow:0 0 0 2px var(--bgColor-accent-emphasis,var(--color-accent-emphasis,#0969da));}.lnYQME:active:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));}}/*!sc*/ .hTSEii{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:0;padding-right:0;font-size:14px;padding-top:0;padding-bottom:0;line-height:20px;min-height:5px;margin-left:8px;margin-right:8px;border-radius:6px;-webkit-transition:background 33.333ms linear;transition:background 33.333ms linear;color:var(--fgColor-default,var(--color-fg-default,#1F2328));cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:unset;border:unset;width:calc(100% - 16px);font-family:unset;text-align:unset;margin-top:unset;margin-bottom:unset;font-weight:600;background-color:var(--control-transparent-bgColor-selected,var(--color-action-list-item-default-selected-bg,rgba(208,215,222,0.24)));}/*!sc*/ .hTSEii[data-loading]{cursor:default;}/*!sc*/ .hTSEii[aria-disabled],.hTSEii[data-inactive]{cursor:not-allowed;}/*!sc*/ .hTSEii[aria-disabled] [data-component="ActionList.Checkbox"],.hTSEii[data-inactive] [data-component="ActionList.Checkbox"]{cursor:not-allowed;background-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));border-color:var(--color-input-disabled-bg,rgba(175,184,193,0.2));}/*!sc*/ @media (forced-colors:active){.hTSEii:focus,.hTSEii:focus-visible,.hTSEii > a.focus-visible{outline:solid 1px transparent !important;}}/*!sc*/ .hTSEii [data-component="ActionList.Item--DividerContainer"]{position:relative;}/*!sc*/ .hTSEii [data-component="ActionList.Item--DividerContainer"]::before{content:" ";display:block;position:absolute;width:100%;top:-7px;border:0 solid;border-top-width:0;border-color:var(--divider-color,transparent);}/*!sc*/ .hTSEii:not(:first-of-type){--divider-color:var(--borderColor-muted,var(--color-action-list-item-inline-divider,rgba(208,215,222,0.48)));}/*!sc*/ [data-component="ActionList.Divider"] + .Item__LiBox-sc-yeql7o-0{--divider-color:transparent !important;}/*!sc*/ .hTSEii:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]),.hTSEii[data-focus-visible-added]:not([aria-disabled]):not([data-inactive]){--divider-color:transparent;}/*!sc*/ .hTSEii:hover:not([aria-disabled]):not([data-inactive]):not([data-loading]) + .Item__LiBox-sc-yeql7o-0,.hTSEii[data-focus-visible-added] + li{--divider-color:transparent;}/*!sc*/ .hTSEii::after{position:absolute;top:calc(50% - 12px);left:-8px;width:4px;height:24px;content:"";background-color:var(--fgColor-accent,var(--color-accent-fg,#0969da));border-radius:6px;}/*!sc*/ @media (hover:hover) and (pointer:fine){.hTSEii:hover:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg,rgba(208,215,222,0.32)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));box-shadow:inset 0 0 0 max(1px,0.0625rem) var(--control-transparent-borderColor-active,var(--color-action-list-item-default-active-border,transparent));}.hTSEii:focus-visible,.hTSEii > a.focus-visible,.hTSEii:focus.focus-visible{outline:none;border:2 solid;box-shadow:0 0 0 2px var(--bgColor-accent-emphasis,var(--color-accent-emphasis,#0969da));}.hTSEii:active:not([aria-disabled]):not([data-inactive]){background-color:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg,rgba(208,215,222,0.48)));color:var(--fgColor-default,var(--color-fg-default,#1F2328));}}/*!sc*/ data-styled.g31[id="Item__LiBox-sc-yeql7o-0"]{content:"itjSOb,lnYQME,hTSEii,"}/*!sc*/ .fuIgwR{color:var(--fgColor-accent,var(--color-accent-fg,#0969da));-webkit-text-decoration:none;text-decoration:none;padding-left:16px;padding-right:8px;padding-top:6px;padding-bottom:6px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;border-radius:6px;color:inherit;font-size:12px;font-weight:400;}/*!sc*/ [data-a11y-link-underlines='true'] .Link__StyledLink-sc-14289xe-0[data-inline='true']{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .fuIgwR:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .fuIgwR:is(button){display:inline-block;padding:0;font-size:inherit;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;}/*!sc*/ .fuIgwR:hover{color:inherit;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ .cJbOew{color:var(--fgColor-accent,var(--color-accent-fg,#0969da));-webkit-text-decoration:none;text-decoration:none;padding-left:8px;padding-right:8px;padding-top:6px;padding-bottom:6px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;border-radius:6px;color:inherit;}/*!sc*/ [data-a11y-link-underlines='true'] .Link__StyledLink-sc-14289xe-0[data-inline='true']{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .cJbOew:hover{-webkit-text-decoration:underline;text-decoration:underline;}/*!sc*/ .cJbOew:is(button){display:inline-block;padding:0;font-size:inherit;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;}/*!sc*/ .cJbOew:hover{color:inherit;-webkit-text-decoration:none;text-decoration:none;}/*!sc*/ data-styled.g32[id="Link__StyledLink-sc-14289xe-0"]{content:"fuIgwR,cJbOew,"}/*!sc*/ .cnCOhW{font-size:14px;line-height:20px;color:var(--fgColor-default,var(--color-fg-default,#1F2328));vertical-align:middle;background-color:var(--bgColor-default,var(--color-canvas-default,#ffffff));border:1px solid var(--control-borderColor-rest,var(--borderColor-default,var(--color-border-default,#d0d7de)));border-radius:6px;outline:none;box-shadow:var(--shadow-inset,var(--color-primer-shadow-inset,inset 0 1px 0 rgba(208,215,222,0.2)));display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;min-height:32px;overflow:hidden;width:100%;height:2rem;-webkit-transition:width 0.3s ease-in-out;transition:width 0.3s ease-in-out;border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none;min-width:15rem;}/*!sc*/ .cnCOhW input,.cnCOhW textarea{cursor:text;}/*!sc*/ .cnCOhW select{cursor:pointer;}/*!sc*/ .cnCOhW input::-webkit-input-placeholder,.cnCOhW textarea::-webkit-input-placeholder,.cnCOhW select::-webkit-input-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .cnCOhW input::-moz-placeholder,.cnCOhW textarea::-moz-placeholder,.cnCOhW select::-moz-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .cnCOhW input:-ms-input-placeholder,.cnCOhW textarea:-ms-input-placeholder,.cnCOhW select:-ms-input-placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .cnCOhW input::placeholder,.cnCOhW textarea::placeholder,.cnCOhW select::placeholder{color:var(---control-fgColor-placeholder,var(--fgColor-muted,var(--color-fg-muted,#656d76)));}/*!sc*/ .cnCOhW:focus-within{border-color:var(--fgColor-accent,var(--color-accent-fg,#0969da));outline:2px solid var(--fgColor-accent,var(--color-accent-fg,#0969da));outline-offset:-1px;}/*!sc*/ .cnCOhW > textarea{padding:12px;}/*!sc*/ @media (min-width:768px){.cnCOhW{font-size:14px;}}/*!sc*/ data-styled.g34[id="TextInputWrapper__TextInputBaseWrapper-sc-1mqhpbi-0"]{content:"cnCOhW,"}/*!sc*/ .hmJNAM{background-repeat:no-repeat;background-position:right 8px center;padding-left:0;padding-right:0;width:100%;height:2rem;-webkit-transition:width 0.3s ease-in-out;transition:width 0.3s ease-in-out;border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none;min-width:15rem;}/*!sc*/ .hmJNAM > :not(:last-child){margin-right:8px;}/*!sc*/ .hmJNAM .TextInput-icon,.hmJNAM .TextInput-action{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}/*!sc*/ .hmJNAM > input,.hmJNAM > select{padding-left:12px;padding-right:12px;}/*!sc*/ data-styled.g35[id="TextInputWrapper-sc-1mqhpbi-1"]{content:"hmJNAM,"}/*!sc*/ .jvumlb{border:0;font-size:inherit;font-family:inherit;background-color:transparent;-webkit-appearance:none;color:inherit;width:100%;}/*!sc*/ .jvumlb:focus{outline:0;}/*!sc*/ data-styled.g36[id="UnstyledTextInput-sc-14ypya-0"]{content:"jvumlb,"}/*!sc*/ </style></head><body><div id="__next"><a href="#main-content" class="visually-hidden skip-button color-bg-accent-emphasis color-fg-on-emphasis">Skip to main content</a><div data-container="header" class="border-bottom d-unset color-border-muted no-print z-3 color-bg-default Header_header__frpqb"><div data-container="notifications"></div><header class="color-bg-default p-2 position-sticky top-0 z-1 border-bottom" role="banner" aria-label="Main"><div class="d-flex flex-justify-between p-2 flex-items-center flex-wrap" data-testid="desktop-header"><div tabindex="-1" class="Header_logoWithClosedSearch__zhF6Q" id="github-logo"><a rel="" class="d-flex flex-items-center color-fg-default no-underline mr-3" href="/en"><svg aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.5.75C6.146.75 1 5.896 1 12.25c0 5.089 3.292 9.387 7.863 10.91.575.101.79-.244.79-.546 0-.273-.014-1.178-.014-2.142-2.889.532-3.636-.704-3.866-1.35-.13-.331-.69-1.352-1.18-1.625-.402-.216-.977-.748-.014-.762.906-.014 1.553.834 1.769 1.179 1.035 1.74 2.688 1.25 3.349.948.1-.747.402-1.25.733-1.538-2.559-.287-5.232-1.279-5.232-5.678 0-1.25.445-2.285 1.178-3.09-.115-.288-.517-1.467.115-3.048 0 0 .963-.302 3.163 1.179.92-.259 1.897-.388 2.875-.388.977 0 1.955.13 2.875.388 2.2-1.495 3.162-1.179 3.162-1.179.633 1.581.23 2.76.115 3.048.733.805 1.179 1.825 1.179 3.09 0 4.413-2.688 5.39-5.247 5.678.417.36.776 1.05.776 2.128 0 1.538-.014 2.774-.014 3.162 0 .302.216.662.79.547C20.709 21.637 24 17.324 24 12.25 24 5.896 18.854.75 12.5.75Z"></path></svg><span class="h4 text-semibold ml-2 mr-3">GitHub Docs</span></a><div class="hide-sm border-left pl-3"><div data-testid="version-picker" class=""><button type="button" aria-label="Select GitHub product version: current version is free-pro-team@latest" class="types__StyledButton-sc-ws60qy-0 hXCKEr color-fg-default width-full p-1 pl-2 pr-2" aria-haspopup="true" aria-expanded="false" tabindex="0" data-loading="false" aria-describedby=":Ripn6:-loading-announcement" id=":Ripn6:"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 cEhRXB"><span data-component="text"><span style="white-space:pre-wrap">Version: </span><span class="f5 color-fg-muted text-normal" data-testid="field">Free, Pro, &amp; Team</span></span></span><span data-component="trailingAction" class="Box-sc-g0xbh4-0 dmdEgz"><svg aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></button></div></div></div><div class="d-flex flex-items-center"><div class="Header_searchContainerWithClosedSearch__h372b mr-3"><div data-testid="search"><div class="position-relative z-2"><form role="search" class="width-full d-flex"><meta name="viewport" content="width=device-width initial-scale=1"/><label class="text-normal width-full"><span class="visually-hidden" aria-describedby="Enter a search term to find it in the GitHub Docs.">Search GitHub Docs</span><span class="TextInputWrapper__TextInputBaseWrapper-sc-1mqhpbi-0 TextInputWrapper-sc-1mqhpbi-1 cnCOhW hmJNAM TextInput-wrapper" aria-busy="false"><input type="search" aria-required="true" data-testid="site-search-input" placeholder="Search GitHub Docs" autoComplete="off" autoCorrect="off" autoCapitalize="off" spellcheck="false" maxLength="512" aria-label="Search GitHub Docs" aria-describedby="Enter a search term to find it in the GitHub Docs." data-component="input" class="UnstyledTextInput-sc-14ypya-0 jvumlb" value=""/></span></label><button data-component="IconButton" type="submit" data-loading="false" data-no-visuals="true" aria-describedby=":Rucpn6:-loading-announcement" aria-labelledby=":R6cpn6:" class="types__StyledButton-sc-ws60qy-0 jOdgLl"><svg aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":R6cpn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Search</span></form></div></div></div><div class="d-none d-lg-flex flex-items-center"><div data-testid="language-picker" class="d-flex"><button data-component="IconButton" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" data-loading="false" data-no-visuals="true" aria-describedby=":Rkpn6:-loading-announcement" aria-labelledby=":Rukpn6:" id=":Rkpn6:" class="types__StyledButton-sc-ws60qy-0 hmWbvh"><svg aria-hidden="true" focusable="false" class="octicon octicon-globe" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":Rukpn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Select language: current language is English</span></div></div><button data-component="IconButton" type="button" class="types__StyledButton-sc-ws60qy-0 hmWbvh hide-lg hide-xl d-flex flex-items-center" data-testid="mobile-search-button" aria-expanded="false" data-loading="false" data-no-visuals="true" aria-describedby=":R74pn6:-loading-announcement" aria-labelledby=":R14pn6:"><svg aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":R14pn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Open Search Bar</span><button data-component="IconButton" type="button" class="types__StyledButton-sc-ws60qy-0 lkeyoI px-3" data-testid="mobile-search-button" aria-expanded="false" data-loading="false" data-no-visuals="true" aria-describedby=":R7cpn6:-loading-announcement" aria-labelledby=":R1cpn6:"><svg aria-hidden="true" focusable="false" class="octicon octicon-x" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":R1cpn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Close Search Bar</span><div><button data-component="IconButton" type="button" data-testid="mobile-menu" aria-haspopup="true" aria-expanded="false" tabindex="0" data-loading="false" data-no-visuals="true" aria-describedby=":R1kpn6:-loading-announcement" aria-labelledby=":Rvkpn6:" id=":R1kpn6:" class="types__StyledButton-sc-ws60qy-0 htZXvk"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":Rvkpn6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Open Menu</span></div></div></div><div class="d-flex flex-items-center d-xxl-none mt-2" data-testid="header-subnav"><div class="mr-2" data-testid="header-subnav-hamburger"><button data-component="IconButton" type="button" data-testid="sidebar-hamburger" class="types__StyledButton-sc-ws60qy-0 jCopKa color-fg-muted" data-loading="false" data-no-visuals="true" aria-describedby=":R3b9n6:-loading-announcement" aria-labelledby=":Rb9n6:"><svg aria-hidden="true" focusable="false" class="octicon octicon-three-bars" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75Zm0 5A.75.75 0 0 1 1.75 7h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 7.75ZM1.75 12h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5Z"></path></svg></button><span data-direction="s" aria-hidden="true" id=":Rb9n6:" class="Tooltip__StyledTooltip-sc-e45c7z-0 eiGLpS">Open Sidebar</span></div><div class="mr-auto width-full" data-search="breadcrumbs"><nav data-testid="breadcrumbs-header" class="f5 breadcrumbs Breadcrumbs_breadcrumbs__xAC4i" aria-label="Breadcrumb" data-container="breadcrumbs"><ul><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Authentication" class="Link--primary mr-2 color-fg-muted" href="/en/authentication">Authentication</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Account security" class="Link--primary mr-2 color-fg-muted" href="/en/authentication/keeping-your-account-and-data-secure">Account security</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Remove sensitive data" class="Link--primary mr-2 color-fg-muted" href="/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository">Remove sensitive data</a></li></ul></nav></div></div></header></div><div class="d-lg-flex"><div data-container="nav" class="position-sticky d-none border-right d-xxl-block" style="width:326px;height:calc(100vh - 65px);top:65px"><nav aria-labelledby="allproducts-menu"><div class="d-none px-4 pb-3 border-bottom d-xxl-block"><div class="mt-3"><a rel="" class="f6 pl-2 pr-5 ml-n1 pb-1 Link--primary color-fg-default" href="/en"><svg aria-hidden="true" focusable="false" class="mr-1" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg>Home</a></div><div class="mt-3" id="allproducts-menu"><a rel="" data-testid="sidebar-product-xl" class="d-block pl-1 mb-2 h3 color-fg-default no-underline _product-title" href="/en/authentication">Authentication</a></div></div><div class="border-right d-none d-xxl-block bg-primary overflow-y-auto flex-shrink-0" style="width:326px;height:calc(100vh - 175px);padding-bottom:185px"><div data-testid="sidebar" style="overflow-y:auto" class="pt-3"><div class="ml-3" data-testid="product-sidebar"><nav aria-label="Product sidebar" class="NavList__NavBox-sc-1c8ygf7-0"><ul class="List__ListBox-sc-1x7olzq-0 hgjakc"><li aria-labelledby=":R3b6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R3b6n6:--label " id=":R3b6n6:" aria-expanded="true" aria-controls=":R3b6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R3b6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Account security</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 gzcJGA" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R3b6n6H1:" aria-labelledby=":R3b6n6:" class="Box-sc-g0xbh4-0 enEvIH"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6jb6n6:--label " id=":R6jb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/about-authentication-to-github"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6jb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authentication to GitHub</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rajb6n6:--label " id=":Rajb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/creating-a-strong-password"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rajb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Create a strong password</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rejb6n6:--label " id=":Rejb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/switching-between-accounts"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rejb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Switching between accounts</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rijb6n6:--label " id=":Rijb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/verifying-new-devices-when-signing-in"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rijb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Verifying devices on sign in</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmjb6n6:--label " id=":Rmjb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmjb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Update access credentials</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rqjb6n6:--label " id=":Rqjb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rqjb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Manage personal access tokens</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rujb6n6:--label " id=":Rujb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rujb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Reviewing your SSH keys</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R12jb6n6:--label " id=":R12jb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/reviewing-your-deploy-keys"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R12jb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Deploy keys</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R16jb6n6:--label " id=":R16jb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R16jb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Token expiration</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1ajb6n6:--label " id=":R1ajb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1ajb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Review security log</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1ejb6n6:--label " id=":R1ejb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/security-log-events"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1ejb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Security log events</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 hTSEii"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1ijb6n6:--label " id=":R1ijb6n6:" aria-current="page" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1ijb6n6:--label" class="Box-sc-g0xbh4-0 ivpQTm">Remove sensitive data</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1mjb6n6:--label " id=":R1mjb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/about-anonymized-urls"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1mjb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About anonymized URLs</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1qjb6n6:--label " id=":R1qjb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1qjb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">GitHub&#x27;s IP addresses</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1ujb6n6:--label " id=":R1ujb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1ujb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">SSH key fingerprints</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R22jb6n6:--label " id=":R22jb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/sudo-mode"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R22jb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Sudo mode</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R26jb6n6:--label " id=":R26jb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R26jb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Unauthorized access</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R2ajb6n6:--label " id=":R2ajb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/keeping-your-account-and-data-secure/viewing-and-managing-your-sessions"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R2ajb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Viewing and managing sessions</span></div></a></li></ul></div></li><li aria-labelledby=":R5b6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R5b6n6:--label " id=":R5b6n6:" aria-expanded="false" aria-controls=":R5b6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R5b6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Secure your account with 2FA</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R5b6n6H1:" aria-labelledby=":R5b6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6lb6n6:--label " id=":R6lb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6lb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About 2FA</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ralb6n6:--label " id=":Ralb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ralb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Configure 2FA</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Relb6n6:--label " id=":Relb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Relb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Configure 2FA recovery</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rilb6n6:--label " id=":Rilb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rilb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Access GitHub with 2FA</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmlb6n6:--label " id=":Rmlb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmlb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Recover an account with 2FA</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rqlb6n6:--label " id=":Rqlb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/securing-your-account-with-two-factor-authentication-2fa/changing-your-two-factor-authentication-method"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rqlb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Change 2FA method</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rulb6n6:--label " id=":Rulb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-mandatory-two-factor-authentication"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rulb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About mandatory 2FA</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R12lb6n6:--label " id=":R12lb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/securing-your-account-with-two-factor-authentication-2fa/countries-where-sms-authentication-is-supported"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R12lb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Countries supporting SMS</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R16lb6n6:--label " id=":R16lb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/securing-your-account-with-two-factor-authentication-2fa/disabling-two-factor-authentication-for-your-personal-account"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R16lb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Disable 2FA</span></div></a></li></ul></div></li><li aria-labelledby=":R7b6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R7b6n6:--label " id=":R7b6n6:" aria-expanded="false" aria-controls=":R7b6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R7b6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Authenticate with a passkey</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R7b6n6H1:" aria-labelledby=":R7b6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6nb6n6:--label " id=":R6nb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/authenticating-with-a-passkey/about-passkeys"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6nb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About passkeys</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ranb6n6:--label " id=":Ranb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/authenticating-with-a-passkey/managing-your-passkeys"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ranb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Manage your passkeys</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Renb6n6:--label " id=":Renb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/authenticating-with-a-passkey/signing-in-with-a-passkey"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Renb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Sign in with a passkey</span></div></a></li></ul></div></li><li aria-labelledby=":R9b6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":R9b6n6:--label " id=":R9b6n6:" aria-expanded="false" aria-controls=":R9b6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":R9b6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Connect with SSH</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":R9b6n6H1:" aria-labelledby=":R9b6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6pb6n6:--label " id=":R6pb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/connecting-to-github-with-ssh/about-ssh"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6pb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">About SSH</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rapb6n6:--label " id=":Rapb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rapb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">SSH agent forwarding</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Repb6n6:--label " id=":Repb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/connecting-to-github-with-ssh/managing-deploy-keys"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Repb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Managing deploy keys</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ripb6n6:--label " id=":Ripb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ripb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Check for existing SSH key</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmpb6n6:--label " id=":Rmpb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmpb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Generate new SSH key</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rqpb6n6:--label " id=":Rqpb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rqpb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Add a new SSH key</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rupb6n6:--label " id=":Rupb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rupb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Test your SSH connection</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R12pb6n6:--label " id=":R12pb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R12pb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">SSH key passphrases</span></div></a></li></ul></div></li><li aria-labelledby=":Rbb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Rbb6n6:--label " id=":Rbb6n6:" aria-expanded="false" aria-controls=":Rbb6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Rbb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Troubleshooting SSH</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Rbb6n6H1:" aria-labelledby=":Rbb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6rb6n6:--label " id=":R6rb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6rb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Use SSH over HTTPS port</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rarb6n6:--label " id=":Rarb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/recovering-your-ssh-key-passphrase"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rarb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Recover SSH key passphrase</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rerb6n6:--label " id=":Rerb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/deleted-or-missing-ssh-keys"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rerb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Deleted or missing SSH keys</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rirb6n6:--label " id=":Rirb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-host-key-verification-failed"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rirb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Error: Host key verification failed</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmrb6n6:--label " id=":Rmrb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-permission-denied-publickey"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmrb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Permission denied (publickey)</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rqrb6n6:--label " id=":Rqrb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-bad-file-number"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rqrb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Error: Bad file number</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rurb6n6:--label " id=":Rurb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-key-already-in-use"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rurb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Error: Key already in use</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R12rb6n6:--label " id=":R12rb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-permission-to-userrepo-denied-to-other-user"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R12rb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Permission denied other-user</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R16rb6n6:--label " id=":R16rb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-permission-to-userrepo-denied-to-userother-repo"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R16rb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Permission denied other-repo</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1arb6n6:--label " id=":R1arb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1arb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Agent failure to sign</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1erb6n6:--label " id=":R1erb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-ssh-add-illegal-option----apple-use-keychain"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1erb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">ssh-add &quot;illegal option&quot; error</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1irb6n6:--label " id=":R1irb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-ssl-certificate-problem-verify-that-the-ca-cert-is-ok"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1irb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">SSL certificate problem</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1mrb6n6:--label " id=":R1mrb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-unknown-key-type"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1mrb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Error: Unknown key type</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R1qrb6n6:--label " id=":R1qrb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-ssh/error-were-doing-an-ssh-key-audit"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R1qrb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">SSH key audit</span></div></a></li></ul></div></li><li aria-labelledby=":Rdb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Rdb6n6:--label " id=":Rdb6n6:" aria-expanded="false" aria-controls=":Rdb6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Rdb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Verify commit signatures</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Rdb6n6H1:" aria-labelledby=":Rdb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6tb6n6:--label " id=":R6tb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/managing-commit-signature-verification/about-commit-signature-verification"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6tb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Commit signature verification</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ratb6n6:--label " id=":Ratb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ratb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Displaying verification for all commits</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Retb6n6:--label " id=":Retb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Retb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Existing GPG keys</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ritb6n6:--label " id=":Ritb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ritb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Generating a new GPG key</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rmtb6n6:--label " id=":Rmtb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rmtb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Add a GPG key</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rqtb6n6:--label " id=":Rqtb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rqtb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Tell Git about your signing key</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Rutb6n6:--label " id=":Rutb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Rutb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Associate email with GPG key</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R12tb6n6:--label " id=":R12tb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/managing-commit-signature-verification/signing-commits"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R12tb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Signing commits</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R16tb6n6:--label " id=":R16tb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/managing-commit-signature-verification/signing-tags"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R16tb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Signing tags</span></div></a></li></ul></div></li><li aria-labelledby=":Rfb6n6:" class="Box-sc-g0xbh4-0 Ywlla"><button tabindex="0" aria-labelledby=":Rfb6n6:--label " id=":Rfb6n6:" aria-expanded="false" aria-controls=":Rfb6n6H1:" class="Item__LiBox-sc-yeql7o-0 itjSOb"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><div class="Box-sc-g0xbh4-0 cUxMoC"><span id=":Rfb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Troubleshoot verification</span><span class="Box-sc-g0xbh4-0 lmYNOb"><svg aria-hidden="true" focusable="false" class="Octicon-sc-9kayk9-0 daAEFx" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></span></div></div></button><div><ul id=":Rfb6n6H1:" aria-labelledby=":Rfb6n6:" class="Box-sc-g0xbh4-0 gMkIpo"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":R6vb6n6:--label " id=":R6vb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-commit-signature-verification/checking-your-commit-and-tag-signature-verification-status"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R6vb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Check verification status</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a sx="[object Object]" tabindex="0" aria-labelledby=":Ravb6n6:--label " id=":Ravb6n6:" aria-current="false" class="Link__StyledLink-sc-14289xe-0 fuIgwR" href="/en/authentication/troubleshooting-commit-signature-verification/using-a-verified-email-address-in-your-gpg-key"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":Ravb6n6:--label" class="Box-sc-g0xbh4-0 bmseMA">Use verified email in GPG key</span></div></a></li></ul></div></li></ul></nav></div></div></div></nav></div><div class="flex-column flex-1 min-width-0"><main id="main-content" style="scroll-margin-top:5rem"><div class="container-xl px-3 px-md-6 my-4"><div class="d-none d-xxl-block mt-3 mr-auto width-full"><nav data-testid="breadcrumbs-in-article" class="f5 breadcrumbs Breadcrumbs_breadcrumbs__xAC4i" aria-label="Breadcrumb" data-container="breadcrumbs"><ul><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Authentication" class="Link--primary mr-2 color-fg-muted" href="/en/authentication">Authentication</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Account security" class="Link--primary mr-2 color-fg-muted" href="/en/authentication/keeping-your-account-and-data-secure">Account security</a><span class="color-fg-muted pr-2">/</span></li><li class="d-inline-block"><a rel="" data-testid="breadcrumb-link" title="Remove sensitive data" class="Link--primary mr-2 color-fg-muted d-none" href="/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository">Remove sensitive data</a></li></ul></nav></div><div class="ArticleGridLayout_containerBox__lLLio"><div class="Box-sc-g0xbh4-0 eQiQea"><div class="d-flex flex-items-baseline flex-justify-between" data-container="title"><h1 id="title-h1" class="border-bottom-0">Removing sensitive data from a repository</h1></div></div><div id="article-intro" class="Box-sc-g0xbh4-0 ijSsTo f4 pb-4"><div class="f2 color-fg-muted mb-3 Lead_container__m3L5f _page-intro" data-container="lead" data-testid="lead" data-search="lead"><p>If you commit sensitive data into a Git repository, you can remove it from the history.</p></div></div><div data-container="toc" class="Box-sc-g0xbh4-0 giVcWX ArticleGridLayout_sidebarBox__Cj_03 border-bottom border-lg-0 pb-4 mb-5 pb-xl-0 mb-xl-0"><h2 id="in-this-article" class="Heading__StyledHeading-sc-1c1dgg0-0 bebFBv mb-1 ml-3" aria-label="In this article">In this article</h2><nav data-testid="minitoc" class="NavList__NavBox-sc-1c8ygf7-0 Minitocs_miniToc__NaGol my-2" aria-labelledby="in-this-article"><ul class="List__ListBox-sc-1x7olzq-0 hgjakc"><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a tabindex="0" aria-labelledby=":R2dkteqn6:--label " id=":R2dkteqn6:" aria-current="false" href="#about-removing-sensitive-data-from-a-repository" class="Link__StyledLink-sc-14289xe-0 cJbOew Minitocs_nested__JSAov"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R2dkteqn6:--label" class="Box-sc-g0xbh4-0 bmseMA">About removing sensitive data from a repository</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a tabindex="0" aria-labelledby=":R2lkteqn6:--label " id=":R2lkteqn6:" aria-current="false" href="#about-sensitive-data-exposure" class="Link__StyledLink-sc-14289xe-0 cJbOew Minitocs_nested__JSAov"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R2lkteqn6:--label" class="Box-sc-g0xbh4-0 bmseMA">About sensitive data exposure</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a tabindex="0" aria-labelledby=":R2tkteqn6:--label " id=":R2tkteqn6:" aria-current="false" href="#purging-a-file-from-your-repositorys-history" class="Link__StyledLink-sc-14289xe-0 cJbOew Minitocs_nested__JSAov"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R2tkteqn6:--label" class="Box-sc-g0xbh4-0 bmseMA">Purging a file from your repository&#x27;s history</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a tabindex="0" aria-labelledby=":R35kteqn6:--label " id=":R35kteqn6:" aria-current="false" href="#fully-removing-the-data-from-github" class="Link__StyledLink-sc-14289xe-0 cJbOew Minitocs_nested__JSAov"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R35kteqn6:--label" class="Box-sc-g0xbh4-0 bmseMA">Fully removing the data from GitHub</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a tabindex="0" aria-labelledby=":R3dkteqn6:--label " id=":R3dkteqn6:" aria-current="false" href="#avoiding-accidental-commits-in-the-future" class="Link__StyledLink-sc-14289xe-0 cJbOew Minitocs_nested__JSAov"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R3dkteqn6:--label" class="Box-sc-g0xbh4-0 bmseMA">Avoiding accidental commits in the future</span></div></a></li><li class="Item__LiBox-sc-yeql7o-0 lnYQME"><a tabindex="0" aria-labelledby=":R3lkteqn6:--label " id=":R3lkteqn6:" aria-current="false" href="#further-reading" class="Link__StyledLink-sc-14289xe-0 cJbOew Minitocs_nested__JSAov"><div data-component="ActionList.Item--DividerContainer" class="Box-sc-g0xbh4-0 hROlum"><span id=":R3lkteqn6:--label" class="Box-sc-g0xbh4-0 bmseMA">Further reading</span></div></a></li></ul></nav></div><div data-container="article" data-search="article-body" class="Box-sc-g0xbh4-0 kohLxz"><div id="article-contents"><div class="MarkdownContent_markdownBody__v5MYy markdown-body"><h2 id="about-removing-sensitive-data-from-a-repository" tabindex="-1"><a class="heading-link" href="#about-removing-sensitive-data-from-a-repository">About removing sensitive data from a repository<span class="heading-link-symbol" aria-hidden="true"></span></a></h2> <p>When altering your repository's history using tools like <code>git filter-repo</code> or the BFG Repo-Cleaner, it's crucial to understand the implications, especially regarding open pull requests and sensitive data.</p> <p>The <code>git filter-repo</code> tool and the BFG Repo-Cleaner rewrite your repository's history, which changes the SHAs for existing commits that you alter and any dependent commits. Changed commit SHAs may affect open pull requests in your repository. We recommend merging or closing all open pull requests before removing files from your repository.</p> <p>You can remove the file from the latest commit with <code>git rm</code>. For information on removing a file that was added with the latest commit, see "<a href="/en/repositories/working-with-files/managing-large-files/about-large-files-on-github#removing-files-from-a-repositorys-history" _originalHref="/repositories/working-with-files/managing-large-files/about-large-files-on-github#removing-files-from-a-repositorys-history">About large files on GitHub</a>."</p> <h2 id="about-sensitive-data-exposure" tabindex="-1"><a class="heading-link" href="#about-sensitive-data-exposure">About sensitive data exposure<span class="heading-link-symbol" aria-hidden="true"></span></a></h2> <p>This article tells you how to make commits with sensitive data unreachable from any branches or tags in your repository on GitHub.com. However, those commits may still be accessible elsewhere:</p> <ul> <li>In any clones or forks of your repository</li> <li>Directly via their SHA-1 hashes in cached views on GitHub</li> <li>Through any pull requests that reference them</li> </ul> <p>You cannot remove sensitive data from other users' clones of your repository, but you can permanently remove cached views and references to the sensitive data in pull requests on GitHub by contacting us through the <a href="https://support.github.com">GitHub Support portal</a>.</p> <div class="ghd-alert ghd-alert-done"><p class="ghd-alert-title"><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon mr-2" aria-hidden><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p> <p> GitHub Support won't remove non-sensitive data, and will only assist in the removal of sensitive data in cases where we determine that the risk can't be mitigated by rotating affected credentials.</p> </div> <p>Once you have pushed a commit to GitHub, you should consider any sensitive data in the commit compromised. If you have committed a password, you should change it. If you have committed a key, generate a new one.</p> <p>If the commit that introduced the sensitive data exists in any forks, it will continue to be accessible there. You will need to coordinate with the owners of the forks, asking them to remove the sensitive data or delete the fork entirely. GitHub cannot provide contact information for these owners.</p> <p>Consider these limitations and challenges in your decision to rewrite your repository's history.</p> <h2 id="purging-a-file-from-your-repositorys-history" tabindex="-1"><a class="heading-link" href="#purging-a-file-from-your-repositorys-history">Purging a file from your repository's history<span class="heading-link-symbol" aria-hidden="true"></span></a></h2> <p>You can purge a file from your repository's history using either the <code>git filter-repo</code> tool or the BFG Repo-Cleaner open source tool.</p> <div class="ghd-alert ghd-alert-accent"><p class="ghd-alert-title"><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon mr-2" aria-hidden><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p> <p> If sensitive data is located in a file that's identified as a binary file, you'll need to remove the file from the history, as you can't modify it to remove or replace the data.</p> </div> <h3 id="using-the-bfg" tabindex="-1"><a class="heading-link" href="#using-the-bfg">Using the BFG<span class="heading-link-symbol" aria-hidden="true"></span></a></h3> <p>The <a href="https://rtyley.github.io/bfg-repo-cleaner/">BFG Repo-Cleaner</a> is a tool that's built and maintained by the open source community. It provides a faster, simpler alternative to <code>git filter-repo</code> for removing unwanted data.</p> <p>For example, to remove your file with sensitive data and leave your latest commit untouched, run:</p> <pre><code class="hljs language-shell">bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA </code></pre> <p>To replace all text listed in <code>passwords.txt</code> wherever it can be found in your repository's history, run:</p> <pre><code class="hljs language-shell">bfg --replace-text passwords.txt </code></pre> <p>After the sensitive data is removed, you must force push your changes to GitHub. Force pushing rewrites the repository history, which removes sensitive data from the commit history. If you force push, it may overwrite commits that other people have based their work on.</p> <pre><code class="hljs language-shell">git push --force </code></pre> <p>See the <a href="https://rtyley.github.io/bfg-repo-cleaner/">BFG Repo-Cleaner</a>'s documentation for full usage and download instructions.</p> <h3 id="using-git-filter-repo" tabindex="-1"><a class="heading-link" href="#using-git-filter-repo">Using git filter-repo<span class="heading-link-symbol" aria-hidden="true"></span></a></h3> <div class="ghd-alert ghd-alert-attention"><p class="ghd-alert-title"><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon mr-2" aria-hidden><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p> <p> If you run <code>git filter-repo</code> after stashing changes, you won't be able to retrieve your changes with other stash commands. Before running <code>git filter-repo</code>, we recommend unstashing any changes you've made. To unstash the last set of changes you've stashed, run <code>git stash show -p | git apply -R</code>. For more information, see <a href="https://git-scm.com/book/en/v2/Git-Tools-Stashing-and-Cleaning">Git Tools - Stashing and Cleaning</a>.</p> </div> <p>To illustrate how <code>git filter-repo</code> works, we'll show you how to remove your file with sensitive data from the history of your repository and add it to <code>.gitignore</code> to ensure that it is not accidentally re-committed.</p> <ol> <li> <p>Install the latest release of the <a href="https://github.com/newren/git-filter-repo">git filter-repo</a> tool. You can install <code>git-filter-repo</code> manually or by using a package manager. For example, to install the tool with HomeBrew, use the <code>brew install</code> command.</p> <pre><code class="hljs language-shell">brew install git-filter-repo </code></pre> <p>For more information, see <a href="https://github.com/newren/git-filter-repo/blob/main/INSTALL.md"><em>INSTALL.md</em></a> in the <code>newren/git-filter-repo</code> repository.</p> </li> <li> <p>If you don't already have a local copy of your repository with sensitive data in its history, <a href="/en/repositories/creating-and-managing-repositories/cloning-a-repository" _originalHref="/repositories/creating-and-managing-repositories/cloning-a-repository">clone the repository</a> to your local computer.</p> <pre><code class="hljs language-shell"><span class="hljs-meta prompt_">$ </span><span class="bash">git <span class="hljs-built_in">clone</span> https://github.com/YOUR-USERNAME/YOUR-REPOSITORY</span> <span class="hljs-meta prompt_">> </span><span class="bash">Initialized empty Git repository <span class="hljs-keyword">in</span> /Users/YOUR-FILE-PATH/YOUR-REPOSITORY/.git/</span> <span class="hljs-meta prompt_">> </span><span class="bash">remote: Counting objects: 1301, <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">remote: Compressing objects: 100% (769/769), <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">remote: Total 1301 (delta 724), reused 910 (delta 522)</span> <span class="hljs-meta prompt_">> </span><span class="bash">Receiving objects: 100% (1301/1301), 164.39 KiB, <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Resolving deltas: 100% (724/724), <span class="hljs-keyword">done</span>.</span> </code></pre> </li> <li> <p>Navigate into the repository's working directory.</p> <pre><code class="hljs language-shell">cd YOUR-REPOSITORY </code></pre> </li> <li> <p>Run the following command, replacing <code>PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA</code> with the <strong>path to the file you want to remove, not just its filename</strong>. These arguments will:</p> <ul> <li> <p>Force Git to process, but not check out, the entire history of every branch and tag</p> </li> <li> <p>Remove the specified file, as well as any empty commits generated as a result</p> </li> <li> <p>Remove some configurations, such as the remote URL, stored in the <em>.git/config</em> file. You may want to back up this file in advance for restoration later.</p> </li> <li> <p><strong>Overwrite your existing tags</strong></p> <pre><code class="hljs language-shell"><span class="hljs-meta prompt_"> $ </span><span class="bash">git filter-repo --invert-paths --path PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA</span> Parsed 197 commits New history written in 0.11 seconds; now repacking/cleaning... Repacking your repo and cleaning out old unneeded objects Enumerating objects: 210, done. Counting objects: 100% (210/210), done. Delta compression using up to 12 threads Compressing objects: 100% (127/127), done. Writing objects: 100% (210/210), done. Building bitmaps: 100% (48/48), done. Total 210 (delta 98), reused 144 (delta 75), pack-reused 0 Completely finished after 0.64 seconds. </code></pre> <div class="ghd-alert ghd-alert-done"><p class="ghd-alert-title"><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon mr-2" aria-hidden><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p> <p> If the file with sensitive data used to exist at any other paths (because it was moved or renamed), you must run this command on those paths, as well.</p> </div> </li> </ul> </li> <li> <p>Add your file with sensitive data to <code>.gitignore</code> to ensure that you don't accidentally commit it again.</p> <pre><code class="hljs language-shell"><span class="hljs-meta prompt_">$ </span><span class="bash"><span class="hljs-built_in">echo</span> <span class="hljs-string">"YOUR-FILE-WITH-SENSITIVE-DATA"</span> >> .gitignore</span> <span class="hljs-meta prompt_">$ </span><span class="bash">git add .gitignore</span> <span class="hljs-meta prompt_">$ </span><span class="bash">git commit -m <span class="hljs-string">"Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"</span></span> <span class="hljs-meta prompt_">> </span><span class="bash">[main 051452f] Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore</span> <span class="hljs-meta prompt_">> </span><span class="bash"> 1 files changed, 1 insertions(+), 0 deletions(-)</span> </code></pre> </li> <li> <p>Double-check that you've removed everything you wanted to from your repository's history, and that all of your branches are checked out.</p> </li> <li> <p>The <code>git filter-repo</code> tool will automatically remove your configured remotes. Use the <code>git remote set-url</code> command to restore your remotes, replacing <code>OWNER</code> and <code>REPO</code> with your repository details. For more information, see "<a href="/en/get-started/getting-started-with-git/managing-remote-repositories#adding-a-remote-repository" _originalHref="/get-started/getting-started-with-git/managing-remote-repositories#adding-a-remote-repository">Managing remote repositories</a>."</p> <pre><code class="hljs language-shell">git remote add origin https://github.com/OWNER/REPOSITORY.git </code></pre> </li> <li> <p>Once you're happy with the state of your repository, and you have set the appropriate remote, force-push your local changes to overwrite your repository on GitHub.com, as well as all the branches you've pushed up. A force push is required to remove sensitive data from your commit history.</p> <pre><code class="hljs language-shell"><span class="hljs-meta prompt_">$ </span><span class="bash">git push origin --force --all</span> <span class="hljs-meta prompt_">> </span><span class="bash">Counting objects: 1074, <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Delta compression using 2 threads.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Compressing objects: 100% (677/677), <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Writing objects: 100% (1058/1058), 148.85 KiB, <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Total 1058 (delta 590), reused 602 (delta 378)</span> <span class="hljs-meta prompt_">> </span><span class="bash">To https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git</span> <span class="hljs-meta prompt_">> </span><span class="bash"> + 48dc599...051452f main -> main (forced update)</span> </code></pre> </li> <li> <p>In order to remove the sensitive file from <a href="/en/repositories/releasing-projects-on-github/about-releases" _originalHref="/repositories/releasing-projects-on-github/about-releases">your tagged releases</a>, you'll also need to force-push against your Git tags:</p> <pre><code class="hljs language-shell"><span class="hljs-meta prompt_">$ </span><span class="bash">git push origin --force --tags</span> <span class="hljs-meta prompt_">> </span><span class="bash">Counting objects: 321, <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Delta compression using up to 8 threads.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Compressing objects: 100% (166/166), <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Writing objects: 100% (321/321), 331.74 KiB | 0 bytes/s, <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Total 321 (delta 124), reused 269 (delta 108)</span> <span class="hljs-meta prompt_">> </span><span class="bash">To https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git</span> <span class="hljs-meta prompt_">> </span><span class="bash"> + 48dc599...051452f main -> main (forced update)</span> </code></pre> </li> </ol> <h2 id="fully-removing-the-data-from-github" tabindex="-1"><a class="heading-link" href="#fully-removing-the-data-from-github">Fully removing the data from GitHub<span class="heading-link-symbol" aria-hidden="true"></span></a></h2> <p>After using either the BFG tool or <code>git filter-repo</code> to remove the sensitive data and pushing your changes to GitHub, you must take a few more steps to fully remove the data from GitHub.</p> <ol> <li> <p>Contact us through the <a href="https://support.github.com">GitHub Support portal</a>, and ask to remove cached views and references to the sensitive data in pull requests on GitHub. Please provide the name of the repository and/or a link to the commit you need removed.</p> <div class="ghd-alert ghd-alert-done"><p class="ghd-alert-title"><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon mr-2" aria-hidden><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p> <p> GitHub Support won't remove non-sensitive data, and will only assist in the removal of sensitive data in cases where we determine that the risk can't be mitigated by rotating affected credentials.</p> </div> </li> <li> <p>Tell your collaborators to <a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">rebase</a>, <em>not</em> merge, any branches they created off of your old (tainted) repository history. One merge commit could reintroduce some or all of the tainted history that you just went to the trouble of purging.</p> </li> <li> <p>If you used <code>git filter-repo</code>, you can skip this step.</p> <p>If you used the BFG tool, after rewriting, you can clean up references in your local repository to the old history to be dereferenced and garbage collected with the following commands (using Git 1.8.5 or newer):</p> <pre><code class="hljs language-shell"><span class="hljs-meta prompt_">$ </span><span class="bash">git reflog expire --expire=now --all</span> <span class="hljs-meta prompt_">$ </span><span class="bash">git gc --prune=now</span> <span class="hljs-meta prompt_">> </span><span class="bash">Counting objects: 2437, <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Delta compression using up to 4 threads.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Compressing objects: 100% (1378/1378), <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Writing objects: 100% (2437/2437), <span class="hljs-keyword">done</span>.</span> <span class="hljs-meta prompt_">> </span><span class="bash">Total 2437 (delta 1461), reused 1802 (delta 1048)</span> </code></pre> <div class="ghd-alert ghd-alert-accent"><p class="ghd-alert-title"><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon mr-2" aria-hidden><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p> <p> You can also achieve this by pushing your filtered history to a new or empty repository and then making a fresh clone from GitHub.</p> </div> </li> </ol> <h2 id="avoiding-accidental-commits-in-the-future" tabindex="-1"><a class="heading-link" href="#avoiding-accidental-commits-in-the-future">Avoiding accidental commits in the future<span class="heading-link-symbol" aria-hidden="true"></span></a></h2> <p>Preventing contributors from making accidental commits can help you prevent sensitive information from being exposed. For more information see "<a href="/en/code-security/getting-started/best-practices-for-preventing-data-leaks-in-your-organization" _originalHref="/code-security/getting-started/best-practices-for-preventing-data-leaks-in-your-organization">Best practices for preventing data leaks in your organization</a>."</p> <p>There are a few simple tricks to avoid committing things you don't want committed:</p> <ul> <li>Use a visual program like <a href="https://desktop.github.com/">GitHub Desktop</a> or <a href="https://git-scm.com/docs/gitk">gitk</a> to commit changes. Visual programs generally make it easier to see exactly which files will be added, deleted, and modified with each commit.</li> <li>Avoid the catch-all commands <code>git add .</code> and <code>git commit -a</code> on the command line—use <code>git add filename</code> and <code>git rm filename</code> to individually stage files, instead.</li> <li>Use <code>git add --interactive</code> to individually review and stage changes within each file.</li> <li>Use <code>git diff --cached</code> to review the changes that you have staged for commit. This is the exact diff that <code>git commit</code> will produce as long as you don't use the <code>-a</code> flag.</li> <li>Enable push protection for your repository to detect and prevent pushes which contain hardcoded secrets from being committed to your codebase. For more information, see "<a href="/en/code-security/secret-scanning/introduction/about-push-protection" _originalHref="/code-security/secret-scanning/introduction/about-push-protection">About push protection</a>."</li> </ul> <h2 id="further-reading" tabindex="-1"><a class="heading-link" href="#further-reading">Further reading<span class="heading-link-symbol" aria-hidden="true"></span></a></h2> <ul> <li><a href="https://htmlpreview.github.io/?https://github.com/newren/git-filter-repo/blob/docs/html/git-filter-repo.html"><code>git filter-repo</code> man page</a></li> <li><a href="https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History">Pro Git: Git Tools - Rewriting History</a></li> <li>"<a href="/en/code-security/secret-scanning/introduction/about-secret-scanning" _originalHref="/code-security/secret-scanning/introduction/about-secret-scanning">About secret scanning</a>"</li> </ul></div></div></div></div></div></main><footer data-container="footer"><section class="container-xl mt-lg-8 mt-6 px-3 px-md-6 no-print mx-auto"><h2 class="f3">Help and support</h2><div class="container-xl mx-auto py-6 py-lg-6 clearfix border-top border-color-secondary"><div class="float-left pr-4 mb-6 mb-xl-0 col-12 col-lg-6 col-xl-3"><form class="f5" data-testid="survey-form" aria-live="polite"><h3 id="survey-title" class="f4 mb-3">Did you find what you needed?</h3><input type="text" class="d-none" name="survey-token" value=""/><div class="mb-2" role="radiogroup" aria-labelledby="survey-title"><input class="Survey_visuallyHidden__Xh_nl Survey_customRadio__aNqUl" id="survey-yes" type="radio" name="survey-vote" aria-label="Yes" value="Y"/><label class="btn mr-1" for="survey-yes"><svg aria-hidden="true" focusable="false" class="color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M8.834.066c.763.087 1.5.295 2.01.884.505.581.656 1.378.656 2.3 0 .467-.087 1.119-.157 1.637L11.328 5h1.422c.603 0 1.174.085 1.668.333.508.254.911.679 1.137 1.2.453.998.438 2.447.188 4.316l-.04.306c-.105.79-.195 1.473-.313 2.033-.131.63-.315 1.209-.668 1.672C13.97 15.847 12.706 16 11 16c-1.848 0-3.234-.333-4.388-.653-.165-.045-.323-.09-.475-.133-.658-.186-1.2-.34-1.725-.415A1.75 1.75 0 0 1 2.75 16h-1A1.75 1.75 0 0 1 0 14.25v-7.5C0 5.784.784 5 1.75 5h1a1.75 1.75 0 0 1 1.514.872c.258-.105.59-.268.918-.508C5.853 4.874 6.5 4.079 6.5 2.75v-.5c0-1.202.994-2.337 2.334-2.184ZM4.5 13.3c.705.088 1.39.284 2.072.478l.441.125c1.096.305 2.334.598 3.987.598 1.794 0 2.28-.223 2.528-.549.147-.193.276-.505.394-1.07.105-.502.188-1.124.295-1.93l.04-.3c.25-1.882.189-2.933-.068-3.497a.921.921 0 0 0-.442-.48c-.208-.104-.52-.174-.997-.174H11c-.686 0-1.295-.577-1.206-1.336.023-.192.05-.39.076-.586.065-.488.13-.97.13-1.328 0-.809-.144-1.15-.288-1.316-.137-.158-.402-.304-1.048-.378C8.357 1.521 8 1.793 8 2.25v.5c0 1.922-.978 3.128-1.933 3.825a5.831 5.831 0 0 1-1.567.81ZM2.75 6.5h-1a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h1a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg> <!-- -->Yes</label><input class="Survey_visuallyHidden__Xh_nl Survey_customRadio__aNqUl" id="survey-no" type="radio" name="survey-vote" aria-label="No" value="N"/><label class="btn" for="survey-no"><svg aria-hidden="true" focusable="false" class="color-fg-muted" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M7.083 15.986c-.763-.087-1.499-.295-2.011-.884-.504-.581-.655-1.378-.655-2.299 0-.468.087-1.12.157-1.638l.015-.112H3.167c-.603 0-1.174-.086-1.669-.334a2.415 2.415 0 0 1-1.136-1.2c-.454-.998-.438-2.447-.188-4.316l.04-.306C.32 4.108.41 3.424.526 2.864c.132-.63.316-1.209.669-1.672C1.947.205 3.211.053 4.917.053c1.848 0 3.234.332 4.388.652l.474.133c.658.187 1.201.341 1.726.415a1.75 1.75 0 0 1 1.662-1.2h1c.966 0 1.75.784 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-1a1.75 1.75 0 0 1-1.514-.872c-.259.105-.59.268-.919.508-.671.491-1.317 1.285-1.317 2.614v.5c0 1.201-.994 2.336-2.334 2.183Zm4.334-13.232c-.706-.089-1.39-.284-2.072-.479l-.441-.125c-1.096-.304-2.335-.597-3.987-.597-1.794 0-2.28.222-2.529.548-.147.193-.275.505-.393 1.07-.105.502-.188 1.124-.295 1.93l-.04.3c-.25 1.882-.19 2.933.067 3.497a.923.923 0 0 0 .443.48c.208.104.52.175.997.175h1.75c.685 0 1.295.577 1.205 1.335-.022.192-.049.39-.075.586-.066.488-.13.97-.13 1.329 0 .808.144 1.15.288 1.316.137.157.401.303 1.048.377.307.035.664-.237.664-.693v-.5c0-1.922.978-3.127 1.932-3.825a5.878 5.878 0 0 1 1.568-.809Zm1.75 6.798h1a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25h-1a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25Z"></path></svg> <!-- -->No</label></div><a rel="" class="f6 text-underline" target="_blank" href="/en/site-policy/privacy-policies/github-privacy-statement">Privacy policy</a></form></div><div class="float-left pr-4 mb-6 mb-xl-0 col-12 col-lg-6 col-xl-4 offset-xl-1"><div class="f5 contribution"><h3 class="f4 mb-3">Help us make these docs great!</h3><p class="max-w-xs color-fg-muted mb-3">All GitHub docs are open source. See something that&#x27;s wrong or unclear? Submit a pull request.</p><a class="btn" href="https://github.com/github/docs/blob/main/content/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md"><svg aria-hidden="true" focusable="false" class="octicon mr-1" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg>Make a contribution</a><p class="color-fg-muted f6 mt-2"><a class="text-underline" href="/contributing" target="_blank" rel="noopener">Learn how to contribute</a></p></div></div><div class="float-left pr-4 mb-6 mb-xl-0 col-12 col-lg-6 col-xl-3 offset-xl-1"><div><h3 class="mb-3 f4">Still need help?</h3><div class="mb-2"><a id="ask-community" href="https://github.com/orgs/community/discussions" class="text-underline"><svg aria-hidden="true" focusable="false" class="octicon mr-1" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z"></path></svg>Ask the GitHub community</a></div><div><a id="support" href="https://support.github.com" class="text-underline"><svg aria-hidden="true" focusable="false" class="octicon mr-1" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg>Contact support</a></div></div></div></div></section><section class="container-xl px-3 mt-6 pb-8 px-md-6 color-fg-muted"><h2 class="f4 mb-2 col-12">Legal</h2><ul class="d-flex flex-wrap list-style-none"><li class="mr-3">© <!-- -->2024<!-- --> GitHub, Inc.</li><li class="mr-3"><a class="text-underline" href="/en/site-policy/github-terms/github-terms-of-service">Terms</a></li><li class="mr-3"><a class="text-underline" href="/en/site-policy/privacy-policies/github-privacy-statement">Privacy</a></li><li class="mr-3"><a class="text-underline" href="https://www.githubstatus.com/">Status</a></li><li class="mr-3"><a class="text-underline" href="https://github.com/pricing">Pricing</a></li><li class="mr-3"><a class="text-underline" href="https://services.github.com">Expert services</a></li><li class="mr-3"><a class="text-underline" href="https://github.blog">Blog</a></li></ul></section><div role="tooltip" class="position-fixed bottom-0 mb-4 right-0 mr-4 z-1 ScrollButton_transition200__rLxBo ScrollButton_opacity0__vjKQD"><button class="ghd-scroll-to-top tooltipped tooltipped-n tooltipped-no-delay btn circle border-1 d-flex flex-items-center flex-justify-center ScrollButton_customFocus__L3FsX" style="width:40px;height:40px" aria-label="Scroll to top"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" style="display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible"><path d="M3.22 10.53a.749.749 0 0 1 0-1.06l4.25-4.25a.749.749 0 0 1 1.06 0l4.25 4.25a.749.749 0 1 1-1.06 1.06L8 6.811 4.28 10.53a.749.749 0 0 1-1.06 0Z"></path></svg></button></div></footer></div></div><script type="application/json" id="__PRIMER_DATA_:R16:__">{"resolvedServerColorMode":"day"}</script></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"mainContext":{"breadcrumbs":[{"href":"/en/authentication","title":"Authentication"},{"href":"/en/authentication/keeping-your-account-and-data-secure","title":"Account security"},{"href":"/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository","title":"Remove sensitive data"}],"communityRedirect":{},"currentProduct":{"id":"authentication","name":"Authentication","href":"/authentication","dir":"content/authentication","toc":"content/authentication/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-cloud@latest","enterprise-server@3.15","enterprise-server@3.14","enterprise-server@3.13","enterprise-server@3.12","enterprise-server@3.11","enterprise-server@3.10"]},"currentProductName":"Authentication","isHomepageVersion":false,"error":"","data":{"ui":{"alerts":{"NOTE":"Note","IMPORTANT":"Important","WARNING":"Warning","TIP":"Tip","CAUTION":"Caution"},"header":{"github_docs":"GitHub Docs","contact":"Contact","notices":{"release_candidate":" is currently available as a \u003ca href=\"/admin/overview/about-upgrades-to-new-releases\"\u003erelease candidate\u003c/a\u003e.","early_access":"📣 Please \u003cb\u003edo not share\u003c/b\u003e this URL publicly. This page contains content about a private preview feature.","release_notes_use_latest":"Please use the latest release for the latest security, performance, and bug fixes.","ghes_release_notes_upgrade_patch_only":"📣 This is not the \u003ca href=\"#{{ latestPatch }}\"\u003elatest patch release\u003c/a\u003e of Enterprise Server.","ghes_release_notes_upgrade_release_only":"📣 This is not the \u003ca href=\"/enterprise-server@{{ latestRelease }}/admin/release-notes\"\u003elatest release\u003c/a\u003e of Enterprise Server.","ghes_release_notes_upgrade_patch_and_release":"📣 This is not the \u003ca href=\"#{{ latestPatch }}\"\u003elatest patch release\u003c/a\u003e of this release series, and this is not the \u003ca href=\"/enterprise-server@{{ latestRelease }}/admin/release-notes\"\u003elatest release\u003c/a\u003e of Enterprise Server."},"sign_up_cta":"Sign up","menu":"Menu","go_home":"Home"},"search":{"description":"Enter a search term to find it in the GitHub Docs.","placeholder":"Search GitHub Docs","label":"Search GitHub Docs"},"survey":{"able_to_find":"Did you find what you needed?","yes":"Yes","no":"No","cancel":"Cancel","additional_feedback":"Can you tell us more about your rating? (Optional)","optional":"Optional","required":"Required","email_label":"Leave your email if we can contact you. (Optional)","email_validation":"Please enter a valid email address","send":"Send","feedback":"Thank you! We received your feedback.","not_support":"If you need a reply, please contact \u003ca href=\"https://support.github.com/\"\u003esupport\u003c/a\u003e.","privacy_policy":"Privacy policy","server_error":"Unable to process comment at the moment. Please try again."},"toc":{"getting_started":"Getting started","popular":"Popular","startHere":"Start here","whats_new":"What's new","videos":"Videos","all_changelogs":"All changelog posts"},"meta":{"default_description":"Get started, troubleshoot, and make the most of GitHub. Documentation for new users, developers, administrators, and all of GitHub's products."},"scroll_button":{"scroll_to_top":"Scroll to top"},"pages":{"article_version":"Article version","miniToc":"In this article","all_enterprise_releases":"All Enterprise Server releases","about_versions":"About versions","permissions_callout_title":"Who can use this feature?","video_from_transcript":"See video for this transcript"},"picker":{"language_picker_label":"Language","product_picker_default_text":"All products","version_picker_default_text":"Choose a version"},"footer":{"support_heading":"Help and support","legal_heading":"Legal","imprint":"Imprint","terms":"Terms","privacy":"Privacy","status":"Status","pricing":"Pricing","expert_services":"Expert services","blog":"Blog"},"contribution_cta":{"title":"Help us make these docs great!","body":"All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.","button":"Make a contribution","to_guidelines":"Learn how to contribute"},"support":{"still_need_help":"Still need help?","contact_support":"Contact support","ask_community":"Ask the GitHub community"},"rest":{"banner":{"api_versioned":"The REST API is now versioned.","api_version_info":"For more information, see \"\u003ca href=\"{{ versionWithApiVersion }}/rest/overview/api-versions\"\u003eAbout API versioning\u003c/a\u003e.\"","ghes_api_versioned":"After a site administrator upgrades your Enterprise Server instance to {{ firstGhesReleaseWithApiVersions.versionTitle }} or later, the REST API will be versioned. To learn how to find your instance's version, see \"\u003ca href=\"/{{ currentVersion }}/get-started/learning-about-github/about-versions-of-github-docs#github-enterprise-server\"\u003eAbout versions of GitHub Docs\u003c/a\u003e\".","redirect_notice":"We've recently moved some of the REST API documentation.","redirect_repo":"If you can't find what you're looking for, you might try the new {{ newRestPagesLinks }} REST API pages.","redirect_enterprise":"If you can't find what you're looking for, you might try the {{ actionsPageLink }} REST API page.","actions_api_title":"Actions"},"versioning":{"about_versions":"About REST API versions"},"overview":{"permissions":{"access":"Access","endpoints":"Endpoint","tokens":"Token types","additionalPermissions":"Additional permissions","uat":"UAT","iat":"IAT"}},"screen_reader_text_checkmark_icon":"Multiple permissions are required, or a different permission may be used. For more information about the permissions, see the documentation for this endpoint."},"domain_edit":{"name":"Domain name","edit":"Edit","edit_your":"Edit your domain name","experimental":"Experimental","your_name":"Your domain name","cancel":"Cancel","save":"Save","snippet_about":"Updating will include the new domain name in all code snippets across GitHub Docs.","learn_more":"Learn more","submission_failed":"Submission failed. Please try again in a minute."},"popovers":{"role_description":"hovercard link"}},"reusables":{},"variables":{"release_candidate":{"version":"enterprise-server@3.15"}}},"currentCategory":"keeping-your-account-and-data-secure","currentPathWithoutLanguage":"/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository","page":{"documentType":"article","type":null,"title":"Removing sensitive data from a repository","fullTitle":"Removing sensitive data from a repository - GitHub Docs","topics":["Identity","Access management"],"introPlainText":"If you commit sensitive data into a Git repository, you can remove it from the history.","applicableVersions":["free-pro-team@latest","enterprise-cloud@latest","enterprise-server@3.15","enterprise-server@3.14","enterprise-server@3.13","enterprise-server@3.12","enterprise-server@3.11","enterprise-server@3.10"],"hidden":false,"noEarlyAccessBanner":false},"enterpriseServerReleases":{"isOldestReleaseDeprecated":true,"oldestSupported":"3.10","nextDeprecationDate":"2024-09-25","supported":["3.15","3.14","3.13","3.12","3.11","3.10"]},"enterpriseServerVersions":["enterprise-server@3.15","enterprise-server@3.14","enterprise-server@3.13","enterprise-server@3.12","enterprise-server@3.11","enterprise-server@3.10"],"allVersions":{"free-pro-team@latest":{"version":"free-pro-team@latest","versionTitle":"Free, Pro, \u0026 Team","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28"},"enterprise-cloud@latest":{"version":"enterprise-cloud@latest","versionTitle":"Enterprise Cloud","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28"},"enterprise-server@3.15":{"version":"enterprise-server@3.15","versionTitle":"Enterprise Server 3.15","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.14":{"version":"enterprise-server@3.14","versionTitle":"Enterprise Server 3.14","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.13":{"version":"enterprise-server@3.13","versionTitle":"Enterprise Server 3.13","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.12":{"version":"enterprise-server@3.12","versionTitle":"Enterprise Server 3.12","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.11":{"version":"enterprise-server@3.11","versionTitle":"Enterprise Server 3.11","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true},"enterprise-server@3.10":{"version":"enterprise-server@3.10","versionTitle":"Enterprise Server 3.10","apiVersions":["2022-11-28"],"latestApiVersion":"2022-11-28","isGHES":true}},"currentVersion":"free-pro-team@latest","currentProductTree":null,"sidebarTree":{"href":"/en/authentication","title":"Authentication","childPages":[{"href":"/en/authentication/keeping-your-account-and-data-secure","title":"Account security","childPages":[{"href":"/en/authentication/keeping-your-account-and-data-secure/about-authentication-to-github","title":"Authentication to GitHub","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/creating-a-strong-password","title":"Create a strong password","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/switching-between-accounts","title":"Switching between accounts","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/verifying-new-devices-when-signing-in","title":"Verifying devices on sign in","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials","title":"Update access credentials","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens","title":"Manage personal access tokens","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys","title":"Reviewing your SSH keys","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/reviewing-your-deploy-keys","title":"Deploy keys","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation","title":"Token expiration","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log","title":"Review security log","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/security-log-events","title":"Security log events","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository","title":"Remove sensitive data","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/about-anonymized-urls","title":"About anonymized URLs","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses","title":"GitHub's IP addresses","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints","title":"SSH key fingerprints","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/sudo-mode","title":"Sudo mode","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access","title":"Unauthorized access","childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/viewing-and-managing-your-sessions","title":"Viewing and managing sessions","childPages":[]}]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa","title":"Secure your account with 2FA","childPages":[{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication","title":"About 2FA","childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication","title":"Configure 2FA","childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods","title":"Configure 2FA recovery","childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication","title":"Access GitHub with 2FA","childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials","title":"Recover an account with 2FA","childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/changing-your-two-factor-authentication-method","title":"Change 2FA method","childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-mandatory-two-factor-authentication","title":"About mandatory 2FA","childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/countries-where-sms-authentication-is-supported","title":"Countries supporting SMS","childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/disabling-two-factor-authentication-for-your-personal-account","title":"Disable 2FA","childPages":[]}]},{"href":"/en/authentication/authenticating-with-a-passkey","title":"Authenticate with a passkey","childPages":[{"href":"/en/authentication/authenticating-with-a-passkey/about-passkeys","title":"About passkeys","childPages":[]},{"href":"/en/authentication/authenticating-with-a-passkey/managing-your-passkeys","title":"Manage your passkeys","childPages":[]},{"href":"/en/authentication/authenticating-with-a-passkey/signing-in-with-a-passkey","title":"Sign in with a passkey","childPages":[]}]},{"href":"/en/authentication/connecting-to-github-with-ssh","title":"Connect with SSH","childPages":[{"href":"/en/authentication/connecting-to-github-with-ssh/about-ssh","title":"About SSH","childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding","title":"SSH agent forwarding","childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/managing-deploy-keys","title":"Managing deploy keys","childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys","title":"Check for existing SSH key","childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","title":"Generate new SSH key","childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account","title":"Add a new SSH key","childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection","title":"Test your SSH connection","childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases","title":"SSH key passphrases","childPages":[]}]},{"href":"/en/authentication/troubleshooting-ssh","title":"Troubleshooting SSH","childPages":[{"href":"/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port","title":"Use SSH over HTTPS port","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/recovering-your-ssh-key-passphrase","title":"Recover SSH key passphrase","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/deleted-or-missing-ssh-keys","title":"Deleted or missing SSH keys","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-host-key-verification-failed","title":"Error: Host key verification failed","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-permission-denied-publickey","title":"Permission denied (publickey)","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-bad-file-number","title":"Error: Bad file number","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-key-already-in-use","title":"Error: Key already in use","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-permission-to-userrepo-denied-to-other-user","title":"Permission denied other-user","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-permission-to-userrepo-denied-to-userother-repo","title":"Permission denied other-repo","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign","title":"Agent failure to sign","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-ssh-add-illegal-option----apple-use-keychain","title":"ssh-add \"illegal option\" error","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-ssl-certificate-problem-verify-that-the-ca-cert-is-ok","title":"SSL certificate problem","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-unknown-key-type","title":"Error: Unknown key type","childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-were-doing-an-ssh-key-audit","title":"SSH key audit","childPages":[]}]},{"href":"/en/authentication/managing-commit-signature-verification","title":"Verify commit signatures","childPages":[{"href":"/en/authentication/managing-commit-signature-verification/about-commit-signature-verification","title":"Commit signature verification","childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits","title":"Displaying verification for all commits","childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys","title":"Existing GPG keys","childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key","title":"Generating a new GPG key","childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account","title":"Add a GPG key","childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key","title":"Tell Git about your signing key","childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key","title":"Associate email with GPG key","childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/signing-commits","title":"Signing commits","childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/signing-tags","title":"Signing tags","childPages":[]}]},{"href":"/en/authentication/troubleshooting-commit-signature-verification","title":"Troubleshoot verification","childPages":[{"href":"/en/authentication/troubleshooting-commit-signature-verification/checking-your-commit-and-tag-signature-verification-status","title":"Check verification status","childPages":[]},{"href":"/en/authentication/troubleshooting-commit-signature-verification/using-a-verified-email-address-in-your-gpg-key","title":"Use verified email in GPG key","childPages":[]}]}]},"featureFlags":{},"nonEnterpriseDefaultVersion":"free-pro-team@latest","status":200,"fullUrl":"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository","currentLayoutName":"default","relativePath":"authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository.md"},"articleContext":{"title":"Removing sensitive data from a repository","intro":"\u003cp\u003eIf you commit sensitive data into a Git repository, you can remove it from the history.\u003c/p\u003e","effectiveDate":"","renderedPage":"\u003ch2 id=\"about-removing-sensitive-data-from-a-repository\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#about-removing-sensitive-data-from-a-repository\"\u003eAbout removing sensitive data from a repository\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen altering your repository's history using tools like \u003ccode\u003egit filter-repo\u003c/code\u003e or the BFG Repo-Cleaner, it's crucial to understand the implications, especially regarding open pull requests and sensitive data.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003egit filter-repo\u003c/code\u003e tool and the BFG Repo-Cleaner rewrite your repository's history, which changes the SHAs for existing commits that you alter and any dependent commits. Changed commit SHAs may affect open pull requests in your repository. We recommend merging or closing all open pull requests before removing files from your repository.\u003c/p\u003e\n\u003cp\u003eYou can remove the file from the latest commit with \u003ccode\u003egit rm\u003c/code\u003e. For information on removing a file that was added with the latest commit, see \"\u003ca href=\"/en/repositories/working-with-files/managing-large-files/about-large-files-on-github#removing-files-from-a-repositorys-history\" _originalHref=\"/repositories/working-with-files/managing-large-files/about-large-files-on-github#removing-files-from-a-repositorys-history\"\u003eAbout large files on GitHub\u003c/a\u003e.\"\u003c/p\u003e\n\u003ch2 id=\"about-sensitive-data-exposure\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#about-sensitive-data-exposure\"\u003eAbout sensitive data exposure\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis article tells you how to make commits with sensitive data unreachable from any branches or tags in your repository on GitHub.com. However, those commits may still be accessible elsewhere:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIn any clones or forks of your repository\u003c/li\u003e\n\u003cli\u003eDirectly via their SHA-1 hashes in cached views on GitHub\u003c/li\u003e\n\u003cli\u003eThrough any pull requests that reference them\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eYou cannot remove sensitive data from other users' clones of your repository, but you can permanently remove cached views and references to the sensitive data in pull requests on GitHub by contacting us through the \u003ca href=\"https://support.github.com\"\u003eGitHub Support portal\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"ghd-alert ghd-alert-done\"\u003e\u003cp class=\"ghd-alert-title\"\u003e\u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon mr-2\" aria-hidden\u003e\u003cpath d=\"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"\u003e\u003c/path\u003e\u003c/svg\u003eImportant\u003c/p\u003e\n\u003cp\u003e GitHub Support won't remove non-sensitive data, and will only assist in the removal of sensitive data in cases where we determine that the risk can't be mitigated by rotating affected credentials.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eOnce you have pushed a commit to GitHub, you should consider any sensitive data in the commit compromised. If you have committed a password, you should change it. If you have committed a key, generate a new one.\u003c/p\u003e\n\u003cp\u003eIf the commit that introduced the sensitive data exists in any forks, it will continue to be accessible there. You will need to coordinate with the owners of the forks, asking them to remove the sensitive data or delete the fork entirely. GitHub cannot provide contact information for these owners.\u003c/p\u003e\n\u003cp\u003eConsider these limitations and challenges in your decision to rewrite your repository's history.\u003c/p\u003e\n\u003ch2 id=\"purging-a-file-from-your-repositorys-history\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#purging-a-file-from-your-repositorys-history\"\u003ePurging a file from your repository's history\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can purge a file from your repository's history using either the \u003ccode\u003egit filter-repo\u003c/code\u003e tool or the BFG Repo-Cleaner open source tool.\u003c/p\u003e\n\u003cdiv class=\"ghd-alert ghd-alert-accent\"\u003e\u003cp class=\"ghd-alert-title\"\u003e\u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon mr-2\" aria-hidden\u003e\u003cpath d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\u003e\u003c/path\u003e\u003c/svg\u003eNote\u003c/p\u003e\n\u003cp\u003e If sensitive data is located in a file that's identified as a binary file, you'll need to remove the file from the history, as you can't modify it to remove or replace the data.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch3 id=\"using-the-bfg\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#using-the-bfg\"\u003eUsing the BFG\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe \u003ca href=\"https://rtyley.github.io/bfg-repo-cleaner/\"\u003eBFG Repo-Cleaner\u003c/a\u003e is a tool that's built and maintained by the open source community. It provides a faster, simpler alternative to \u003ccode\u003egit filter-repo\u003c/code\u003e for removing unwanted data.\u003c/p\u003e\n\u003cp\u003eFor example, to remove your file with sensitive data and leave your latest commit untouched, run:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003ebfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eTo replace all text listed in \u003ccode\u003epasswords.txt\u003c/code\u003e wherever it can be found in your repository's history, run:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003ebfg --replace-text passwords.txt\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAfter the sensitive data is removed, you must force push your changes to GitHub. Force pushing rewrites the repository history, which removes sensitive data from the commit history. If you force push, it may overwrite commits that other people have based their work on.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003egit push --force\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the \u003ca href=\"https://rtyley.github.io/bfg-repo-cleaner/\"\u003eBFG Repo-Cleaner\u003c/a\u003e's documentation for full usage and download instructions.\u003c/p\u003e\n\u003ch3 id=\"using-git-filter-repo\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#using-git-filter-repo\"\u003eUsing git filter-repo\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h3\u003e\n\u003cdiv class=\"ghd-alert ghd-alert-attention\"\u003e\u003cp class=\"ghd-alert-title\"\u003e\u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon mr-2\" aria-hidden\u003e\u003cpath d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"\u003e\u003c/path\u003e\u003c/svg\u003eWarning\u003c/p\u003e\n\u003cp\u003e If you run \u003ccode\u003egit filter-repo\u003c/code\u003e after stashing changes, you won't be able to retrieve your changes with other stash commands. Before running \u003ccode\u003egit filter-repo\u003c/code\u003e, we recommend unstashing any changes you've made. To unstash the last set of changes you've stashed, run \u003ccode\u003egit stash show -p | git apply -R\u003c/code\u003e. For more information, see \u003ca href=\"https://git-scm.com/book/en/v2/Git-Tools-Stashing-and-Cleaning\"\u003eGit Tools - Stashing and Cleaning\u003c/a\u003e.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eTo illustrate how \u003ccode\u003egit filter-repo\u003c/code\u003e works, we'll show you how to remove your file with sensitive data from the history of your repository and add it to \u003ccode\u003e.gitignore\u003c/code\u003e to ensure that it is not accidentally re-committed.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eInstall the latest release of the \u003ca href=\"https://github.com/newren/git-filter-repo\"\u003egit filter-repo\u003c/a\u003e tool. You can install \u003ccode\u003egit-filter-repo\u003c/code\u003e manually or by using a package manager. For example, to install the tool with HomeBrew, use the \u003ccode\u003ebrew install\u003c/code\u003e command.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003ebrew install git-filter-repo\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor more information, see \u003ca href=\"https://github.com/newren/git-filter-repo/blob/main/INSTALL.md\"\u003e\u003cem\u003eINSTALL.md\u003c/em\u003e\u003c/a\u003e in the \u003ccode\u003enewren/git-filter-repo\u003c/code\u003e repository.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf you don't already have a local copy of your repository with sensitive data in its history, \u003ca href=\"/en/repositories/creating-and-managing-repositories/cloning-a-repository\" _originalHref=\"/repositories/creating-and-managing-repositories/cloning-a-repository\"\u003eclone the repository\u003c/a\u003e to your local computer.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003cspan class=\"hljs-meta prompt_\"\u003e$ \u003c/span\u003e\u003cspan class=\"bash\"\u003egit \u003cspan class=\"hljs-built_in\"\u003eclone\u003c/span\u003e https://github.com/YOUR-USERNAME/YOUR-REPOSITORY\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eInitialized empty Git repository \u003cspan class=\"hljs-keyword\"\u003ein\u003c/span\u003e /Users/YOUR-FILE-PATH/YOUR-REPOSITORY/.git/\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eremote: Counting objects: 1301, \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eremote: Compressing objects: 100% (769/769), \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eremote: Total 1301 (delta 724), reused 910 (delta 522)\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eReceiving objects: 100% (1301/1301), 164.39 KiB, \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eResolving deltas: 100% (724/724), \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNavigate into the repository's working directory.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003ecd YOUR-REPOSITORY\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRun the following command, replacing \u003ccode\u003ePATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA\u003c/code\u003e with the \u003cstrong\u003epath to the file you want to remove, not just its filename\u003c/strong\u003e. These arguments will:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eForce Git to process, but not check out, the entire history of every branch and tag\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove the specified file, as well as any empty commits generated as a result\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove some configurations, such as the remote URL, stored in the \u003cem\u003e.git/config\u003c/em\u003e file. You may want to back up this file in advance for restoration later.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eOverwrite your existing tags\u003c/strong\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003cspan class=\"hljs-meta prompt_\"\u003e $ \u003c/span\u003e\u003cspan class=\"bash\"\u003egit filter-repo --invert-paths --path PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA\u003c/span\u003e\n Parsed 197 commits\n New history written in 0.11 seconds; now repacking/cleaning...\n Repacking your repo and cleaning out old unneeded objects\n Enumerating objects: 210, done.\n Counting objects: 100% (210/210), done.\n Delta compression using up to 12 threads\n Compressing objects: 100% (127/127), done.\n Writing objects: 100% (210/210), done.\n Building bitmaps: 100% (48/48), done.\n Total 210 (delta 98), reused 144 (delta 75), pack-reused 0\n Completely finished after 0.64 seconds.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"ghd-alert ghd-alert-done\"\u003e\u003cp class=\"ghd-alert-title\"\u003e\u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon mr-2\" aria-hidden\u003e\u003cpath d=\"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"\u003e\u003c/path\u003e\u003c/svg\u003eImportant\u003c/p\u003e\n\u003cp\u003e If the file with sensitive data used to exist at any other paths (because it was moved or renamed), you must run this command on those paths, as well.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd your file with sensitive data to \u003ccode\u003e.gitignore\u003c/code\u003e to ensure that you don't accidentally commit it again.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003cspan class=\"hljs-meta prompt_\"\u003e$ \u003c/span\u003e\u003cspan class=\"bash\"\u003e\u003cspan class=\"hljs-built_in\"\u003eecho\u003c/span\u003e \u003cspan class=\"hljs-string\"\u003e\"YOUR-FILE-WITH-SENSITIVE-DATA\"\u003c/span\u003e \u003e\u003e .gitignore\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e$ \u003c/span\u003e\u003cspan class=\"bash\"\u003egit add .gitignore\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e$ \u003c/span\u003e\u003cspan class=\"bash\"\u003egit commit -m \u003cspan class=\"hljs-string\"\u003e\"Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore\"\u003c/span\u003e\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003e[main 051452f] Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003e 1 files changed, 1 insertions(+), 0 deletions(-)\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDouble-check that you've removed everything you wanted to from your repository's history, and that all of your branches are checked out.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003egit filter-repo\u003c/code\u003e tool will automatically remove your configured remotes. Use the \u003ccode\u003egit remote set-url\u003c/code\u003e command to restore your remotes, replacing \u003ccode\u003eOWNER\u003c/code\u003e and \u003ccode\u003eREPO\u003c/code\u003e with your repository details. For more information, see \"\u003ca href=\"/en/get-started/getting-started-with-git/managing-remote-repositories#adding-a-remote-repository\" _originalHref=\"/get-started/getting-started-with-git/managing-remote-repositories#adding-a-remote-repository\"\u003eManaging remote repositories\u003c/a\u003e.\"\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003egit remote add origin https://github.com/OWNER/REPOSITORY.git\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnce you're happy with the state of your repository, and you have set the appropriate remote, force-push your local changes to overwrite your repository on GitHub.com, as well as all the branches you've pushed up. A force push is required to remove sensitive data from your commit history.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003cspan class=\"hljs-meta prompt_\"\u003e$ \u003c/span\u003e\u003cspan class=\"bash\"\u003egit push origin --force --all\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eCounting objects: 1074, \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eDelta compression using 2 threads.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eCompressing objects: 100% (677/677), \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eWriting objects: 100% (1058/1058), 148.85 KiB, \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eTotal 1058 (delta 590), reused 602 (delta 378)\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eTo https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003e + 48dc599...051452f main -\u003e main (forced update)\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn order to remove the sensitive file from \u003ca href=\"/en/repositories/releasing-projects-on-github/about-releases\" _originalHref=\"/repositories/releasing-projects-on-github/about-releases\"\u003eyour tagged releases\u003c/a\u003e, you'll also need to force-push against your Git tags:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003cspan class=\"hljs-meta prompt_\"\u003e$ \u003c/span\u003e\u003cspan class=\"bash\"\u003egit push origin --force --tags\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eCounting objects: 321, \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eDelta compression using up to 8 threads.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eCompressing objects: 100% (166/166), \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eWriting objects: 100% (321/321), 331.74 KiB | 0 bytes/s, \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eTotal 321 (delta 124), reused 269 (delta 108)\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eTo https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003e + 48dc599...051452f main -\u003e main (forced update)\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"fully-removing-the-data-from-github\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#fully-removing-the-data-from-github\"\u003eFully removing the data from GitHub\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAfter using either the BFG tool or \u003ccode\u003egit filter-repo\u003c/code\u003e to remove the sensitive data and pushing your changes to GitHub, you must take a few more steps to fully remove the data from GitHub.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eContact us through the \u003ca href=\"https://support.github.com\"\u003eGitHub Support portal\u003c/a\u003e, and ask to remove cached views and references to the sensitive data in pull requests on GitHub. Please provide the name of the repository and/or a link to the commit you need removed.\u003c/p\u003e\n\u003cdiv class=\"ghd-alert ghd-alert-done\"\u003e\u003cp class=\"ghd-alert-title\"\u003e\u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon mr-2\" aria-hidden\u003e\u003cpath d=\"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"\u003e\u003c/path\u003e\u003c/svg\u003eImportant\u003c/p\u003e\n\u003cp\u003e GitHub Support won't remove non-sensitive data, and will only assist in the removal of sensitive data in cases where we determine that the risk can't be mitigated by rotating affected credentials.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTell your collaborators to \u003ca href=\"https://git-scm.com/book/en/v2/Git-Branching-Rebasing\"\u003erebase\u003c/a\u003e, \u003cem\u003enot\u003c/em\u003e merge, any branches they created off of your old (tainted) repository history. One merge commit could reintroduce some or all of the tainted history that you just went to the trouble of purging.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf you used \u003ccode\u003egit filter-repo\u003c/code\u003e, you can skip this step.\u003c/p\u003e\n\u003cp\u003eIf you used the BFG tool, after rewriting, you can clean up references in your local repository to the old history to be dereferenced and garbage collected with the following commands (using Git 1.8.5 or newer):\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003cspan class=\"hljs-meta prompt_\"\u003e$ \u003c/span\u003e\u003cspan class=\"bash\"\u003egit reflog expire --expire=now --all\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e$ \u003c/span\u003e\u003cspan class=\"bash\"\u003egit gc --prune=now\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eCounting objects: 2437, \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eDelta compression using up to 4 threads.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eCompressing objects: 100% (1378/1378), \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eWriting objects: 100% (2437/2437), \u003cspan class=\"hljs-keyword\"\u003edone\u003c/span\u003e.\u003c/span\u003e\n\u003cspan class=\"hljs-meta prompt_\"\u003e\u003e \u003c/span\u003e\u003cspan class=\"bash\"\u003eTotal 2437 (delta 1461), reused 1802 (delta 1048)\u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"ghd-alert ghd-alert-accent\"\u003e\u003cp class=\"ghd-alert-title\"\u003e\u003csvg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon mr-2\" aria-hidden\u003e\u003cpath d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\u003e\u003c/path\u003e\u003c/svg\u003eNote\u003c/p\u003e\n\u003cp\u003e You can also achieve this by pushing your filtered history to a new or empty repository and then making a fresh clone from GitHub.\u003c/p\u003e\n\u003c/div\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"avoiding-accidental-commits-in-the-future\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#avoiding-accidental-commits-in-the-future\"\u003eAvoiding accidental commits in the future\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePreventing contributors from making accidental commits can help you prevent sensitive information from being exposed. For more information see \"\u003ca href=\"/en/code-security/getting-started/best-practices-for-preventing-data-leaks-in-your-organization\" _originalHref=\"/code-security/getting-started/best-practices-for-preventing-data-leaks-in-your-organization\"\u003eBest practices for preventing data leaks in your organization\u003c/a\u003e.\"\u003c/p\u003e\n\u003cp\u003eThere are a few simple tricks to avoid committing things you don't want committed:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse a visual program like \u003ca href=\"https://desktop.github.com/\"\u003eGitHub Desktop\u003c/a\u003e or \u003ca href=\"https://git-scm.com/docs/gitk\"\u003egitk\u003c/a\u003e to commit changes. Visual programs generally make it easier to see exactly which files will be added, deleted, and modified with each commit.\u003c/li\u003e\n\u003cli\u003eAvoid the catch-all commands \u003ccode\u003egit add .\u003c/code\u003e and \u003ccode\u003egit commit -a\u003c/code\u003e on the command line—use \u003ccode\u003egit add filename\u003c/code\u003e and \u003ccode\u003egit rm filename\u003c/code\u003e to individually stage files, instead.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003egit add --interactive\u003c/code\u003e to individually review and stage changes within each file.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003egit diff --cached\u003c/code\u003e to review the changes that you have staged for commit. This is the exact diff that \u003ccode\u003egit commit\u003c/code\u003e will produce as long as you don't use the \u003ccode\u003e-a\u003c/code\u003e flag.\u003c/li\u003e\n\u003cli\u003eEnable push protection for your repository to detect and prevent pushes which contain hardcoded secrets from being committed to your codebase. For more information, see \"\u003ca href=\"/en/code-security/secret-scanning/introduction/about-push-protection\" _originalHref=\"/code-security/secret-scanning/introduction/about-push-protection\"\u003eAbout push protection\u003c/a\u003e.\"\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"further-reading\" tabindex=\"-1\"\u003e\u003ca class=\"heading-link\" href=\"#further-reading\"\u003eFurther reading\u003cspan class=\"heading-link-symbol\" aria-hidden=\"true\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://htmlpreview.github.io/?https://github.com/newren/git-filter-repo/blob/docs/html/git-filter-repo.html\"\u003e\u003ccode\u003egit filter-repo\u003c/code\u003e man page\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History\"\u003ePro Git: Git Tools - Rewriting History\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\"\u003ca href=\"/en/code-security/secret-scanning/introduction/about-secret-scanning\" _originalHref=\"/code-security/secret-scanning/introduction/about-secret-scanning\"\u003eAbout secret scanning\u003c/a\u003e\"\u003c/li\u003e\n\u003c/ul\u003e","miniTocItems":[{"contents":{"href":"#about-removing-sensitive-data-from-a-repository","title":"About removing sensitive data from a repository"}},{"contents":{"href":"#about-sensitive-data-exposure","title":"About sensitive data exposure"}},{"contents":{"href":"#purging-a-file-from-your-repositorys-history","title":"Purging a file from your repository's history"}},{"contents":{"href":"#fully-removing-the-data-from-github","title":"Fully removing the data from GitHub"}},{"contents":{"href":"#avoiding-accidental-commits-in-the-future","title":"Avoiding accidental commits in the future"}},{"contents":{"href":"#further-reading","title":"Further reading"}}],"permissions":"","includesPlatformSpecificContent":false,"includesToolSpecificContent":false,"defaultPlatform":"","defaultTool":"","product":"","productVideoUrl":"","currentLearningTrack":null,"detectedPlatforms":[],"detectedTools":[],"allTools":{"agents":"Agents","api":"API","azure_data_studio":"Azure Data Studio","bash":"Bash","cli":"GitHub CLI","codespaces":"Codespaces","curl":"curl","desktop":"Desktop","importer_cli":"GitHub Enterprise Importer CLI","javascript":"JavaScript","jetbrains":"JetBrains IDEs","jetbrains_beta":"JetBrains IDEs (Beta)","skillsets":"Skillsets","vimneovim":"Vim/Neovim","powershell":"PowerShell","visualstudio":"Visual Studio","vscode":"Visual Studio Code","webui":"Web browser","windowsterminal":"Windows Terminal","xcode":"Xcode"},"supportPortalVaIframeProps":{"supportPortalUrl":"https://support.github.com","vaFlowUrlParameter":""},"currentLayout":"default"}},"languagesContext":{"languages":{"en":{"name":"English","code":"en"},"zh":{"name":"Simplified Chinese","code":"zh","hreflang":"zh-Hans","nativeName":"简体中文"},"es":{"name":"Spanish","code":"es","nativeName":"Español"},"pt":{"name":"Portuguese","code":"pt","nativeName":"Português do Brasil"},"ru":{"name":"Russian","code":"ru","nativeName":"Русский"},"ja":{"name":"Japanese","code":"ja","nativeName":"日本語"},"fr":{"name":"French","code":"fr","nativeName":"Français"},"de":{"name":"German","code":"de","nativeName":"Deutsch"},"ko":{"name":"Korean","code":"ko","nativeName":"한국어"}}},"__N_SSP":true},"page":"/[versionId]/[productId]/[...restPage]","query":{"versionId":"free-pro-team@latest","productId":"authentication","restPage":["keeping-your-account-and-data-secure","removing-sensitive-data-from-a-repository"]},"buildId":"s6DUzkqIicbHKjzn5sSgX","isFallback":false,"isExperimentalCompile":false,"gssp":true,"appGip":true,"locale":"en","locales":["en","zh","es","pt","ru","ja","fr","de","ko"],"defaultLocale":"en","scriptLoader":[]}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10