personal-website/posts/multi-git-for-work/index.html

59 lines
31 KiB
HTML

<!doctype html><html lang=en dir=ltr class=scroll-smooth data-default-appearance=dark data-auto-appearance=true><head><meta charset=utf-8><meta http-equiv=content-language content="en"><meta name=viewport content="width=device-width,initial-scale=1"><meta name=theme-color content="rgb(255,255,255)"><meta http-equiv=x-ua-compatible content="ie=edge"><title>Splitting git configs dynamically between work and personal accounts &#183; baalajimaestro</title><meta name=title content="Splitting git configs dynamically between work and personal accounts &#183; baalajimaestro"><meta name=description content="Earlier this month, I got a new job! And they had all their code on GitHub, which seemed kinda cool too. But they wanted me to signup to GitHub with the work email. So, I did, and simply tried to add my SSH key from main account, to the work account and GitHub simply refused it. I did a huge workaround for this and will walk you through it on this post!"><link rel=canonical href=https://baalajimaestro.me/posts/multi-git-for-work/><link type=text/css rel=stylesheet href=/css/main.bundle.min.a6debbb9c2752cfaaf987cbf5014fd1df44fb95b3494591ae67b7f8b99579a03.css integrity="sha256-pt67ucJ1LPqvmHy/UBT9HfRPuVs0lFka5nt/i5lXmgM="><script type=text/javascript src=/js/appearance.min.022d0ebc3b46a335eb1c7ef79b7f2de143d7cd5156d433638592ef1ce5f8554e.js integrity="sha256-Ai0OvDtGozXrHH73m38t4UPXzVFW1DNjhZLvHOX4VU4="></script>
<link rel=apple-touch-icon sizes=180x180 href=/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/favicon-16x16.png><link rel=manifest href=/site.webmanifest><meta property="og:title" content="Splitting git configs dynamically between work and personal accounts"><meta property="og:description" content="Earlier this month, I got a new job! And they had all their code on GitHub, which seemed kinda cool too. But they wanted me to signup to GitHub with the work email. So, I did, and simply tried to add my SSH key from main account, to the work account and GitHub simply refused it. I did a huge workaround for this and will walk you through it on this post!"><meta property="og:type" content="article"><meta property="og:url" content="https://baalajimaestro.me/posts/multi-git-for-work/"><meta property="article:section" content="posts"><meta property="article:published_time" content="2021-08-24T12:29:41+05:30"><meta property="article:modified_time" content="2021-08-24T12:29:41+05:30"><meta name=twitter:card content="summary"><meta name=twitter:title content="Splitting git configs dynamically between work and personal accounts"><meta name=twitter:description content="Earlier this month, I got a new job! And they had all their code on GitHub, which seemed kinda cool too. But they wanted me to signup to GitHub with the work email. So, I did, and simply tried to add my SSH key from main account, to the work account and GitHub simply refused it. I did a huge workaround for this and will walk you through it on this post!"><script type=application/ld+json>[{"@context":"https://schema.org","@type":"Article","articleSection":"Blog","name":"Splitting git configs dynamically between work and personal accounts","headline":"Splitting git configs dynamically between work and personal accounts","abstract":"Earlier this month, I got a new job! And they had all their code on GitHub, which seemed kinda cool too. But they wanted me to signup to GitHub with the work email. So, I did, and simply tried to add my SSH key from main account, to the work account and GitHub simply refused it. I did a huge workaround for this and will walk you through it on this post!","inLanguage":"en","url":"https:\/\/baalajimaestro.me\/posts\/multi-git-for-work\/","author":{"@type":"Person","name":"baalajimaestro"},"copyrightYear":"2021","dateCreated":"2021-08-24T12:29:41\u002b05:30","datePublished":"2021-08-24T12:29:41\u002b05:30","dateModified":"2021-08-24T12:29:41\u002b05:30","mainEntityOfPage":"true","wordCount":"919"}]</script><meta name=author content="baalajimaestro"><script>var _paq=window._paq=window._paq||[];_paq.push(["trackPageView"]),_paq.push(["enableLinkTracking"]),function(){e="https://counter.baalajimaestro.me/",_paq.push(["setTrackerUrl",e+"86eff12f2496"]),_paq.push(["setSiteId","1"]);var e,n=document,t=n.createElement("script"),s=n.getElementsByTagName("script")[0];t.async=!0,t.src=e+"dd168412e25a.js",s.parentNode.insertBefore(t,s)}()</script><script>window.location.hostname!=="baalajimaestro.me"&&window.location.hostname!=="www.baalajimaestro.me"&&window.location.replace("https://baalajimaestro.me"+window.location.pathname)</script></head><body class="flex flex-col h-screen px-6 m-auto text-lg leading-7 max-w-7xl bg-neutral text-neutral-900 dark:bg-neutral-800 dark:text-neutral sm:px-14 md:px-24 lg:px-32"><div id=the-top class="absolute flex self-center"><a class="px-3 py-1 text-sm -translate-y-8 rounded-b-lg bg-primary-200 focus:translate-y-0 dark:bg-neutral-600" href=#main-content><span class="font-bold pe-2 text-primary-600 dark:text-primary-400">&darr;</span>Skip to main content</a></div><header class="py-6 font-semibold text-neutral-900 dark:text-neutral print:hidden sm:py-10"><nav class="flex items-start justify-between sm:items-center"><div class="flex flex-row items-center"><a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2" rel=me href=/>baalajimaestro</a></div><ul class="flex list-none flex-col ltr:text-right rtl:text-left sm:flex-row"><li class="group mb-1 sm:mb-0 sm:me-7 sm:last:me-0.5"><a href=/about/ title="About Me"><span class="decoration-primary-500 group-hover:underline group-hover:decoration-2 group-hover:underline-offset-2">About</span></a></li><li class="group mb-1 sm:mb-0 sm:me-7 sm:last:me-0.5"><a href=/posts/ title=Blog><span class="decoration-primary-500 group-hover:underline group-hover:decoration-2 group-hover:underline-offset-2">Blog</span></a></li><li class="group mb-1 sm:mb-0 sm:me-7 sm:last:me-0.5"><a href=/contact/ title="Contact Me"><span class="decoration-primary-500 group-hover:underline group-hover:decoration-2 group-hover:underline-offset-2">Contact</span></a></li></ul></nav></header><div class="relative flex flex-col grow"><main id=main-content class=grow><article><header class=max-w-prose><ol class="text-sm text-neutral-500 dark:text-neutral-400 print:hidden"><li class="inline hidden"><a class="hover:underline decoration-neutral-300 dark:underline-neutral-600" href=/>baalajimaestro</a><span class="px-1 text-primary-500">/</span></li><li class=inline><a class="hover:underline decoration-neutral-300 dark:underline-neutral-600" href=/posts/>Blog</a><span class="px-1 text-primary-500">/</span></li><li class="inline hidden"><a class="hover:underline decoration-neutral-300 dark:underline-neutral-600" href=/posts/multi-git-for-work/>Splitting git configs dynamically between work and personal accounts</a><span class="px-1 text-primary-500">/</span></li></ol><h1 class="mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral">Splitting git configs dynamically between work and personal accounts</h1><div class="mt-8 mb-12 text-base text-neutral-500 dark:text-neutral-400 print:hidden"><div class="flex flex-row flex-wrap items-center"><time datetime="2021-08-24 12:29:41 +0530 +0530">24 August 2021</time><span class="px-2 text-primary-500">&#183;</span><span title="Reading time">5 mins</span></div></div></header><section class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row"><div class="min-w-0 min-h-0 max-w-prose grow"><p>Earlier this month, I got a new job!
And they had all their code on GitHub, which seemed kinda cool too. But they wanted me to signup to GitHub with the work email.
So, I did, and simply tried to add my SSH key from main account, to the work account and GitHub simply refused it.
I did a huge workaround for this and will walk you through it on this post!</p><p>What we would be doing?</p><ul><li>Create an SSH key</li><li>Create a GPG key</li><li>Dynamic git configuration to match based on the folder path</li></ul><p><strong>Creating SSH Key</strong></p><p>SSH is a superior means of connecting with Git servers, rather than HTTPS, in terms of speed, ease and the security ssh keys bring.
Once set up, you can simply forget the need for authentication since everything happens on the fly.</p><p>To add upon the security we would be using the ED25519 algorithm instead of the traditional RSA.</p><p>Open your terminal and type:</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>ssh-keygen -a <span class=m>100</span> -t ed25519 -b <span class=m>521</span> -f ~/.ssh/id_ed25519.workplace -C <span class=s2>&#34;me@myworkplace.com&#34;</span>
</span></span></code></pre></div><p>In case you get <code>ssh-keygen: Command not found</code> find out how to install ssh on your specific distro.
OpenSSH is provided by default in windows and accessible on Powershell</p><p>Once the key generation is done, you need to store the private key very very safely. If you couldn&rsquo;t figure out which your
private key is, then the file named <code>~/.ssh/id_ed25519.workplace</code> would be your private key and <code>~/.ssh/id_ed25519.workplace.pub</code>
is your public key.</p><p>Save both the files to Google Drive or any place you trust upon for cloud storage.</p><p><strong>How to add this key to GitHub?</strong></p><p>Type this on terminal
<code>cat ~/.ssh/id_ed25519.workplace.pub</code></p><p>On windows, you can navigate to <code>C:\Users\YourUsername\.ssh\</code> and open the file on notepad</p><p>Goto <a href=https://github.com/settings/keys target=_blank rel="noreferrer noopener">https://github.com/settings/keys</a>
And press the new ssh key
And copy the output into the text box provided</p><p><strong>Creating GPG key</strong></p><p>When you sign a Git commit, you can prove that the code you submitted came from you
and wasn&rsquo;t altered while you were transferring it.
You also can prove that you submitted the code and not someone else.
It also helps prevent untrustworthy developers from pushing backdoor commits with your name on them.</p><p>We would again be using the Curve25519 algorithm for increased security.</p><p>Open your terminal and type:
<code>gpg --expert --full-gen-key</code></p><p>Choose <code>ECC (sign only)</code>
Curve25519 on the following menu</p><p>The rest of the process should be self-explanatory.</p><p>Export the private key first, so that we can save the key back in case of data corruption.</p><p>Type <code>gpg --list-secret-keys</code> to find the key id to export.
You should see ed25519 followed by date.</p><p>Grab the key id that&rsquo;s on the next line (HEX characters like 0F35EA585&mldr;&mldr;)</p><p>Type this on the terminal to export your newly created gpg key</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>gpg --export-secret-keys YOUR_KEY_ID &gt; work.gpg
</span></span></code></pre></div><p>Upload the work.gpg to Google Drive or any place you trust upon for cloud storage.</p><p><strong>Setting GPG Key on GitHub</strong></p><p>Type this on terminal:
To find your public key id, which is different from the secret key-id,
Run
<code>gpg --list-keys</code></p><p>And your key id should be displayed in the same format as the secret key did.</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>gpg --export --armor YOUR_KEY_ID
</span></span></code></pre></div><p>Goto <a href=https://github.com/settings/keys target=_blank rel="noreferrer noopener">https://github.com/settings/keys</a>
And press the new gpg key
And copy the output into the text box provided</p><p><strong>Dynamic Configuration&mldr;.. (Here comes the magic)</strong></p><p>First, create a ssh config to split between our two accounts.</p><p>Edit <code>~/.ssh/config</code> and add these contents</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl><span class=c1>#personal account</span>
</span></span><span class=line><span class=cl>Host github.com-personal
</span></span><span class=line><span class=cl> HostName github.com
</span></span><span class=line><span class=cl> User git
</span></span><span class=line><span class=cl> IdentityFile ~/.ssh/id_ed25519
</span></span><span class=line><span class=cl>
</span></span><span class=line><span class=cl><span class=c1>#work account</span>
</span></span><span class=line><span class=cl>Host github.com-work
</span></span><span class=line><span class=cl> HostName github.com
</span></span><span class=line><span class=cl> User git
</span></span><span class=line><span class=cl> IdentityFile ~/.ssh/id_ed25519.workplace
</span></span></code></pre></div><p>Ensure your permissions on the file is 600 if you are using linux/mac.</p><p>Next is to do the configuration for git.</p><p>Nuke your existing user configs by typing this on terminal</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global --unset user.name
</span></span><span class=line><span class=cl>git config --global --unset user.email
</span></span></code></pre></div><p>Once both are unset, let&rsquo;s set our personal details in a new gitconfig file</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-personal --add user.name thatsme
</span></span><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-personal --add user.email personal_mail@gmail.com
</span></span></code></pre></div><p>Once that&rsquo;s done, let&rsquo;s add our work details to another gitconfig file</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-work --add user.name thatsmebutworking
</span></span><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-work --add user.email thatsme@workdomain.com
</span></span></code></pre></div><p>Our gpg settings for both accounts,</p><p>You need to find your key id which is not the same as your secret key id which you used for exporting it.
Find the gpg key corresponding to the right email, and then copy them up!</p><p>Type <code>gpg --list-keys</code> and it should show your key id in a similar fashion.</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-personal --add user.signingkey <span class=s2>&#34;YOUR_KEY_ID&#34;</span>
</span></span><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-personal --add commit.gpgsign <span class=nb>true</span>
</span></span></code></pre></div><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-work --add user.signingkey <span class=s2>&#34;YOUR_KEY_ID&#34;</span>
</span></span><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-work --add commit.gpgsign <span class=nb>true</span>
</span></span></code></pre></div><p>For SSH redirections,</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-work url.<span class=s2>&#34;git@github.com-work:&#34;</span>.insteadOf https://github.com/
</span></span><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-personal url.<span class=s2>&#34;git@github.com-personal:&#34;</span>.insteadOf https://github.com/
</span></span><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-work url.<span class=s2>&#34;git@github.com-work:&#34;</span>.insteadOf <span class=s2>&#34;git@github.com:&#34;</span>
</span></span><span class=line><span class=cl>git config --file<span class=o>=</span><span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-personal url.<span class=s2>&#34;git@github.com-personal:&#34;</span>.insteadOf <span class=s2>&#34;git@github.com:&#34;</span>
</span></span></code></pre></div><p>Once this is done, we are left with a small piece of work, making git load <code>~/.gitconfig-personal</code> and <code>~/.gitconfig-work</code> on the fly.</p><p>The only issue here is, you need to ensure your personal code is stored at <code>~/code-personal</code> and your work code at <code>~/code-work</code>. You can obviously customise these paths.</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-bash data-lang=bash><span class=line><span class=cl>git config --global --add includeif.gitdir:<span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/code-personal/.path <span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-personal
</span></span><span class=line><span class=cl>git config --global --add includeif.gitdir:<span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/code-work/.path <span class=si>${</span><span class=nv>HOME</span><span class=si>}</span>/.gitconfig-work
</span></span></code></pre></div><p>Once this is done, you can create a dir inside <code>code-work</code> or <code>code-personal</code> and do a <code>git init</code> inside that folder and check <code>git config --get user.email</code> if it matches your profile!</p><hr><p>It would be actually cool if there was a way to set a global default and override, but I haven&rsquo;t figured one yet. Do let me know in comments, or you can always feel free to discuss with me on any of the listed methods of communication on the home page!</p></div></section><footer class="pt-8 max-w-prose print:hidden"><div class=flex><img class="!mb-0 !mt-0 me-4 h-24 w-24 rounded-full" width=96 height=96 alt=baalajimaestro src=/logo_hud38acf383e8b0ec59a144c7188a6b106_63924_192x192_fill_q75_h2_box_center_2.webp loading=lazy><div class=place-self-center><div class="text-[0.6rem] uppercase leading-3 text-neutral-500 dark:text-neutral-400">Author</div><div class="font-semibold leading-6 text-neutral-800 dark:text-neutral-300">baalajimaestro</div><div class="text-2xl sm:text-lg"></div></div></div><section class="flex flex-row flex-wrap justify-center pt-4 text-xl"><a class="m-1 inline-block min-w-[2.4rem] rounded bg-neutral-300 p-1 text-center text-neutral-700 hover:bg-primary-500 hover:text-neutral dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="https://www.facebook.com/sharer/sharer.php?u=https://baalajimaestro.me/posts/multi-git-for-work/&amp;quote=Splitting%20git%20configs%20dynamically%20between%20work%20and%20personal%20accounts" title="Share on Facebook" aria-label="Share on Facebook" target=_blank rel="noopener noreferrer"><span class="relative inline-block align-text-bottom px-1 icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentcolor" d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14.0 55.52 4.84 55.52 4.84v61h-31.28c-30.8.0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"/></svg></span></a><a class="m-1 inline-block min-w-[2.4rem] rounded bg-neutral-300 p-1 text-center text-neutral-700 hover:bg-primary-500 hover:text-neutral dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="https://twitter.com/intent/tweet/?url=https://baalajimaestro.me/posts/multi-git-for-work/&amp;text=Splitting%20git%20configs%20dynamically%20between%20work%20and%20personal%20accounts" title="Tweet on Twitter" aria-label="Tweet on Twitter" target=_blank rel="noopener noreferrer"><span class="relative inline-block align-text-bottom px-1 icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentcolor" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645.0 138.72-105.583 298.558-298.558 298.558-59.452.0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055.0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421.0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391.0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04.0-57.828 46.782-104.934 104.934-104.934 30.213.0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg></span></a><a class="m-1 inline-block min-w-[2.4rem] rounded bg-neutral-300 p-1 text-center text-neutral-700 hover:bg-primary-500 hover:text-neutral dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="https://reddit.com/submit/?url=https://baalajimaestro.me/posts/multi-git-for-work/&amp;resubmit=true&amp;title=Splitting%20git%20configs%20dynamically%20between%20work%20and%20personal%20accounts" title="Submit to Reddit" aria-label="Submit to Reddit" target=_blank rel="noopener noreferrer"><span class="relative inline-block align-text-bottom px-1 icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentcolor" d="M201.5 305.5c-13.8.0-24.9-11.1-24.9-24.6.0-13.8 11.1-24.9 24.9-24.9 13.6.0 24.6 11.1 24.6 24.9.0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4.0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8.0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7.0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9.0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5.0 52.6 59.2 95.2 132 95.2 73.1.0 132.3-42.6 132.3-95.2.0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6.0-2.2-2.2-6.1-2.2-8.3.0-2.5 2.5-2.5 6.4.0 8.6 22.8 22.8 87.3 22.8 110.2.0 2.5-2.2 2.5-6.1.0-8.6-2.2-2.2-6.1-2.2-8.3.0zm7.7-75c-13.6.0-24.6 11.1-24.6 24.9.0 13.6 11.1 24.6 24.6 24.6 13.8.0 24.9-11.1 24.9-24.6.0-13.8-11-24.9-24.9-24.9z"/></svg></span></a><a class="m-1 inline-block min-w-[2.4rem] rounded bg-neutral-300 p-1 text-center text-neutral-700 hover:bg-primary-500 hover:text-neutral dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="https://www.linkedin.com/shareArticle?mini=true&amp;url=https://baalajimaestro.me/posts/multi-git-for-work/&amp;title=Splitting%20git%20configs%20dynamically%20between%20work%20and%20personal%20accounts" title="Share on LinkedIn" aria-label="Share on LinkedIn" target=_blank rel="noopener noreferrer"><span class="relative inline-block align-text-bottom px-1 icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentcolor" d="M416 32H31.9C14.3 32 0 46.5.0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6.0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3.0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2.0 38.5 17.3 38.5 38.5.0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6.0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2.0 79.7 44.3 79.7 101.9V416z"/></svg></span></a><a class="m-1 inline-block min-w-[2.4rem] rounded bg-neutral-300 p-1 text-center text-neutral-700 hover:bg-primary-500 hover:text-neutral dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="mailto:?body=https://baalajimaestro.me/posts/multi-git-for-work/&amp;subject=Splitting%20git%20configs%20dynamically%20between%20work%20and%20personal%20accounts" title="Send via email" aria-label="Send via email" target=_blank rel="noopener noreferrer"><span class="relative inline-block align-text-bottom px-1 icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentcolor" d="M207.8 20.73c-93.45 18.32-168.7 93.66-187 187.1-27.64 140.9 68.65 266.2 199.1 285.1 19.01 2.888 36.17-12.26 36.17-31.49l1e-4-.6631c0-15.74-11.44-28.88-26.84-31.24-84.35-12.98-149.2-86.13-149.2-174.2.0-102.9 88.61-185.5 193.4-175.4 91.54 8.869 158.6 91.25 158.6 183.2v16.16c0 22.09-17.94 40.05-40 40.05s-40.01-17.96-40.01-40.05v-120.1c0-8.847-7.161-16.02-16.01-16.02l-31.98.0036c-7.299.0-13.2 4.992-15.12 11.68-24.85-12.15-54.24-16.38-86.06-5.106-38.75 13.73-68.12 48.91-73.72 89.64-9.483 69.01 43.81 128 110.9 128 26.44.0 50.43-9.544 69.59-24.88 24 31.3 65.23 48.69 109.4 37.49C465.2 369.3 496 324.1 495.1 277.2V256.3c0-149.2-133.9-265.632-287.3-235.57zM239.1 304.3c-26.47.0-48-21.56-48-48.05s21.53-48.05 48-48.05 48 21.56 48 48.05-20.6 48.05-48 48.05z"/></svg></span></a><a class="m-1 inline-block min-w-[2.4rem] rounded bg-neutral-300 p-1 text-center text-neutral-700 hover:bg-primary-500 hover:text-neutral dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="https://telegram.me/share/url?url=https://baalajimaestro.me/posts/multi-git-for-work/&amp;text=Splitting%20git%20configs%20dynamically%20between%20work%20and%20personal%20accounts" title aria-label target=_blank rel="noopener noreferrer"><span class="relative inline-block align-text-bottom px-1 icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/></svg></span></a><a class="m-1 inline-block min-w-[2.4rem] rounded bg-neutral-300 p-1 text-center text-neutral-700 hover:bg-primary-500 hover:text-neutral dark:bg-neutral-700 dark:text-neutral-300 dark:hover:bg-primary-400 dark:hover:text-neutral-800" href="https://news.ycombinator.com/submitlink?u=https://baalajimaestro.me/posts/multi-git-for-work/&amp;t=Splitting%20git%20configs%20dynamically%20between%20work%20and%20personal%20accounts" title aria-label target=_blank rel="noopener noreferrer"><span class="relative inline-block align-text-bottom px-1 icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentcolor" stroke="none"><path d="M0 24V0h24v24H0zM6.951 5.896l4.112 7.708v5.064h1.583v-4.972l4.148-7.799h-1.749l-2.457 4.875c-.372.745-.688 1.434-.688 1.434s-.297-.708-.651-1.434L8.831 5.896h-1.88z"/></svg></span></a></section><div class=pt-8><hr class="border-dotted border-neutral-300 dark:border-neutral-600"><div class="flex justify-between pt-3"><span><a class="group flex" href=/posts/android-community/><span class="me-2 text-neutral-700 transition-transform group-hover:-translate-x-[2px] group-hover:text-primary-600 dark:text-neutral dark:group-hover:text-primary-400"><span class="ltr:inline rtl:hidden">&larr;</span><span class="ltr:hidden rtl:inline">&rarr;</span></span>
<span class="flex flex-col"><span class="mt-[0.1rem] leading-6 group-hover:underline group-hover:decoration-primary-500">Android and its hostile community</span>
<span class="mt-[0.1rem] text-xs text-neutral-500 dark:text-neutral-400"><time datetime="2021-06-22 12:29:41 +0530 +0530">22 June 2021</time></span></span></a></span>
<span><a class="group flex text-right" href=/posts/extract-vendor-2/><span class="flex flex-col"><span class="mt-[0.1rem] leading-6 group-hover:underline group-hover:decoration-primary-500">Vendor Blob Extraction (v2)</span>
<span class="mt-[0.1rem] text-xs text-neutral-500 dark:text-neutral-400"><time datetime="2021-09-21 21:24:00 +0530 +0530">21 September 2021</time></span></span>
<span class="ms-2 text-neutral-700 transition-transform group-hover:-translate-x-[2px] group-hover:text-primary-600 dark:text-neutral dark:group-hover:text-primary-400"><span class="ltr:inline rtl:hidden">&rarr;</span><span class="ltr:hidden rtl:inline">&larr;</span></span></a></span></div></div></footer></article><div class="pointer-events-none absolute bottom-0 end-0 top-[100vh] w-12"><a href=#the-top class="pointer-events-auto sticky top-[calc(100vh-5.5rem)] flex h-12 w-12 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 backdrop-blur hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400" aria-label="Scroll to top" title="Scroll to top">&uarr;</a></div></main><footer class="py-10 print:hidden"><nav class="pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400"><ul class="flex list-none flex-col sm:flex-row"><li class="group mb-1 ltr:text-right rtl:text-left sm:mb-0 sm:me-7 sm:last:me-0"><a href=https://git.baalajimaestro.me/baalajimaestro/personal-website/ title><span class="decoration-primary-500 group-hover:underline group-hover:decoration-2 group-hover:underline-offset-2">Source Code</span></a></li><li class="group mb-1 ltr:text-right rtl:text-left sm:mb-0 sm:me-7 sm:last:me-0"><a href=https://links.baalajimaestro.me title><span class="decoration-primary-500 group-hover:underline group-hover:decoration-2 group-hover:underline-offset-2">Socials/Portfolio</span></a></li><li class="group mb-1 ltr:text-right rtl:text-left sm:mb-0 sm:me-7 sm:last:me-0"><a href=https://paypal.me/baalajimaestro title><span class="decoration-primary-500 group-hover:underline group-hover:decoration-2 group-hover:underline-offset-2">Donate Me</span></a></li><li class="group mb-1 ltr:text-right rtl:text-left sm:mb-0 sm:me-7 sm:last:me-0"><a href=/posts/index.xml title><span class="decoration-primary-500 group-hover:underline group-hover:decoration-2 group-hover:underline-offset-2">RSS</span></a></li></ul></nav><div class="flex items-center justify-between"><div><p class="text-sm text-neutral-500 dark:text-neutral-400">© 2023 Maestro Creativescape.</p><p class="text-xs text-neutral-500 dark:text-neutral-400">Powered by <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href=https://gohugo.io/ target=_blank rel="noopener noreferrer">Hugo</a> & <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href=https://git.io/hugo-congo target=_blank rel="noopener noreferrer">Congo</a></p></div></div></footer></div></body></html>