<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Git on rikosjett</title><link>https://rikosjett.com/topics/git/</link><description>Recent content in Git on rikosjett</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 19 Apr 2026 00:00:00 +0200</lastBuildDate><atom:link href="https://rikosjett.com/topics/git/index.xml" rel="self" type="application/rss+xml"/><item><title>Use .gitignore_global</title><link>https://rikosjett.com/til/44/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0200</pubDate><guid>https://rikosjett.com/til/44/</guid><description>&lt;p&gt;I hate .DS_Store. The files that constantly sneak their way into git history. Not anymore!&lt;/p&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global core.excludesfile &lt;span style="color:#e6db74"&gt;&amp;#39;~/.gitignore_global&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;.DS_Store&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.gitignore_global&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;</description></item><item><title>Untracking stuff in git</title><link>https://rikosjett.com/til/37/</link><pubDate>Sun, 18 Aug 2024 00:00:00 +0200</pubDate><guid>https://rikosjett.com/til/37/</guid><description>&lt;p&gt;Accidental tracking and commits to git happens. Here's how to remove the stuff again.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Remember to add the stuff to .gitignore&lt;/p&gt;
&lt;/blockquote&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;BASH&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ git rm -r --cached &amp;lt;file-or-directory-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ git commit -m &lt;span style="color:#e6db74"&gt;&amp;#34;Yes I did not mean to include these...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ git push origin main&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;</description></item><item><title>Change git init default branch to main</title><link>https://rikosjett.com/til/34/</link><pubDate>Wed, 03 Aug 2022 00:00:00 +0200</pubDate><guid>https://rikosjett.com/til/34/</guid><description>&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ git config --global init.defaultBranch main&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;</description></item><item><title>Rename git master branch to main</title><link>https://rikosjett.com/til/23/</link><pubDate>Thu, 01 Apr 2021 00:00:00 +0200</pubDate><guid>https://rikosjett.com/til/23/</guid><description>&lt;p&gt;How to rename old repository &lt;code&gt;master&lt;/code&gt; branch to &lt;code&gt;main&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="rename-local-branch"&gt;Rename local branch&lt;/h3&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ git branch -m master main&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="push-new-main-branch-to-origin"&gt;Push new &lt;code&gt;main&lt;/code&gt; branch to origin&lt;/h3&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ git push -u origin main&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="delete-old-master-branch"&gt;Delete old master branch&lt;/h3&gt;
&lt;p&gt;If old master isn't the &lt;code&gt;default&lt;/code&gt;branch on the remote&lt;/p&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ git push origin --delete master&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;If you get an error, this step needs to be done manually on the remote, as &lt;code&gt;main&lt;/code&gt; needs to be set as &lt;code&gt;default&lt;/code&gt;before deleting the old &lt;code&gt;master&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Install GitHub CLI</title><link>https://rikosjett.com/til/20/</link><pubDate>Sun, 28 Mar 2021 00:00:00 +0100</pubDate><guid>https://rikosjett.com/til/20/</guid><description>&lt;h2 id="manual-install"&gt;Manual Install&lt;/h2&gt;
&lt;h3 id="get-version"&gt;Get Version&lt;/h3&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;VERSION&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;curl &amp;#34;&lt;/span&gt;https://api.github.com/repos/cli/cli/releases/latest&lt;span style="color:#e6db74"&gt;&amp;#34; | grep &amp;#39;&amp;#34;&lt;/span&gt;tag_name&lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#39; | sed -E &amp;#39;s/.*&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;([&lt;/span&gt;^&lt;span style="color:#e6db74"&gt;&amp;#34;]+)&amp;#34;&lt;/span&gt;.*/&lt;span style="color:#ae81ff"&gt;\1&lt;/span&gt;/&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt; | cut -c2-&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="download-latest-version"&gt;Download latest version&lt;/h3&gt;
&lt;h3 id="with-wget"&gt;With wget&lt;/h3&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ wget https://github.com/cli/cli/releases/download/v&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;VERSION&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;/gh_&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;VERSION&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;_linux_amd64.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="with-curl"&gt;With curl&lt;/h3&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ curl -sSL https://github.com/cli/cli/releases/download/v&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;VERSION&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;/gh_&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;VERSION&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;_linux_amd64.tar.gz -o gh_&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;VERSION&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;_linux_amd64.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="extract-downloaded-file"&gt;Extract downloaded file&lt;/h3&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ tar xvf gh_&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;VERSION&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;_linux_amd64.tar.gz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="copy-to-usrlocalbin"&gt;Copy to /usr/local/bin&lt;/h3&gt;

&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ sudo cp gh_&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;VERSION&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;_linux_amd64/bin/gh /usr/local/bin/&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;</description></item><item><title>Enable 2FA and access github repo</title><link>https://rikosjett.com/til/5/</link><pubDate>Fri, 26 Mar 2021 00:00:00 +0100</pubDate><guid>https://rikosjett.com/til/5/</guid><description>&lt;p&gt;When 2FA is enabled, one must create a personal access token, and use that as password. Remote repo must be on HTTPS, not SSH.
&lt;a href="https://help.github.com/articles/accessing-github-using-two-factor-authentication/#using-two-factor-authentication-with-the-command-line"&gt;Using two-factor authentication with the command line&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Extract git commit messages since &lt;commit&gt;</title><link>https://rikosjett.com/til/3/</link><pubDate>Fri, 26 Mar 2021 00:00:00 +0100</pubDate><guid>https://rikosjett.com/til/3/</guid><description>&lt;p&gt;To quickly get list of events. Usefull for release notes etc.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;git log --format=%B &amp;lt;commit hash&amp;gt;..HEAD &amp;gt; filename.ext&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Fix commit author with git amend</title><link>https://rikosjett.com/til/4/</link><pubDate>Fri, 26 Mar 2021 00:00:00 +0100</pubDate><guid>https://rikosjett.com/til/4/</guid><description>&lt;p&gt;&lt;code&gt;git commit --amend --author=&amp;quot;Author Name &amp;lt;email@address.com&amp;gt;&amp;quot;&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Rewrite commit author in Git repo</title><link>https://rikosjett.com/til/6/</link><pubDate>Fri, 26 Mar 2021 00:00:00 +0100</pubDate><guid>https://rikosjett.com/til/6/</guid><description>&lt;figure class="code-block"&gt;
 &lt;figcaption&gt;SHELL&lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git filter-branch --env-filter &lt;span style="color:#e6db74"&gt;&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;OLD_EMAIL=&amp;#34;Wrong user e-mail&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;CORRECT_NAME=&amp;#34;User name&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;CORRECT_EMAIL=&amp;#34;User e-mail&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;if [ &amp;#34;$GIT_COMMITTER_EMAIL&amp;#34; = &amp;#34;$OLD_EMAIL&amp;#34; ]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;then
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export GIT_COMMITTER_NAME=&amp;#34;$CORRECT_NAME&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export GIT_COMMITTER_EMAIL=&amp;#34;$CORRECT_EMAIL&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;fi
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;if [ &amp;#34;$GIT_AUTHOR_EMAIL&amp;#34; = &amp;#34;$OLD_EMAIL&amp;#34; ]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;then
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export GIT_AUTHOR_NAME=&amp;#34;$CORRECT_NAME&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export GIT_AUTHOR_EMAIL=&amp;#34;$CORRECT_EMAIL&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;fi
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;&lt;/span&gt; --tag-name-filter cat -- --branches --tags&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/figure&gt;</description></item></channel></rss>